正式なドキュメントは英語版であり、この日本語訳は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}の形式のハッシュで記述されています。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?name=*-stable&allowed_to_create%5B%5D%5Buser_id%5D=10&allowed_to_create%5B%5D%5Bgroup_id%5D=20"

このレスポンス例の内容:

  • 名前が"*-stable"の保護タグ。
  • IDが1create_access_levels(IDが10のユーザー)。
  • IDが2create_access_levels(IDが20のグループ)。
{
  "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"