그룹 액세스 토큰 API

Tier: Free, Premium, Ultimate

Offering: GitLab.com, Self-managed, GitLab Dedicated

그룹 액세스 토큰에 대해 자세히 알아보세요.

그룹 액세스 토큰 목록

  • state 속성이 GitLab 17.2에서 도입되었습니다.

그룹 액세스 토큰 목록을 가져옵니다.

GitLab 17.2 및 이후 버전에서 state 속성을 사용하여 지정된 상태의 그룹 액세스 토큰으로 응답을 제한할 수 있습니다.

GET /groups/:id/access_tokens
GET /groups/:id/access_tokens?state=inactive
속성 유형 필수 설명
id integer 또는 string 그룹의 ID 또는 URL 인코딩된 경로
state string 아니오 지정된 상태의 토큰으로 결과를 제한합니다. 유효한 값은 activeinactive입니다. 기본적으로 두 상태 모두 반환됩니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "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",
      "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",
      "revoked" : true,
      "last_used_at": "2021-02-13T10:34:57.178Z",
      "access_level": 40
   }
]

그룹 액세스 토큰 가져오기

ID로 그룹 액세스 토큰을 가져옵니다.

GET /groups/:id/access_tokens/:token_id
속성 유형 필수 설명
id integer 또는 string 그룹의 ID 또는 URL 인코딩된 경로
token_id integer 그룹 액세스 토큰의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" "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",
   "revoked" : false,
   "access_level": 40
}

그룹 접근 토큰 생성

  • expires_at 속성 기본값은 도입됨 GitLab 16.0에서.

그룹 접근 토큰을 생성합니다. 그룹의 소유자 역할이 있어야 그룹 접근 토큰을 생성할 수 있습니다.

POST /groups/:id/access_tokens
속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL 인코딩된 경로
name 문자열 그룹 접근 토큰의 이름
scopes Array[String] 범위 목록
access_level 정수 아니오 접근 수준. 유효한 값은 10 (Guest), 20 (Reporter), 30 (Developer), 40 (Maintainer), 50 (Owner)입니다.
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/groups/<group_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.6 이상에서는 expires_at 매개변수를 사용하여 다른 만료 날짜를 설정할 수 있습니다. 이 비기본 만료 날짜는 회전 날짜로부터 최대 1년이 될 수 있습니다.

POST /groups/: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/groups/<group_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 /groups/: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/groups/<group_id>/access_tokens/<token_id>"

응답

  • 204: No Content 성공적으로 철회된 경우.
  • 400 Bad Request 또는 404 Not Found 성공적으로 철회되지 않은 경우.