그룹 액세스 토큰 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 그룹 액세스 토큰을 관리합니다. 그룹의 모든 그룹 액세스 토큰을 나열합니다. 그룹 액세스 토큰의 세부 정보를 조회합니다. 지정된 그룹에 대한 그룹 액세스 토큰을 생성합니다. 그룹 액세스 토큰을 교체합니다.
이 API를 사용하여 그룹 액세스 토큰을 관리합니다. 자세한 내용은 그룹 액세스 토큰을 참조하세요.
모든 그룹 액세스 토큰 목록#
히스토리
state속성이 GitLab 17.2에서 도입됨.
그룹의 모든 그룹 액세스 토큰을 나열합니다.
GET /groups/:id/access_tokens
GET /groups/:id/access_tokens?state=inactive
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 string | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
created_after |
datetime (ISO 8601) | 아니오 | 정의된 경우 지정된 시간 이후에 생성된 토큰을 반환합니다. |
created_before |
datetime (ISO 8601) | 아니오 | 정의된 경우 지정된 시간 이전에 생성된 토큰을 반환합니다. |
expires_after |
date (ISO 8601) | 아니오 | 정의된 경우 지정된 시간 이후에 만료되는 토큰을 반환합니다. |
expires_before |
date (ISO 8601) | 아니오 | 정의된 경우 지정된 시간 이전에 만료되는 토큰을 반환합니다. |
last_used_after |
datetime (ISO 8601) | 아니오 | 정의된 경우 지정된 시간 이후에 마지막으로 사용된 토큰을 반환합니다. |
last_used_before |
datetime (ISO 8601) | 아니오 | 정의된 경우 지정된 시간 이전에 마지막으로 사용된 토큰을 반환합니다. |
revoked |
boolean | 아니오 | true인 경우 취소된 토큰만 반환합니다. |
search |
string | 아니오 | 정의된 경우 이름에 지정된 값을 포함하는 토큰을 반환합니다. |
sort |
string | 아니오 | 정의된 경우 지정된 값으로 결과를 정렬합니다. 가능한 값: created_asc, created_desc, expires_asc, expires_desc, last_used_asc, last_used_desc, name_asc, name_desc. |
state |
string | 아니오 | 정의된 경우 지정된 상태의 토큰을 반환합니다. 가능한 값: active 및 inactive. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/<group_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",
"description": "Test Token description",
"revoked" : false,
"last_used_at": null,
"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",
"description": "Test Token description",
"revoked" : true,
"last_used_at": "2021-02-13T10:34:57.178Z",
"access_level": 40
}
]
그룹 액세스 토큰 세부 정보 조회#
그룹 액세스 토큰의 세부 정보를 조회합니다.
GET /groups/:id/access_tokens/:token_id
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 string | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
token_id |
integer 또는 string | 예 | ID |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/<group_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",
"description": "Test Token description",
"revoked" : false,
"access_level": 40
}
그룹 액세스 토큰 생성#
히스토리
expires_at속성 기본값이 GitLab 16.0에서 도입됨.
지정된 그룹에 대한 그룹 액세스 토큰을 생성합니다.
사전 요구사항:
- 그룹에 대한 Owner 역할이 있어야 합니다.
POST /groups/:id/access_tokens
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 string | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
name |
String | 예 | 토큰의 이름. |
description |
string | 아니오 | 그룹 액세스 토큰의 설명. 최대: 255자. |
scopes |
Array[String] |
예 | 토큰에 사용 가능한 스코프 목록. |
access_level |
Integer | 아니오 | 토큰의 역할. 가능한 값: 10(Guest), 15(Planner), 20(Reporter), 30(Developer), 40(Maintainer), 50(Owner). 기본값: 40. |
expires_at |
date | 아니오 | 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 }' \
--url "https://gitlab.example.com/api/v4/groups/<group_id>/access_tokens"
{
"scopes" : [
"api",
"read_repository"
],
"active" : true,
"name" : "test",
"revoked" : false,
"created_at" : "2021-01-21T19:35:37.921Z",
"description": "Test Token description",
"user_id" : 166,
"id" : 58,
"expires_at" : "2021-01-31",
"token" : "D4y...Wzr",
"access_level": 30
}
그룹 액세스 토큰 교체#
그룹 액세스 토큰을 교체합니다. 이전 토큰을 즉시 취소하고 새 토큰을 생성합니다. 일반적으로 이 엔드포인트는 개인 액세스 토큰으로 인증하여 특정 그룹 액세스 토큰을 교체합니다. 그룹 액세스 토큰을 사용하여 자체 교체할 수도 있습니다. 자세한 내용은 자기 교체를 참조하세요.
이전에 취소된 토큰을 교체하기 위해 이 엔드포인트를 사용하려고 하면 동일한 토큰 패밀리의 모든 활성 토큰이 취소됩니다. 자세한 내용은 자동 재사용 감지를 참조하세요.
사전 요구사항:
- 다른 그룹 액세스 토큰을 교체하려면
api스코프가 있는 개인 액세스 토큰이 있어야 합니다. - 그룹 액세스 토큰을 자기 교체하려면 토큰에
api또는self_rotate스코프가 있어야 합니다.
POST /groups/:id/access_tokens/:token_id/rotate
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 string | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
token_id |
integer 또는 string | 예 | 그룹 액세스 토큰의 ID 또는 키워드 self. |
expires_at |
date | 아니오 | ISO 형식(YYYY-MM-DD)으로 된 액세스 토큰의 만료 날짜. 토큰에 만료일이 필요한 경우 기본값은 1주일입니다. 필요하지 않은 경우 최대 허용 수명 제한으로 기본 설정됩니다. |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/<group_id>/access_tokens/<token_id>/rotate"
응답 예시:
{
"id": 42,
"name": "Rotated Token",
"revoked": false,
"created_at": "2023-08-01T15:00:00.000Z",
"description": "Test group access token",
"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. - 다음 조건 중 하나가 true인 경우
401: Unauthorized:- 토큰이 존재하지 않는 경우.
- 토큰이 만료된 경우.
- 토큰이 취소된 경우.
- 지정된 토큰에 대한 접근 권한이 없는 경우.
- 다른 그룹 액세스 토큰을 교체하기 위해 그룹 액세스 토큰을 사용하는 경우. 대신 자기 교체를 참조하세요.
- 토큰이 자체 교체를 허용하지 않는 경우
403: Forbidden. - 사용자가 관리자이지만 토큰이 존재하지 않는 경우
404: Not Found. - 토큰이 액세스 토큰이 아닌 경우
405: Method Not Allowed.
자기 교체#
특정 그룹 액세스 토큰을 교체하는 대신 요청을 인증하는 데 사용한 동일한 그룹 액세스 토큰을 교체할 수 있습니다. 그룹 액세스 토큰을 자기 교체하려면 다음이 필요합니다:
api또는self_rotate스코프가 있는 그룹 액세스 토큰으로 교체합니다.- 요청 URL에
self키워드를 사용합니다.
요청 예시:
curl --request POST \
--header "PRIVATE-TOKEN: <your_group_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/<group_id>/access_tokens/self/rotate"
그룹 액세스 토큰 취소#
지정된 그룹 액세스 토큰을 취소합니다.
DELETE /groups/:id/access_tokens/:token_id
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 string | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
token_id |
integer | 예 | 그룹 액세스 토큰의 ID. |
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/<group_id>/access_tokens/<token_id>"
성공하면 204 No content를 반환합니다.
다른 가능한 응답:
- 성공적으로 취소되지 않은 경우
400: Bad Request. - 액세스 토큰이 존재하지 않는 경우
404: Not Found.
