프로젝트 액세스 토큰 API
프로젝트 액세스 토큰에 대해 더 읽어보세요.
프로젝트 액세스 토큰 목록
state
속성이 도입됨 GitLab 17.2에서.
프로젝트 액세스 토큰 목록을 가져옵니다.
GitLab 17.2 및 이후 버전에서는 state
속성을 사용하여 지정된 상태의 프로젝트 액세스 토큰으로 응답을 제한할 수 있습니다.
GET projects/:id/access_tokens
GET projects/:id/access_tokens?state=inactive
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 URL 인코딩 경로 또는 ID |
state |
문자열 | 아니오 | 특정 상태의 토큰으로 결과를 제한합니다. 유효한 값은 active 및 inactive 입니다. 기본적으로 두 상태 모두 반환됩니다. |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/<project_id>/access_tokens"
[
{
"user_id" : 141,
"scopes" : [
"api"
],
"name" : "token",
"expires_at" : "2021-01-31",
"id" : 42,
"active" : true,
"created_at" : "2021-01-20T22:11:48.151Z",
"last_used_at" : null,
"revoked" : false,
"access_level" : 40
},
{
"user_id" : 141,
"scopes" : [
"read_api"
],
"name" : "token-2",
"expires_at" : "2021-01-31",
"id" : 43,
"active" : false,
"created_at" : "2021-01-21T12:12:38.123Z",
"revoked" : true,
"last_used_at" : "2021-02-13T10:34:57.178Z",
"access_level" : 40
}
]
프로젝트 액세스 토큰 가져오기
ID로 프로젝트 액세스 토큰을 가져옵니다.
GET projects/:id/access_tokens/:token_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 URL 인코딩 경로 또는 ID |
token_id |
정수 | 예 | 프로젝트 액세스 토큰의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/<project_id>/access_tokens/<token_id>"
{
"user_id" : 141,
"scopes" : [
"api"
],
"name" : "token",
"expires_at" : "2021-01-31",
"id" : 42,
"active" : true,
"created_at" : "2021-01-20T22:11:48.151Z",
"revoked" : false,
"access_level": 40,
"last_used_at": "2022-03-15T11:05:42.437Z"
}
프로젝트 액세스 토큰 생성
expires_at
속성 기본값은 도입됨 GitLab 16.0에서.
프로젝트 액세스 토큰을 생성하세요.
프로젝트 액세스 토큰을 생성할 때 설정한 최대 역할(액세스 수준)은 그룹에 대한 소유자 또는 유지 관리자 역할이 있는지 여부에 따라 달라집니다. 예를 들어, 설정할 수 있는 최대 역할은 다음과 같습니다:
- 소유자 (
50
), 프로젝트에 대한 소유자 역할이 있는 경우. - 유지 관리자 (
40
), 프로젝트에 대한 유지 관리자 역할이 있는 경우.
POST projects/:id/access_tokens
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
name |
문자열 | 예 | 프로젝트 액세스 토큰의 이름 |
scopes |
Array[String] |
예 | 스코프 목록 |
access_level |
정수 | 아니요 | 액세스 수준. 유효한 값은 10 (게스트), 20 (리포터), 30 (개발자), 40 (유지 관리자), 및 50 (소유자)입니다. 기본값은 40 입니다. |
expires_at |
날짜 | 예 | 액세스 토큰의 만료 날짜(ISO 형식: YYYY-MM-DD ). 날짜는 액세스 토큰의 최대 허용 수명보다 나중으로 설정할 수 없습니다. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type:application/json" \
--data '{ "name":"test_token", "scopes":["api", "read_repository"], "expires_at":"2021-01-31", "access_level":30 }' \
"https://gitlab.example.com/api/v4/projects/<project_id>/access_tokens"
{
"scopes" : [
"api",
"read_repository"
],
"active" : true,
"name" : "test",
"revoked" : false,
"created_at" : "2021-01-21T19:35:37.921Z",
"user_id" : 166,
"id" : 58,
"expires_at" : "2021-01-31",
"token" : "D4y...Wzr",
"access_level": 30
}
프로젝트 액세스 토큰 회전
- 도입됨 GitLab 16.0에서
사전 조건:
-
api
스코프가 있는 개인 액세스 토큰을 가지고 있어야 합니다.
프로젝트 액세스 토큰을 회전합니다. 이전 토큰을 취소하고 일주일 후에 만료되는 새 토큰을 생성합니다.
GitLab 16.6 및 이후 버전에서는 expires_at
매개변수를 사용하여 다른 만료 날짜를 설정할 수 있습니다. 이 비기본 만료 날짜는 회전 날짜로부터 최대 1년까지 설정할 수 있습니다.
POST /projects/:id/access_tokens/:token_id/rotate
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
token_id |
정수 | 예 | 프로젝트 액세스 토큰의 ID |
expires_at |
날짜 | 아니요 | 액세스 토큰의 만료 날짜(ISO 형식: YYYY-MM-DD ). 도입됨 GitLab 16.6에서. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/<project_id>/access_tokens/<token_id>/rotate"
예시 응답:
{
"id": 42,
"name": "Rotated Token",
"revoked": false,
"created_at": "2023-08-01T15:00:00.000Z",
"scopes": ["api"],
"user_id": 1337,
"last_used_at": null,
"active": true,
"expires_at": "2023-08-15",
"access_level": 30,
"token": "s3cr3t"
}
응답
-
200: OK
기존 토큰이 성공적으로 해제되고 새로운 토큰이 성공적으로 생성된 경우. -
400: Bad Request
회전이 성공적으로 완료되지 않은 경우. -
401: Unauthorized
경우 중 하나:- 사용자가 지정된 ID의 토큰에 접근할 수 없는 경우.
- 지정된 ID의 토큰이 존재하지 않는 경우.
-
404: Not Found
사용자가 관리자인 경우에도 지정된 ID의 토큰이 존재하지 않는 경우.
자동 재사용 감지
개인 액세스 토큰에 대한 자동 재사용 감지를 참조하여 더 많은 정보를 확인하세요.
프로젝트 액세스 토큰 해제
프로젝트 액세스 토큰을 해제하세요.
DELETE projects/:id/access_tokens/:token_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로 |
token_id |
정수 | 예 | 프로젝트 액세스 토큰의 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/<project_id>/access_tokens/<token_id>"
응답
-
204: No Content
성공적으로 해제된 경우. -
400 Bad Request
또는404 Not Found
성공적으로 해제되지 않은 경우.