保護タグAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、保護タグを管理します。
有効なアクセスレベル
以下のアクセスレベルが認識されます:
0: アクセスなし30: デベロッパーロール40: メンテナーロール
保護タグをリストする
プロジェクトから保護タグのリストを取得します。この機能は、保護タグのリストを制限するためにページネーションパラメータpageとper_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_id、group_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を持つユーザーのID1を持つcreate_access_levels。 - ID
20を持つグループのID2を持つ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"