正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

ユーザートークンAPI

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

このAPIを使用して、パーソナルアクセストークンと代理トークンを操作します。詳細については、パーソナルアクセストークン代理トークンを参照してください。

ユーザーのパーソナルアクセストークンを作成する

指定されたユーザーのパーソナルアクセストークンを作成します。

トークン値は応答に含まれていますが、後で取得することはできません。

前提要件:

  • インスタンスへの管理者アクセス権が必要です。
POST /users/:user_id/personal_access_tokens

サポートされている属性は以下のとおりです:

属性必須説明
user_id整数はいユーザーアカウントのID
name文字列はいパーソナルアクセストークンの名前。
description文字列いいえパーソナルアクセストークンの説明。最大値: 255文字
expires_at日付いいえISO形式(YYYY-MM-DD)のアクセストークンの有効期限。未定義の場合、日付は最大許容ライフタイム制限に設定されます。
scopes配列はい承認されたスコープの配列。可能な値のリストについては、パーソナルアクセストークンのスコープを参照してください。

リクエスト例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "name=mytoken" --data "expires_at=2017-04-04" \
  --data "scopes[]=api" \
  --url "https://gitlab.example.com/api/v4/users/42/personal_access_tokens"

レスポンス例:

{
    "id": 3,
    "name": "mytoken",
    "revoked": false,
    "created_at": "2020-10-14T11:58:53.526Z",
    "description": "Test Token description",
    "scopes": [
        "api"
    ],
    "user_id": 42,
    "active": true,
    "expires_at": "2020-12-31",
    "token": "<your_new_access_token>"
}

パーソナルアクセストークンを作成する

アカウントのパーソナルアクセストークンを作成します。セキュリティ上の理由から、トークンは以下に制限されます:

トークン値は応答に含まれていますが、後で取得することはできません。

前提要件:

  • 認証済みである必要があります。
POST /user/personal_access_tokens

サポートされている属性:

属性必須説明
name文字列はいパーソナルアクセストークンの名前。
description文字列いいえパーソナルアクセストークンの説明。最大値: 255文字
scopes配列はい承認されたスコープの配列。k8s_proxyself_rotateのみを受け入れます。
expires_at配列いいえISO形式(YYYY-MM-DD)のアクセストークンの有効期限。未定義の場合、日付は最大許容ライフタイム制限に設定されます。

リクエスト例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "name=mytoken" --data "scopes[]=k8s_proxy" \
  --url "https://gitlab.example.com/api/v4/user/personal_access_tokens"

レスポンス例:

{
    "id": 3,
    "name": "mytoken",
    "revoked": false,
    "created_at": "2020-10-14T11:58:53.526Z",
    "description": "Test Token description",
    "scopes": [
        "k8s_proxy"
    ],
    "user_id": 42,
    "active": true,
    "expires_at": "2020-10-15",
    "token": "<your_new_access_token>"
}

ユーザーの代理トークンをすべてリスト表示する

指定されたユーザーの代理トークンをすべてリスト表示します。

結果をフィルタリングするには、pageおよびper_page ページネーションパラメータを使用します。

前提要件:

  • インスタンスへの管理者アクセス権が必要です。
GET /users/:user_id/impersonation_tokens

サポートされている属性は以下のとおりです:

属性必須説明
user_id整数はいユーザーアカウントのID
state文字列いいえトークンを状態に基づいてフィルタリングします。使用可能な値: allactive、またはinactive

リクエスト例:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

レスポンス例:

[
   {
      "active" : true,
      "user_id" : 2,
      "scopes" : [
         "api"
      ],
      "revoked" : false,
      "name" : "mytoken",
      "description": "Test Token description",
      "id" : 2,
      "created_at" : "2017-03-17T17:18:09.283Z",
      "impersonation" : true,
      "expires_at" : "2017-04-04",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   },
   {
      "active" : false,
      "user_id" : 2,
      "scopes" : [
         "read_user"
      ],
      "revoked" : true,
      "name" : "mytoken2",
      "description": "Test Token description",
      "created_at" : "2017-03-17T17:19:28.697Z",
      "id" : 3,
      "impersonation" : true,
      "expires_at" : "2017-04-14",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   }
]

ユーザーの代理トークンを取得する

指定されたユーザーの代理トークンを取得します。

前提要件:

  • インスタンスへの管理者アクセス権が必要です。
GET /users/:user_id/impersonation_tokens/:impersonation_token_id

サポートされている属性は以下のとおりです:

属性必須説明
user_id整数はいユーザーアカウントのID
impersonation_token_id整数はい代理トークンのID

リクエスト例:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"

レスポンス例:

{
   "active" : true,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "revoked" : false,
   "name" : "mytoken",
   "description": "Test Token description",
   "id" : 2,
   "created_at" : "2017-03-17T17:18:09.283Z",
   "impersonation" : true,
   "expires_at" : "2017-04-04"
}

代理トークンを作成する

指定されたユーザーの代理トークンを作成します。これらのトークンは、ユーザーの代わりに行動するために使用され、APIコールだけでなく、Gitの読み取りと書き込みのアクションも実行できます。これらのトークンは、関連付けられたユーザーのプロフィールの設定ページには表示されません。

トークン値は応答に含まれていますが、後で取得することはできません。

前提要件:

  • インスタンスへの管理者アクセス権が必要です。
POST /users/:user_id/impersonation_tokens

サポートされている属性は以下のとおりです:

属性必須説明
user_id整数はいユーザーアカウントのID
name文字列はい代理トークンの名前
description文字列いいえ代理トークンの説明
expires_at日付はいISO形式(YYYY-MM-DD)の代理トークンの有効期限。未定義の場合、日付は最大許容ライフタイム制限に設定されます。
scopes配列はい承認されたスコープの配列。可能な値の一覧については、パーソナルアクセストークンのスコープを参照してください。

リクエスト例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "name=mytoken" --data "expires_at=2017-04-04" \
  --data "scopes[]=api" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

レスポンス例:

{
   "id" : 2,
   "revoked" : false,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "token" : "<impersonation_token>",
   "active" : true,
   "impersonation" : true,
   "name" : "mytoken",
   "description": "Test Token description",
   "created_at" : "2017-03-17T17:18:09.283Z",
   "expires_at" : "2017-04-04"
}

代理トークンを失効させる

指定されたユーザーの代理トークンを失効させます。

前提要件:

  • インスタンスへの管理者アクセス権が必要です。
DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id

サポートされている属性は以下のとおりです:

属性必須説明
user_id整数はいユーザーアカウントのID
impersonation_token_id整数はい代理トークンのID

リクエスト例:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"