Tags protection¶
This section purpose is to protect and unprotect the project tags.
It works using the Protected tags API and its syntax is loosely based on it.
Common features¶
The keys are the exact names of the tag or wildcards.
The values are:
protected:trueorfalse,- (optional)
create_access_level: minimal access levels allowed to create (default:maintainer, allowed:no access,developer,maintainer)
Example:
projects_and_groups:
group_1/project_1:
tags:
"v*":
protected: true
create_access_level: developer
"some-old-tag":
protected: false
Premium-only features¶
Info
Below syntax and features require GitLab Premium (paid). (This is a GitLab's limitation, not GitLabForm's.)
In GitLab Premium instances you can also use the following extra keys under each branch:
allowed_to_createkey that can be set to the arrays containing any combination of:userset to username,user_idset to user id,groupset to group name (path),group_idset to group id,access_levelset to valid access level
Note that you should NOT use both create_access_level and access_level key under allowed_to_create - the result could be ambiguous, please choose the first or the second set.
Example:
projects_and_groups:
group_1/project_1:
tags:
# Allow specific users, groups, or roles to create this tag
release-*:
protected: true
allowed_to_create:
- user: jsmith # you can use usernames...
- user: bdoe
- group: another-group # ...or group names (paths)...
- user_id: 15 # ...or user ids, if you know them...
- group_id: 456 # ...or group ids, if you know them...
- access_level: no access # do not allow creating tag by role (only specific user or group)
alpha-release-by-devs-*:
protected: true
allowed_to_create:
- access_level: developer
- user: jsmith # you can use usernames...
- user: 15