受保护的标签 API

有效访问级别

当前级别为:

  • 0:无权限
  • 30:开发者角色
  • 40:维护者角色

列出受保护标签

部署 key 信息引入于极狐GitLab 16.0。

从项目中获取受保护标签的列表。此功能使用分页参数 pageper_page 来限制受保护标签的列表。

GET /projects/:id/protected_tags
参数 类型 是否必需 描述
id integer/string yes 授权用户拥有的 ID 或 URL 编码的项目路径
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  "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 integer/string yes 授权用户拥有的 ID 或 URL 编码的项目路径
name string yes 标签或通配符的名称
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  "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
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
   "https://gitlab.example.com/api/v4/projects/5/protected_tags" -d '{
   "allowed_to_create" : [
      {
         "user_id" : 1
      },
      {
         "access_level" : 30
      }
   ],
   "create_access_level" : 30,
   "name" : "*-stable"
}'
参数 类型 是否必需 描述
id integer/string yes 授权用户拥有的 ID 或 URL 编码的项目路径
name string yes 标签或通配符的名称
create_access_level string no 允许创建的访问级别(默认为 40,维护者角色)
allowed_to_create array no 允许创建标签的访问级别阵列,每个由格式为 {user_id: integer}{group_id: integer}{access_level: integer} 的哈希进行描述

响应示例:

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

取消保护仓库标签

取消保护特定的受保护标签或通配符受保护标签。

DELETE /projects/:id/protected_tags/:name
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
  "https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable"
参数 类型 是否必需 描述
id integer/string yes 授权用户拥有的 ID 或 URL 编码的项目路径
name string yes 标签名称

相关主题