- プロジェクトのCI/CDジョブトークンアクセス設定の取得
- プロジェクトのCI/CDジョブのアクセストークンアクセス設定にパッチを適用します。
- プロジェクトのCI/CDジョブトークンを取得します。
- CI/CDジョブトークンの受信許可リストにプロジェクトを追加します。
- CI/CDジョブトークンの受信許可リストからプロジェクトを削除します。
プロジェクトCI/CDジョブトークンスコープAPI
CI/CD ジョブトークンの詳細はこちらをご覧ください。
プロジェクトのCI/CDジョブトークンアクセス設定の取得
プロジェクトのCI/CDジョブトークンのアクセス設定(ジョブトークンスコープ)を取得します。
GET /projects/:id/job_token_scope
サポートされる属性:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
成功した場合は、200
と以下のレスポンス属性を返します:
属性 | 種類 | 説明 |
---|---|---|
inbound_enabled | boolean | 他のプロジェクトで生成されたCI/CDジョブのトークンが、このプロジェクトにアクセスできるかどうかを示します。 |
outbound_enabled | boolean | このプロジェクトで生成された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エンコードされたパス。 |
enabled | boolean | はい | 他のプロジェクトで生成された 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'