프로젝트 액세스 토큰 API

Tier: Free, Premium, Ultimate
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.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: 성공적으로 취소되지 않은 경우