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

コンテナレジストリ保護タグルールAPI

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed

このAPIを使用して、保護されたコンテナタグを管理します。

コンテナレジストリ保護タグルールの一覧表示

プロジェクトのコンテナレジストリ保護タグルールの一覧を取得します。

GET /api/v4/projects/:id/registry/protection/tag/rules

サポートされている属性は以下のとおりです:

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

成功した場合は、200 OKと以下のレスポンス属性が返されます。

属性説明
id整数保護されたコンテナタグルールのID。
minimum_access_level_for_delete文字列タグを削除するために必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin
minimum_access_level_for_push文字列タグにプッシュするために必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin
project_id整数プロジェクトのID。
tag_name_pattern文字列タグ名のパターン。例: v*-releaselatest

次のステータスコードを返すことができます。

  • 200 OK: 保護ルールの一覧。
  • 401 Unauthorized: アクセストークンが無効です。
  • 403 Forbidden: ユーザーには、このプロジェクトの保護ルールを一覧表示する権限がありません。
  • 404 Not Found: プロジェクトが見つかりませんでした。

リクエスト例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/7/registry/protection/tag/rules"

レスポンス例:

[
  {
    "id": 1,
    "project_id": 7,
    "tag_name_pattern": "v*-release",
    "minimum_access_level_for_push": "maintainer",
    "minimum_access_level_for_delete": "maintainer"
  },
  {
    "id": 2,
    "project_id": 7,
    "tag_name_pattern": "latest",
    "minimum_access_level_for_push": "owner",
    "minimum_access_level_for_delete": "owner"
  }
]

コンテナレジストリ保護タグルールを作成

プロジェクトのコンテナレジストリ保護タグルールを作成します。

POST /api/v4/projects/:id/registry/protection/tag/rules

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
tag_name_pattern文字列はい保護ルールによって保護されているコンテナタグ名パターン。たとえばv*-releaseなどです。ワイルドカード文字*を使用できます。
minimum_access_level_for_push文字列はいコンテナタグをプッシュするために必要な最小GitLabアクセスレベル。指定可能な値: maintainerowner、またはadmin
minimum_access_level_for_delete文字列はいコンテナタグを削除するために必要な最小GitLabアクセスレベル。指定可能な値: maintainerowner、またはadmin

成功した場合は、201 Createdと以下のレスポンス属性が返されます。

属性説明
id整数コンテナタグルールの固有識別子。
project_id整数このコンテナタグルールが属するプロジェクトのID。
tag_name_pattern文字列コンテナタグ名を照合するために使用されるglobパターン。たとえばv*-releaseなどです。
minimum_access_level_for_push文字列このパターンに一致するコンテナタグをプッシュするために必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin
minimum_access_level_for_delete文字列このパターンに一致するコンテナタグを削除するために必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin

次のステータスコードを返すことができます。

  • 201 Created: 保護ルールが正常に作成されました。
  • 400 Bad Request: 保護ルールが無効です。
  • 401 Unauthorized: アクセストークンが無効です。
  • 403 Forbidden: ユーザーには、保護ルールを作成する権限がありません。
  • 404 Not Found: プロジェクトが見つかりませんでした。
  • 422 Unprocessable Entity: 保護ルールを作成できませんでした。たとえば、tag_name_patternコードがすでに使用されている場合などです。

リクエスト例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --url "https://gitlab.example.com/api/v4/projects/7/registry/protection/tag/rules" \
  --data '{
        "tag_name_pattern": "v*-release",
        "minimum_access_level_for_push": "maintainer",
        "minimum_access_level_for_delete": "maintainer"
    }'

レスポンス例:

{
  "id": 1,
  "project_id": 7,
  "tag_name_pattern": "v*-release",
  "minimum_access_level_for_push": "maintainer",
  "minimum_access_level_for_delete": "maintainer"
}

コンテナレジストリ保護タグルールの更新

プロジェクトのコンテナレジストリ保護タグルールを更新します。

PATCH /api/v4/projects/:id/registry/protection/tag/rules/:protection_rule_id

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
protection_rule_id整数はい更新する保護タグルールのID。
minimum_access_level_for_delete文字列いいえコンテナタグの削除に必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin。値を設定しない場合は、空の文字列("")を使用します。
minimum_access_level_for_push文字列いいえコンテナタグのプッシュに必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin。値を設定しない場合は、空の文字列("")を使用します。
tag_name_pattern文字列いいえ保護ルールによって保護されているコンテナタグ名パターン。たとえばv*-releaseなどです。ワイルドカード文字*を使用できます。

成功した場合は、200 OKと以下のレスポンス属性が返されます。

属性説明
id整数コンテナタグルールの固有識別子。
project_id整数このコンテナタグルールが属するプロジェクトのID。
tag_name_pattern文字列コンテナタグ名を照合するために使用されるglobパターン。たとえばv*-releaseなどです。
minimum_access_level_for_push文字列このパターンに一致するコンテナタグをプッシュするために必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin
minimum_access_level_for_delete文字列このパターンに一致するコンテナタグを削除するために必要な最小アクセスレベル。指定可能な値: maintainerowner、またはadmin

次のステータスコードを返すことができます。

  • 200 OK: 保護ルールが正常に更新されました。
  • 400 Bad Request: 保護ルールが無効です。
  • 401 Unauthorized: アクセストークンが無効です。
  • 403 Forbidden: ユーザーには、保護ルールを更新する権限がありません。
  • 404 Not Found: プロジェクトが見つかりませんでした。
  • 422 Unprocessable Entity: 保護ルールを更新できませんでした。たとえば、tag_name_patternコードがすでに使用されている場合などです。

リクエスト例:

curl --request PATCH \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --url "https://gitlab.example.com/api/v4/projects/7/registry/protection/tag/rules/1" \
  --data '{
       "tag_name_pattern": "v*-stable"
    }'

レスポンス例:

{
  "id": 1,
  "project_id": 7,
  "tag_name_pattern": "v*-stable",
  "minimum_access_level_for_push": "maintainer",
  "minimum_access_level_for_delete": "maintainer"
}

コンテナレジストリ保護タグルールを削除

プロジェクトからコンテナレジストリの保護タグルールを削除します。

DELETE /api/v4/projects/:id/registry/protection/tag/rules/:protection_rule_id

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
protection_rule_id整数はい削除するコンテナレジストリ保護タグルールのID。

成功した場合、204 No Contentを返します。

次のステータスコードを返すことができます。

  • 204 No Content: 保護ルールが正常に削除されました。
  • 400 Bad Request: idまたはprotection_rule_idが欠落しているか、無効です。
  • 401 Unauthorized: アクセストークンが無効です。
  • 403 Forbidden: ユーザーには、保護ルールを削除する権限がありません。
  • 404 Not Found: プロジェクトまたは保護ルールが見つかりませんでした。

リクエスト例:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/7/registry/protection/tag/rules/1"