프로젝트 액세스 토큰 API


Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-Managed, GitLab 전용

프로젝트 액세스 토큰에 대해 자세히 읽을 수 있습니다.

프로젝트 액세스 토큰 목록

프로젝트 액세스 토큰 목록을 가져옵니다.

GitLab 17.2 이상에서 state attribute를 사용하여 특정 상태의 프로젝트 액세스 토큰으로 응답을 제한할 수 있습니다.

GET projects/:id/access_tokens
GET projects/:id/access_tokens?state=inactive
속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩 된 경로
state 문자열 아니요 지정된 상태를 가진 토큰으로 결과를 제한합니다. 유효한 값은 activeinactive입니다. 기본적으로 두 상태가 반환됩니다.
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"
}

프로젝트 액세스 토큰 생성

프로젝트 액세스 토큰을 생성합니다.

프로젝트 액세스 토큰을 생성할 때 설정하는 최대 역할(액세스 레벨)은 그룹에 대한 소유자 또는 관리자 역할에 따라 달라집니다. 예를 들어, 설정할 수 있는 최대 역할은:

  • 소유자(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.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 : 폐기되지 않은 경우.