プロジェクトアクセストークン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"
}
プロジェクトアクセストークンの作成
プロジェクトのアクセストークンを作成します。
プロジェクト・アクセストークンを作成するときに設定する最大ロール(アクセス・レベル)は、グループのオーナーかメンテナーのどちらのロールを持っているかによって異なります。例えば、設定できる最大ロールは以下の通りです:
- Owner (
50
)です。プロジェクトのオーナーロールを持っている場合。 - Maintainer (
40
), プロジェクトでメンテナーのロールを持っている場合。
GitLab 14.8 以前では、プロジェクトのアクセストークンの最大ロールはメンテナーです。
POST projects/:id/access_tokens
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数または文字列。 | yes | プロジェクトのIDまたはURLエンコードされたパス |
name | 文字列 | yes | プロジェクトアクセストークン名 |
scopes | Array[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
。