Help us learn about your current experience with the documentation. Take the survey.
受保护标签 API
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
使用此 API 来管理您仓库的受保护标签。
有效的访问级别
以下访问级别被识别:
0: 无访问权限30: 开发者角色40: 维护者角色
列出受保护标签
从项目中获取受保护标签列表。
此函数接受分页参数 page 和 per_page 来限制受保护标签的列表。
GET /projects/:id/protected_tags| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer or string | yes | 项目的 ID 或 URL 编码路径。 |
curl --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 |
integer or string | yes | 项目的 ID 或 URL 编码路径。 |
name |
string | yes | 标签或通配符的名称。 |
curl --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_tagscurl --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"
}'| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer or string | yes | 项目的 ID 或 URL 编码路径。 |
name |
string | yes | 标签或通配符的名称。 |
allowed_to_create |
array | no | 允许创建标签的访问级别数组,每个元素可以是 {user_id: integer}、{group_id: integer}、{deploy_key_id: integer} 或 {access_level: integer} 形式的哈希。仅限 Premium 和 Ultimate 版本。 |
create_access_level |
string | no | 允许创建的访问级别。默认值:40,对应维护者角色。 |
示例响应:
{
"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/:namecurl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable"| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer or string | yes | 项目的 ID 或 URL 编码路径。 |
name |
string | yes | 标签的名称。 |