CI/CDジョブトークンスコープAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、CI/CDジョブトークンのスコープを操作します。
CI/CDジョブトークンスコープAPIエンドポイントへのすべてのリクエストは、認証されている必要があります。認証済みユーザーは、プロジェクトに対してメンテナーまたはオーナーのロールを持っている必要があります。
プロジェクトのCI/CDジョブトークンアクセス設定を取得する
指定されたプロジェクトのCI/CDジョブトークンアクセス設定(ジョブトークンスコープ)を取得します。
GET /projects/:id/job_token_scopeサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
成功した場合、200と次のレスポンス属性を返します:
| 属性 | 型 | 説明 |
|---|---|---|
inbound_enabled | ブール値 | 認証されたグループとプロジェクトの設定が許可リストに対して有効になっているかどうかを示します。無効になっている場合、すべてのプロジェクトがアクセスできます。この値は、許可リストが現在アクティブであるかどうかを示します。これは、Enforce job token allowlistインスタンス設定によりtrueになる場合があります。 |
outbound_enabled | ブール値 | このプロジェクトで生成されたCI/CDジョブトークンが他のプロジェクトにアクセスできるかどうかを示します。非推奨であり、GitLab 18.0で削除される予定です。 |
リクエスト例:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope"レスポンス例:
{
"inbound_enabled": true,
"outbound_enabled": false
}プロジェクトのCI/CDジョブトークンアクセス設定を更新します
指定されたプロジェクトの認証されたグループとプロジェクトの設定(ジョブトークンスコープ)を更新します。
PATCH /projects/:id/job_token_scopeサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
enabled | ブール値 | はい | ジョブトークンアクセスを許可リストに登録されたプロジェクトのみに制限します。falseに設定すると、すべてのプロジェクトからのアクセスを許可します。このパラメータは、Enforce job token allowlistインスタンス設定によって上書きされる場合があります。 |
成功した場合、204を返し、レスポンスボディはありません。
もしEnforce job token allowlistインスタンス設定が有効で、enabledをfalseに設定しようとすると、エラーメッセージとともに400が返されます。
リクエスト例:
curl --request PATCH \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope" \
--header 'PRIVATE-TOKEN: <your_access_token>' \
--header 'Content-Type: application/json' \
--data '{ "enabled": false }'CI/CDジョブトークン許可リスト内のすべてのプロジェクトを一覧表示する
指定されたプロジェクトのCI/CDジョブトークン許可リスト内のすべてのプロジェクトを一覧表示します。
GET /projects/:id/job_token_scope/allowlistサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
このエンドポイントはオフセットベースのページネーションをサポートしています。
成功した場合、200と、各プロジェクトの限られたフィールドを持つプロジェクトのリストが返されます。
リクエスト例:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope/allowlist"レスポンス例:
[
{
"id": 4,
"description": null,
"name": "Diaspora Client",
"name_with_namespace": "Diaspora / Diaspora Client",
"path": "diaspora-client",
"path_with_namespace": "diaspora/diaspora-client",
"created_at": "2013-09-30T13:46:02Z",
"default_branch": "main",
"tag_list": [
"example",
"disapora client"
],
"topics": [
"example",
"disapora client"
],
"ssh_url_to_repo": "git@gitlab.example.com:diaspora/diaspora-client.git",
"http_url_to_repo": "https://gitlab.example.com/diaspora/diaspora-client.git",
"web_url": "https://gitlab.example.com/diaspora/diaspora-client",
"avatar_url": "https://gitlab.example.com/uploads/project/avatar/4/uploads/avatar.png",
"star_count": 0,
"last_activity_at": "2013-09-30T13:46:02Z",
"namespace": {
"id": 2,
"name": "Diaspora",
"path": "diaspora",
"kind": "group",
"full_path": "diaspora",
"parent_id": null,
"avatar_url": null,
"web_url": "https://gitlab.example.com/diaspora"
}
},
{
...
}CI/CDジョブトークン許可リストにプロジェクトを追加する
指定されたプロジェクトのCI/CDジョブトークン許可リストにプロジェクトを追加します。
POST /projects/:id/job_token_scope/allowlistサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
target_project_id | 整数 | はい | CI/CDジョブトークン受信許可リストに追加されたプロジェクトのID。 |
成功した場合、201と次のレスポンス属性を返します:
| 属性 | 型 | 説明 |
|---|---|---|
source_project_id | 整数 | 更新するCI/CDジョブトークン受信許可リストを含むプロジェクトのID。 |
target_project_id | 整数 | ソースプロジェクトの受信許可リストに追加されるプロジェクトのID。 |
リクエスト例:
curl --request POST \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope/allowlist" \
--header 'PRIVATE-TOKEN: <your_access_token>' \
--header 'Content-Type: application/json' \
--data '{ "target_project_id": 2 }'レスポンス例:
{
"source_project_id": 1,
"target_project_id": 2
}CI/CDジョブトークン許可リストからプロジェクトを削除する
指定されたプロジェクトのCI/CDジョブトークン許可リストからプロジェクトを削除します。
DELETE /projects/:id/job_token_scope/allowlist/:target_project_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
target_project_id | 整数 | はい | CI/CDジョブトークン受信許可リストから削除されるプロジェクトのID。 |
成功した場合、204を返し、レスポンスボディはありません。
リクエスト例:
curl --request DELETE \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope/allowlist/2" \
--header 'PRIVATE-TOKEN: <your_access_token>' \
--header 'Content-Type: application/json'CI/CDジョブトークン許可リスト内のすべてのグループを一覧表示する
指定されたプロジェクトのCI/CDジョブトークン許可リスト内のすべてのグループを一覧表示します。
GET /projects/:id/job_token_scope/groups_allowlistサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
このエンドポイントはオフセットベースのページネーションをサポートしています。
成功した場合、200と、各プロジェクトの限られたフィールドを持つグループのリストが返されます。
リクエスト例:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope/groups_allowlist"レスポンス例:
[
{
"id": 4,
"web_url": "https://gitlab.example.com/groups/diaspora/diaspora-group",
"name": "namegroup"
},
{
...
}
]CI/CDジョブトークン許可リストにグループを追加する
指定されたプロジェクトのCI/CDジョブトークン許可リストにグループを追加します。
POST /projects/:id/job_token_scope/groups_allowlistサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
target_group_id | 整数 | はい | CI/CDジョブトークングループ許可リストに追加されたグループのID。 |
成功した場合、201と次のレスポンス属性を返します:
| 属性 | 型 | 説明 |
|---|---|---|
source_project_id | 整数 | 更新するCI/CDジョブトークン受信許可リストを含むプロジェクトのID。 |
target_group_id | 整数 | ソースプロジェクトのグループ許可リストに追加されるグループのID。 |
リクエスト例:
curl --request POST \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope/groups_allowlist" \
--header 'PRIVATE-TOKEN: <your_access_token>' \
--header 'Content-Type: application/json' \
--data '{ "target_group_id": 2 }'レスポンス例:
{
"source_project_id": 1,
"target_group_id": 2
}CI/CDジョブトークン許可リストからグループを削除する
指定されたプロジェクトのCI/CDジョブトークン許可リストからグループを削除します。
DELETE /projects/:id/job_token_scope/groups_allowlist/:target_group_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
target_group_id | 整数 | はい | CI/CDジョブトークングループ許可リストから削除されるグループのID。 |
成功した場合、204を返し、レスポンスボディはありません。
リクエスト例:
curl --request DELETE \
--url "https://gitlab.example.com/api/v4/projects/1/job_token_scope/groups_allowlist/2" \
--header 'PRIVATE-TOKEN: <your_access_token>' \
--header 'Content-Type: application/json'