Protected tags API (FREE)
Valid access levels
Currently, these levels are recognized:
0 => No access
30 => Developer access
40 => Maintainer access
List protected tags
Gets a list of protected tags from a project.
This function takes pagination parameters page
and per_page
to restrict the list of protected tags.
GET /projects/:id/protected_tags
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_tags"
Example response:
[
{
"name": "release-1-0",
"create_access_levels": [
{
"id":1,
"access_level": 40,
"access_level_description": "Maintainers"
}
]
},
...
]
Get a single protected tag or wildcard protected tag
Gets a single protected tag or wildcard protected tag.
The pagination parameters page
and per_page
can be used to restrict the list of protected tags.
GET /projects/:id/protected_tags/:name
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
name |
string | yes | The name of the tag or wildcard |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_tags/release-1-0"
Example response:
{
"name": "release-1-0",
"create_access_levels": [
{
"id": 1,
"access_level": 40,
"access_level_description": "Maintainers"
}
]
}
Protect repository tags
Protects a single repository tag or several project repository tags using a wildcard protected tag.
POST /projects/:id/protected_tags
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/protected_tags?name=*-stable&create_access_level=30"
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
name |
string | yes | The name of the tag or wildcard |
create_access_level |
string | no | Access levels allowed to create (defaults: 40 , Maintainer role) |
allowed_to_create |
array | no | Array of access levels allowed to create tags, with each described by a hash of the form {user_id: integer} , {group_id: integer} , or {access_level: integer}
|
Example response:
{
"name": "*-stable",
"create_access_levels": [
{
"id": 1,
"access_level": 30,
"access_level_description": "Developers + Maintainers"
}
]
}
Unprotect repository tags
Unprotects the given protected tag or wildcard protected tag.
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"
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
name |
string | yes | The name of the tag |