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

保護タグAPI

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

このAPIを使用して、保護タグを管理します。

有効なアクセスレベル

以下のアクセスレベルが認識されます:

  • 0: アクセスなし
  • 30: デベロッパーロール
  • 40: メンテナーロール

保護タグをリストする

プロジェクトから保護タグのリストを取得します。この機能は、保護タグのリストを制限するためにページネーションパラメータpageper_pageを取ります。

GET /projects/:id/protected_tags

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

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

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

属性説明
create_access_levels配列アクセスレベル設定の作成の配列。
create_access_levels[].access_level整数タグを作成するためのアクセスレベル。
create_access_levels[].access_level_description文字列アクセスレベルの人間が読める説明。
create_access_levels[].deploy_key_id整数作成アクセスレベルを持つデプロイキーのID。
create_access_levels[].group_id整数作成アクセスレベルを持つグループのID。PremiumおよびUltimateのみです。
create_access_levels[].id整数アクセスレベル設定作成のID。
create_access_levels[].user_id整数作成アクセスレベルを持つユーザーのID。PremiumおよびUltimateのみです。
name文字列保護タグの名前。

リクエスト例:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags"

レスポンス例:

[
  {
    "name": "release-1-0",
    "create_access_levels": [
      {
        "id":1,
        "access_level": 40,
        "access_level_description": "Maintainers"
      },
      {
        "id": 2,
        "access_level": 40,
        "access_level_description": "Deploy key",
        "deploy_key_id": 1
      }
    ]
  }
]

保護タグまたはワイルドカード保護タグを取得する

単一の保護タグまたはワイルドカード保護タグを取得します。

GET /projects/:id/protected_tags/:name

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

属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
name文字列はいタグまたはワイルドカードの名前。

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

属性説明
create_access_levels配列アクセスレベル設定の作成の配列。
create_access_levels[].access_level整数タグを作成するためのアクセスレベル。
create_access_levels[].access_level_description文字列アクセスレベルの人間が読める説明。
create_access_levels[].deploy_key_id整数作成アクセスレベルを持つデプロイキーのID。
create_access_levels[].group_id整数作成アクセスレベルを持つグループのID。PremiumおよびUltimateのみです。
create_access_levels[].id整数アクセスレベル設定作成のID。
create_access_levels[].user_id整数作成アクセスレベルを持つユーザーのID。PremiumおよびUltimateのみです。
name文字列保護タグの名前。

リクエスト例:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags/release-1-0"

レスポンス例:

{
  "name": "release-1-0",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": 40,
      "access_level_description": "Maintainers"
    }
  ]
}

リポジトリタグを保護する

ワイルドカード保護タグを使用して、単一のリポジトリタグ、または複数のプロジェクトリポジトリタグを保護します。

POST /projects/:id/protected_tags

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

属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
name文字列はいタグまたはワイルドカードの名前。
allowed_to_create配列いいえタグの作成を許可されるアクセスレベルの配列。それぞれ{user_id: integer}{group_id: integer}{deploy_key_id: integer}、または{access_level: integer}のハッシュの形式で記述されます。user_idgroup_id、およびaccess_levelはPremiumおよびUltimateのみです。
create_access_level整数いいえ作成を許可されるアクセスレベル。デフォルトは40 (メンテナーロール) です。

成功した場合、201 Createdと次のレスポンス属性を返します:

属性説明
create_access_levels配列アクセスレベル設定の作成の配列。
create_access_levels[].access_level整数タグを作成するためのアクセスレベル。
create_access_levels[].access_level_description文字列アクセスレベルの人間が読める説明。
create_access_levels[].deploy_key_id整数作成アクセスレベルを持つデプロイキーのID。
create_access_levels[].group_id整数作成アクセスレベルを持つグループのID。PremiumおよびUltimateのみです。
create_access_levels[].id整数アクセスレベル設定作成のID。
create_access_levels[].user_id整数作成アクセスレベルを持つユーザーのID。PremiumおよびUltimateのみです。
name文字列保護タグの名前。

リクエスト例:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags" \
  --data '{
   "allowed_to_create" : [
      {
         "user_id" : 1
      },
      {
         "access_level" : 30
      }
   ],
   "create_access_level" : 30,
   "name" : "*-stable"
}'

レスポンス例:

{
  "name": "*-stable",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": 30,
      "access_level_description": "Developers + Maintainers"
    }
  ]
}

ユーザーとグループアクセスレベルの例

allowed_to_create配列の要素は、{user_id: integer}{group_id: integer}{deploy_key_id: integer}、または{access_level: integer}の形式である必要があります。各ユーザーはプロジェクトへのアクセス権を持ち、各グループはこのプロジェクトを共有している必要があります。これらのアクセスレベルにより、保護タグアクセスをより詳細に制御できます。詳細については、保護タグにグループを追加を参照してください。

このリクエストの例は、特定のユーザーとグループに作成アクセスを許可する保護タグを作成する方法を示しています:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags" \
  --data "name=*-stable" \
  --data "allowed_to_create[][user_id]=10" \
  --data "allowed_to_create[][group_id]=20"

この応答の例には以下が含まれます:

  • "*-stable"という名前の保護タグ。
  • ID 10を持つユーザーのID 1を持つcreate_access_levels
  • ID 20を持つグループのID 2を持つcreate_access_levels
{
  "name": "*-stable",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": null,
      "user_id": 10,
      "group_id": null,
      "access_level_description": "Administrator"
    },
    {
      "id": 2,
      "access_level": null,
      "user_id": null,
      "group_id": 20,
      "access_level_description": "Example Create Group"
    }
  ]
}

リポジトリタグの保護を解除する

指定された保護タグまたはワイルドカード保護タグの保護を解除します。

DELETE /projects/:id/protected_tags/:name

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

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

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

リクエスト例:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable"