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

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ブール値Limit access to this project設定が有効になっているかどうかを示します。無効になっている場合、すべてのプロジェクトがアクセスできます
outbound_enabledブール値このプロジェクトで生成されたCI/CDジョブトークンが、他のプロジェクトへのアクセス権を持っているかどうかを示します。非推奨となり、GitLab 18.0で削除される予定です。

リクエスト例:

curl --header "PRIVATE-TOKEN: <your_access_token>" "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ブール値はい選択する認証されたグループとプロジェクト設定の状態。trueに設定すると、This project and any groups and projects in the allowlist(このプロジェクトと許可リスト内のすべてのグループとプロジェクト)オプションが選択され、falseに設定すると、全グループとプロジェクトが選択されます。

成功した場合、204を返し、レスポンスボディはありません。

リクエスト例:

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 --header "PRIVATE-TOKEN: <your_access_token>" "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 --header "PRIVATE-TOKEN: <your_access_token>" "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'