It has been more than a year since the company switched to Gitlab to manage code, and encountered many permission problems, such as no permission to clone, no permission to submit code, etc. Here is a summary. Permissions are divided into two levels: access permissions and behavior permissions.
Access Rights - Visibility Level
This is to be selected when the project is established, mainly used to decide who can access this project, including 3 types
- Private - private, only members who belong to the project have the original view
- Internal - Internal, anyone with a Gitlab account can clone
- Public - public, anyone can clone
Behavioral Authority
Before meeting the behavior permission, you must have access permission (if you don't have access permission, then there is no behavior permission), behavior permission refers to doing certain operations on the project, such as committing, creating issues, creating new branches, deleting branches, creating Tags, delete tags, etc.
Role
Gitlab defines the following roles:
- Guest - guest
- Reporter - Reporter; can be understood as a tester, product manager, etc., generally responsible for submitting issues, etc.
- Developer - developer; responsible for development
- Master - the master; usually the group leader, responsible for maintaining the Master branch
- Owner - the owner; usually the project manager
permission
Different roles have different permissions. The permissions of Gitlab roles are listed below.
1. Engineering permissions
behavior | Guest | Reporter | Developer | Master | Owner |
---|---|---|---|---|---|
create issue | ✓ | ✓ | ✓ | ✓ | ✓ |
leave a comment | ✓ | ✓ | ✓ | ✓ | ✓ |
update code | ✓ | ✓ | ✓ | ✓ | |
Download project | ✓ | ✓ | ✓ | ✓ | |
Create code snippets | ✓ | ✓ | ✓ | ✓ | |
Create merge request | ✓ | ✓ | ✓ | ||
Create new branch | ✓ | ✓ | ✓ | ||
Commit code to unprotected branch | ✓ | ✓ | ✓ | ||
Force commits to unprotected branches | ✓ | ✓ | ✓ | ||
remove unprotected branch | ✓ | ✓ | ✓ | ||
add tag | ✓ | ✓ | ✓ | ||
Create a wiki | ✓ | ✓ | ✓ | ||
Manage issue handlers | ✓ | ✓ | ✓ | ||
manage labels | ✓ | ✓ | ✓ | ||
Create milestones | ✓ | ✓ | |||
Add project members | ✓ | ✓ | |||
commit protected branch | ✓ | ✓ | |||
Enable branch protection | ✓ | ✓ | |||
Modify/remove tags | ✓ | ✓ | |||
Edit project | ✓ | ✓ | |||
add deploy keys | ✓ | ✓ | |||
Configure hooks | ✓ | ✓ | |||
toggle visibility level | ✓ | ||||
Switch project namespace | ✓ | ||||
remove project | ✓ | ||||
Force commits to protect branches | ✓ | ||||
remove protected branch | ✓ |
PS: Regarding the settings of protected branches, you can go to Settings->Protected branches for management
2. Group permissions
behavior | Guest | Reporter | Developer | Master | Owner |
---|---|---|---|---|---|
Browse groups | ✓ | ✓ | ✓ | ✓ | ✓ |
Editing group | ✓ | ||||
Create project | ✓ | ✓ | |||
management group members | ✓ | ||||
remove group | ✓ |