프로젝트 액세스 토큰 API
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-Managed, GitLab 전용
프로젝트 액세스 토큰에 대해 자세히 읽을 수 있습니다.
프로젝트 액세스 토큰 목록
state
attribute는 GitLab 17.2에서 소개되었습니다.
프로젝트 액세스 토큰 목록을 가져옵니다.
GitLab 17.2 이상에서 state
attribute를 사용하여 특정 상태의 프로젝트 액세스 토큰으로 응답을 제한할 수 있습니다.
GET projects/:id/access_tokens
GET projects/:id/access_tokens?state=inactive
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩 된 경로 |
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
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩 된 경로 |
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
attribute default는 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
: 폐기되지 않은 경우.