個人アクセストークンAPI
個人アクセストークンの詳細については、こちらをご覧ください。
個人アクセストークン一覧
認証済みユーザーがアクセスできるすべての個人アクセストークンを取得します。デフォルトでは、フィルタリングされていないリストを返します:
- 現在のユーザーが管理者以外に作成した個人アクセストークンのみ。
- 管理者に対するすべての個人アクセストークン。
管理者
-
user_id
パラメータを使用して、ユーザーでフィルタリングできます。 - 全ての個人アクセストークンに対して他のフィルターを使用することができます(GitLab 15.5以降)。
管理者以外
-
user_id
さもなければ、401 Unauthorized
レスポンスを受け取ります。 - 自分自身の個人アクセストークンのみをフィルタリングすることができます(GitLab 15.5以降)。
GET /personal_access_tokens
GET /personal_access_tokens?created_after=2022-01-01T00:00:00
GET /personal_access_tokens?created_before=2022-01-01T00:00:00
GET /personal_access_tokens?last_used_after=2022-01-01T00:00:00
GET /personal_access_tokens?last_used_before=2022-01-01T00:00:00
GET /personal_access_tokens?revoked=true
GET /personal_access_tokens?search=name
GET /personal_access_tokens?state=inactive
GET /personal_access_tokens?user_id=1
サポートされる属性:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
created_after | datetime (ISO 8601) | {点線円}いいえ | 指定した時間以降に作成されたPATに結果を限定します。 |
created_before | datetime (ISO 8601) | {点線円}いいえ | 指定された時間以前に作成されたPATに結果を制限します。 |
last_used_after | datetime (ISO 8601) | {点線円}いいえ | 指定した時間以降に最後に使用されたPATに結果を制限します。 |
last_used_before | datetime (ISO 8601) | {点線円}いいえ | 指定された時間以前に最後に使用されたPATに結果を制限します。 |
revoked | boolean | {点線円}いいえ | 指定された無効状態のPATに結果を限定します。有効な値はtrue およびfalse です。 |
search | 文字列です。 | {点線円}いいえ | 検索文字列を含む名前のPATに結果を限定します。 |
state | 文字列です。 | {点線円}いいえ | 指定された状態のPATに結果を限定します。有効な値はactive およびinactive です。 |
user_id | 整数または文字列。 | {点線円}いいえ | 指定したユーザーが所有するPATに結果を限定します。 |
リクエストの例
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens"
応答例
[
{
"id": 4,
"name": "Test Token",
"revoked": false,
"created_at": "2020-07-23T14:31:47.729Z",
"scopes": [
"api"
],
"user_id": 24,
"last_used_at": "2021-10-06T17:58:37.550Z",
"active": true,
"expires_at": null
}
]
リクエストの例
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens?user_id=3"
応答例
[
{
"id": 4,
"name": "Test Token",
"revoked": false,
"created_at": "2020-07-23T14:31:47.729Z",
"scopes": [
"api"
],
"user_id": 3,
"last_used_at": "2021-10-06T17:58:37.550Z",
"active": true,
"expires_at": null
}
]
リクエストの例
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens?revoked=true"
応答例
[
{
"id": 41,
"name": "Revoked Test Token",
"revoked": true,
"created_at": "2022-01-01T14:31:47.729Z",
"scopes": [
"api"
],
"user_id": 8,
"last_used_at": "2022-05-18T17:58:37.550Z",
"active": false,
"expires_at": null
}
]
マージされた属性でフィルタできます:
GET /personal_access_tokens?revoked=true&created_before=2022-01-01
単一の個人アクセストークンの取得
個人アクセストークンを取得するには、以下の方法があります:
- 個人アクセストークンのIDを使用します。
- ヘッダーでAPIに渡します。
個人アクセストークンIDの使用
GitLab 15.1で導入されました。
IDによって単一の個人アクセストークンを取得します。ユーザーは自分のトークンを取得できます。管理者は任意のトークンを取得できます。
GET /personal_access_tokens/:id
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | yes | 個人アクセストークンのID |
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens/<id>"
回答例
404
GitLab 15.3で導入されたHTTPステータスコードです。
-
401: Unauthorized
もしどちらかが- ユーザーが指定された ID のトークンにアクセスできない場合。
- 指定されたIDのトークンが存在しません。
-
404: Not Found
ユーザーが管理者であるが、指定されたIDのトークンが存在しない場合。
リクエストヘッダの使用
GitLab 15.5 で導入されました。
ヘッダでトークンを渡すことで、単一の個人アクセストークンとそのトークンに関する情報を取得します。
GET /personal_access_tokens/self
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens/self"
応答例
{
"id": 4,
"name": "Test Token",
"revoked": false,
"created_at": "2020-07-23T14:31:47.729Z",
"scopes": [
"api"
],
"user_id": 3,
"last_used_at": "2021-10-06T17:58:37.550Z",
"active": true,
"expires_at": null
}
個人アクセストークンのローテーション
GitLab 16.0 で導入されました。
個人アクセストークンをローテートします。前のトークンを失効させ、1週間後に有効期限が切れる新しいトークンを作成します。
POST /personal_access_tokens/:id/rotate
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | yes | 個人アクセストークンのID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens/<personal_access_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",
"token": "s3cr3t"
}
回答例
-
200: OK
既存のトークンが正常に破棄され、新しいトークンが正常に作成された場合。 -
400: Bad Request
ローテーションに成功しなかった場合 -
401: Unauthorized
のどちらかが- ユーザーが指定されたIDのトークンにアクセスできない場合。
- 指定されたIDのトークンが存在しません。
-
404: Not Found
ユーザーが管理者であるが、指定された ID のトークンが存在しない場合。
自動再利用検知
GitLab 16.3で導入されました。
ローテートされたトークンごとに、前のトークン、そして今は失効しているトークンが参照されます。この参照の連鎖がトークン・ファミリーを定義します。トークン・ファミリーの中では、最新のトークンのみがアクティビティとなり、他のトークンは全て破棄されます。
トークン・ローテーション・エンドポイントの認証試行で、トークン・ファミリーのトークンが破棄されると、その試行は失敗し、トークン・ファミリーのアクティブなトークンは破棄されます。このメカニズムにより、個人アクセストークンが流出した場合の漏洩を防ぐことができます。
トークンローテーションAPIリクエストでは、自動再利用検知が有効になっています。
個人アクセストークンの取り消し
アクセストークンを失効させるには、以下の方法があります:
- 個人アクセストークンのIDを使用します。
- ヘッダーでAPIに渡します。
個人アクセストークンIDの使用
IDを使用して個人アクセストークンを取り消します。
DELETE /personal_access_tokens/:id
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | yes | 個人アクセストークンのID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens/<personal_access_token_id>"
回答例
-
204: No Content
正常に取り消された場合 -
400: Bad Request
失効に成功しなかった場合。
リクエストヘッダの使用
リクエストヘッダを使って渡された個人アクセストークンを失効させます。必要です:
-
api
GitLab 15.0 から GitLab 15.3 のスコープ。 - GitLab 15.4以降のスコープ。
DELETE /personal_access_tokens/self
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/personal_access_tokens/self"
回答例
-
204: No Content
正常に取り消された場合 -
400: Bad Request
失効に成功しなかった場合。
個人アクセストークンの作成(管理者のみ)
個人アクセストークンの作成については、Users APIドキュメントを参照してください。