プロジェクトアクセストークンAPI

プロジェクトアクセストークンについての詳細はこちらをご覧ください。

プロジェクトアクセストークン一覧

GitLab 13.9 で導入されました

プロジェクトのアクセストークンの一覧を取得します。

GET projects/:id/access_tokens
属性種類必須説明
id整数または文字列。yes プロジェクトの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
   }
]

プロジェクトアクセストークンの取得

GitLab 14.10で導入されました

プロジェクトのアクセストークンをIDで取得します。

GET projects/:id/access_tokens/:token_id
属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
token_id整数または文字列。yesプロジェクトアクセストークンの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"
}

プロジェクトアクセストークンの作成

  • GitLab 13.10で導入されました
  • token 属性が GitLab 13.10 で導入されました。
  • expires_at 属性のデフォルトが GitLab 16.0 で導入されました。

プロジェクトのアクセストークンを作成します。

プロジェクト・アクセストークンを作成するときに設定する最大ロール(アクセス・レベル)は、グループのオーナーかメンテナーのどちらのロールを持っているかによって異なります。例えば、設定できる最大ロールは以下の通りです:

  • Owner (50)です。プロジェクトのオーナーロールを持っている場合。
  • Maintainer (40), プロジェクトでメンテナーのロールを持っている場合。

GitLab 14.8 以前では、プロジェクトのアクセストークンの最大ロールはメンテナーです。

POST projects/:id/access_tokens
属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
name文字列yesプロジェクトアクセストークン名
scopesArray[String]yesスコープのリスト
access_level整数いいえアクセスレベル。有効な値は、10 (ゲスト)、20 (レポーター)、30 (開発者)、40 (メンテナー)、および50 (オーナー) です。デフォルトは40です。
expires_at日付yesアクセストークンの有効期限を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 で導入されました

プロジェクトのアクセストークンをローテートします。前のトークンを失効させ、1週間後に有効期限が切れる新しいトークンを作成します。

POST /projects/:id/access_tokens/:token_id/rotate
属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
token_id整数または文字列。yesプロジェクトアクセストークンのID
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 のトークンが存在しない場合。

自動再利用検知

詳細については、個人アクセストークンの自動再利用検知を参照してください。

プロジェクトアクセストークンの失効

GitLab 13.9 で導入されました

プロジェクトのアクセストークンを取り消します。

DELETE projects/:id/access_tokens/:token_id
属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
token_id整数または文字列。yesプロジェクトアクセストークンの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