保護タグ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}の形式のハッシュで記述されています。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が
1のcreate_access_levels(IDが10のユーザー)。 - IDが
2のcreate_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"