プロジェクトCI/CDジョブトークンスコープAPI

CI/CD ジョブトークンの詳細はこちらをご覧ください。

note
CI/CDジョブトークンスコープAPIエンドポイントへのすべてのリクエストは認証されなければなりません。認証されたユーザーは、少なくともプロジェクトのメンテナーのロールを持っていなければなりません。

プロジェクトのCI/CDジョブトークンアクセス設定の取得

プロジェクトのCI/CDジョブトークンのアクセス設定(ジョブトークンスコープ)を取得します。

GET /projects/:id/job_token_scope

サポートされる属性:

属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス

成功した場合は、200 と以下のレスポンス属性を返します:

属性種類説明
inbound_enabledboolean他のプロジェクトで生成されたCI/CDジョブのトークンが、このプロジェクトにアクセスできるかどうかを示します。
outbound_enabledbooleanこのプロジェクトで生成されたCI/CDジョブトークンが他のプロジェクトにアクセスできるかどうかを示します。非推奨。GitLab 17.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ジョブのアクセストークンアクセス設定にパッチを適用します。

GitLab16.3では、CI_JOB_TOKENの設定をLimit access_to_this project変更して、このプロジェクトへのアクセスを許可します。

プロジェクトのLimit access_to_this projectsetting(job token scope) にパッチを適用します。

PATCH /projects/:id/job_token_scope

サポートされる属性:

属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス
enabledbooleanはい他のプロジェクトで生成された CI/CD ジョブ トークンが、このプロジェクトへのアクセスを制限していることを示します。

成功した場合は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'