프로젝트 액세스 토큰 API
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-Managed, GitLab Dedicated
Offering: GitLab.com, Self-Managed, GitLab Dedicated
프로젝트 액세스 토큰 디렉터리
프로젝트 액세스 토큰 디렉터리을 가져옵니다.
GET projects/:id/access_tokens
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
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",
"revoked" : false,
"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
속성의 기본값은 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
: 성공적으로 취소되지 않은 경우