2018-05-09 07:07:11 -04:00
---
2020-10-16 05:09:06 -04:00
stage: Manage
group: Access
2020-11-26 01:09:20 -05:00
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2018-05-09 07:07:11 -04:00
---
2021-05-31 14:09:56 -04:00
# Permissions and roles
2016-07-12 10:49:03 -04:00
2021-05-31 14:09:56 -04:00
Users have different abilities depending on the role they have in a
2019-11-29 10:06:43 -05:00
particular group or project. If a user is both in a project's group and the
2021-05-31 14:09:56 -04:00
project itself, the highest role is used.
2016-07-12 10:49:03 -04:00
2021-06-03 05:10:18 -04:00
On [public and internal projects ](../api/projects.md#project-visibility-level ), the Guest role
(not to be confused with [Guest user ](#free-guest-users )) is not enforced.
2020-03-05 04:08:31 -05:00
2021-06-03 05:10:18 -04:00
When a member leaves a team's project, all the assigned [issues ](project/issues/index.md ) and
[merge requests ](project/merge_requests/index.md ) are automatically unassigned.
2017-04-18 05:46:41 -04:00
2019-03-03 19:17:57 -05:00
GitLab [administrators ](../administration/index.md ) receive all permissions.
2016-07-12 10:49:03 -04:00
2017-08-14 15:27:24 -04:00
To add or import a user, you can follow the
2019-06-14 13:11:57 -04:00
[project members documentation ](project/members/index.md ).
2018-04-16 11:23:34 -04:00
## Principles behind permissions
2018-04-12 08:28:29 -04:00
2020-07-09 14:10:09 -04:00
See our [product handbook on permissions ](https://about.gitlab.com/handbook/product/gitlab-the-product/#permissions-in-gitlab ).
2018-04-12 08:28:29 -04:00
2019-03-14 23:19:04 -04:00
## Instance-wide user permissions
2019-03-22 06:16:46 -04:00
By default, users can create top-level groups and change their
2019-03-14 23:19:04 -04:00
usernames. A GitLab administrator can configure the GitLab instance to
[modify this behavior ](../administration/user_settings.md ).
2017-08-15 13:58:21 -04:00
## Project members permissions
2016-07-12 10:49:03 -04:00
2021-07-22 11:10:25 -04:00
> The Master role was renamed to Maintainer in GitLab 11.0.
2018-06-20 07:46:40 -04:00
2021-05-31 14:09:56 -04:00
The Owner role is only available at the group or personal namespace level (and for instance administrators) and is inherited by its projects.
2021-03-31 17:09:15 -04:00
While Maintainer is the highest project-level role, some actions can only be performed by a personal namespace or group owner, or an instance administrator, who receives all permissions.
For more information, see [projects members documentation ](project/members/index.md ).
2019-09-05 00:03:40 -04:00
2021-05-31 14:09:56 -04:00
The following table lists project permissions available for each role:
2016-07-12 10:49:03 -04:00
2021-07-26 20:08:48 -04:00
<!-- Keep this table sorted: first, by minimum role, then alphabetically. -->
2021-08-04 02:09:49 -04:00
| Action | Guest | Reporter | Developer | Maintainer | Owner |
|-------------------------------------------------------------------------------------------------------------------------|----------|----------|-----------|------------|-------|
| [Analytics ](analytics/index.md ):< br > View issue analytics ** (PREMIUM)** | ✓ | ✓ | ✓ | ✓ | ✓ |
| [Analytics ](analytics/index.md ):< br > View [merge request analytics ](analytics/merge_request_analytics.md ) ** (PREMIUM)** | ✓ | ✓ | ✓ | ✓ | ✓ |
| [Analytics ](analytics/index.md ):< br > View value stream analytics | ✓ | ✓ | ✓ | ✓ | ✓ |
| [Analytics ](analytics/index.md ):< br > View [DORA metrics ](analytics/ci_cd_analytics.md ) | | ✓ | ✓ | ✓ | ✓ |
| [Analytics ](analytics/index.md ):< br > View [CI/CD analytics ](analytics/ci_cd_analytics.md ) | | ✓ | ✓ | ✓ | ✓ |
| [Analytics ](analytics/index.md ):< br > View [code review analytics ](analytics/code_review_analytics.md ) ** (PREMIUM)** | | ✓ | ✓ | ✓ | ✓ |
| [Analytics ](analytics/index.md ):< br > View [repository analytics ](analytics/repository_analytics.md ) | | ✓ | ✓ | ✓ | ✓ |
2021-07-28 14:10:23 -04:00
| Assign issues | ✓ (*16*)| ✓ | ✓ | ✓ | ✓ |
2021-07-29 20:10:03 -04:00
| Create [confidential issue ](project/issues/confidential_issues.md ) | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Create new issue | ✓ | ✓ | ✓ | ✓ | ✓ |
| Download and browse job artifacts | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Download project | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
2021-07-28 14:10:23 -04:00
| Label issues | ✓ (*16*)| ✓ | ✓ | ✓ | ✓ |
2020-07-28 17:09:30 -04:00
| Leave comments | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage user-starred metrics dashboards (*7*) | ✓ | ✓ | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Pull project code | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Reposition comments on images (posted by any user)| ✓ (*10*)| ✓ (*10*) | ✓ (*10*) | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| See a job log | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| See a list of jobs | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
2021-04-06 14:09:02 -04:00
| See linked issues | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-07-28 14:10:23 -04:00
| Set issue weight | ✓ (*16*)| ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| View [Design Management ](project/issues/design_management.md ) pages | ✓ | ✓ | ✓ | ✓ | ✓ |
2020-03-13 08:09:22 -04:00
| View [Releases ](project/releases/index.md ) | ✓ (*6*) | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| View a time tracking report | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| View allowed and denied licenses ** (ULTIMATE)** | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| View GitLab Pages protected by [access control ](project/pages/introduction.md#gitlab-pages-access-control ) | ✓ | ✓ | ✓ | ✓ | ✓ |
2020-10-16 05:09:06 -04:00
| View Insights ** (ULTIMATE)** | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| View License Compliance reports ** (ULTIMATE)** | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| View licenses in Dependency list ** (ULTIMATE)** | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| View project code | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| View requirements ** (ULTIMATE)** | ✓ | ✓ | ✓ | ✓ | ✓ |
| View Security reports ** (ULTIMATE)** | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
| View wiki pages | ✓ | ✓ | ✓ | ✓ | ✓ |
| Archive [test case ](../ci/test_cases/index.md ) | | ✓ | ✓ | ✓ | ✓ |
| Archive/reopen requirements ** (ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
2021-01-08 19:10:30 -05:00
| Assign reviewers | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Create code snippets | | ✓ | ✓ | ✓ | ✓ |
| Create new [test case ](../ci/test_cases/index.md ) | | ✓ | ✓ | ✓ | ✓ |
| Create/edit requirements ** (ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
| Import/export requirements ** (ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
2019-07-15 02:10:32 -04:00
| Lock issue threads | | ✓ | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Manage issue tracker | | ✓ | ✓ | ✓ | ✓ |
| Manage labels | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage linked issues | | ✓ | ✓ | ✓ | ✓ |
2021-07-26 14:09:51 -04:00
| Move issues (*15*) | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Move [test case ](../ci/test_cases/index.md ) | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 17:09:40 -04:00
| Pull [packages ](packages/index.md ) | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Reopen [test case ](../ci/test_cases/index.md ) | | ✓ | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| See a commit status | | ✓ | ✓ | ✓ | ✓ |
2019-11-13 10:07:29 -05:00
| See a list of merge requests | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| See environments | | ✓ | ✓ | ✓ | ✓ |
| [Set issue estimate and record time spent ](project/time_tracking.md ) | | ✓ | ✓ | ✓ | ✓ |
2021-07-29 20:10:03 -04:00
| View [confidential issues ](project/issues/confidential_issues.md ) | (*2*) | ✓ | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| View Error Tracking list | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| View License list ** (ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
2020-04-21 11:21:10 -04:00
| View metrics dashboard annotations | | ✓ | ✓ | ✓ | ✓ |
2021-06-07 08:10:00 -04:00
| View project statistics | | ✓ | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Add tags | | | ✓ | ✓ | ✓ |
| Apply code change suggestions | | | ✓ | ✓ | ✓ |
| Approve merge requests (*9*) | | | ✓ | ✓ | ✓ |
| Assign merge requests | | | ✓ | ✓ | ✓ |
| Cancel and retry jobs | | | ✓ | ✓ | ✓ |
| Create and edit wiki pages | | | ✓ | ✓ | ✓ |
| Create and run [on-demand DAST scans ](application_security/dast/#on-demand-scans ) | | | ✓ | ✓ | ✓ |
| Create issue from vulnerability finding ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Create new branches | | | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Create new environments | | | ✓ | ✓ | ✓ |
| Create new merge request | | | ✓ | ✓ | ✓ |
| Create or update commit status | | | ✓ (*5*) | ✓ | ✓ |
| Create vulnerability from vulnerability finding ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| Create/edit/delete [releases ](project/releases/index.md )| | | ✓ (*13*) | ✓ (*13*) | ✓ (*13*) |
| Create/edit/delete a Cleanup policy | | | ✓ | ✓ | ✓ |
| Create/edit/delete metrics dashboard annotations | | | ✓ | ✓ | ✓ |
| Create/edit/delete project milestones | | | ✓ | ✓ | ✓ |
| Dismiss vulnerability ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| Dismiss vulnerability finding ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| Enable Review Apps | | | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Force push to non-protected branches | | | ✓ | ✓ | ✓ |
| Label merge requests | | | ✓ | ✓ | ✓ |
2019-07-15 02:10:32 -04:00
| Lock merge request threads | | | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage Feature Flags ** (PREMIUM)** | | | ✓ | ✓ | ✓ |
| Manage security policy ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Manage/Accept merge requests | | | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Publish [packages ](packages/index.md ) | | | ✓ | ✓ | ✓ |
| Push to non-protected branches | | | ✓ | ✓ | ✓ |
2020-10-16 05:09:06 -04:00
| Read Terraform state | | | ✓ | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Remove a container registry image | | | ✓ | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Remove non-protected branches | | | ✓ | ✓ | ✓ |
2020-04-09 14:09:34 -04:00
| Resolve vulnerability ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
2020-09-24 08:09:37 -04:00
| Revert vulnerability to detected state ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
2019-06-19 03:08:56 -04:00
| Rewrite/remove Git tags | | | ✓ | ✓ | ✓ |
2020-07-10 14:09:45 -04:00
| Run CI/CD pipeline against a protected branch | | | ✓ (*5*) | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| See a job with [debug logging ](../ci/variables/index.md#debug-logging ) | | | ✓ | ✓ | ✓ |
| Stop environments | | | ✓ | ✓ | ✓ |
| Update a container registry | | | ✓ | ✓ | ✓ |
| Upload [Design Management ](project/issues/design_management.md ) files | | | ✓ | ✓ | ✓ |
| Use security dashboard ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| View [Threats list ](application_security/threat_monitoring/#threat-monitoring ) ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| View Dependency list ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| View Pods logs | | | ✓ | ✓ | ✓ |
| View project Audit Events | | | ✓ (*11*) | ✓ | ✓ |
| View vulnerability ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| View vulnerability findings in Dependency list ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
| Add deploy keys to project | | | | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Add new team members | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Configure project hooks | | | | ✓ | ✓ |
| Change project features visibility level | | | | ✓ (14) | ✓ |
| Delete [packages ](packages/index.md ) | | | | ✓ | ✓ |
| Delete wiki pages | | | | ✓ | ✓ |
| Edit comments (posted by any user) | | | | ✓ | ✓ |
| Edit project badges | | | | ✓ | ✓ |
| Edit project settings | | | | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Enable/disable branch protection | | | | ✓ | ✓ |
| Enable/disable tag protections | | | | ✓ | ✓ |
2020-10-16 05:09:06 -04:00
| Export project | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage [project access tokens ](project/settings/project_access_tokens.md ) ** (FREE SELF)** ** (PREMIUM SAAS)** (*12*) | | | | ✓ | ✓ |
| Manage [push rules ](../push_rules/push_rules.md ) | | | | ✓ | ✓ |
2020-01-24 04:08:32 -05:00
| Manage CI/CD variables | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage clusters | | | | ✓ | ✓ |
| Manage Error Tracking | | | | ✓ | ✓ |
2019-05-31 07:06:58 -04:00
| Manage GitLab Pages | | | | ✓ | ✓ |
| Manage GitLab Pages domains and certificates | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage job triggers | | | | ✓ | ✓ |
| Manage license policy ** (ULTIMATE)** | | | | ✓ | ✓ |
| Manage merge approval rules (project settings) | | | | ✓ | ✓ |
2020-06-22 11:09:27 -04:00
| Manage Project Operations | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Manage runners | | | | ✓ | ✓ |
2020-07-14 02:09:17 -04:00
| Manage Terraform state | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Push to protected branches | | | | ✓ | ✓ |
| Remove GitLab Pages | | | | ✓ | ✓ |
| Request a CVE ID ** (FREE SAAS)** | | | | ✓ | ✓ |
| Run Web IDE's Interactive Web Terminals ** (ULTIMATE SELF)** | | | | ✓ | ✓ |
| Share (invite) projects with groups | | | | ✓ (*8*) | ✓ (*8*)|
| Turn on/off protected branch push for developers | | | | ✓ | ✓ |
| Use environment terminals | | | | ✓ | ✓ |
2021-02-28 19:10:57 -05:00
| View 2FA status of members | | | | ✓ | ✓ |
2021-07-22 11:10:25 -04:00
| Administer project compliance frameworks | | | | | ✓ |
2020-06-02 14:08:32 -04:00
| Archive project | | | | | ✓ |
2021-07-22 11:10:25 -04:00
| Change project visibility level | | | | | ✓ |
| Create or assign security policy project ** (ULTIMATE)** | | | | | ✓ |
2019-05-31 07:06:58 -04:00
| Delete issues | | | | | ✓ |
2020-06-02 14:08:32 -04:00
| Delete merge request | | | | | ✓ |
2021-07-22 11:10:25 -04:00
| Delete pipelines | | | | | ✓ |
| Delete project | | | | | ✓ |
2019-08-17 01:56:48 -04:00
| Disable notification emails | | | | | ✓ |
2021-07-22 11:10:25 -04:00
| Remove fork relationship | | | | | ✓ |
| Rename project | | | | | ✓ |
| Transfer project to another namespace | | | | | ✓ |
2019-07-03 03:12:04 -04:00
| Force push to protected branches (*4*) | | | | | |
| Remove protected branches (*4*) | | | | | |
2020-02-27 01:09:20 -05:00
2020-09-28 14:09:40 -04:00
1. Guest users are able to perform this action on public and internal projects, but not private projects. This doesn't apply to [external users ](#external-users ) where explicit access must be given even if the project is internal.
2021-07-29 20:10:03 -04:00
1. Guest users can only view the [confidential issues ](project/issues/confidential_issues.md ) they created themselves.
2020-02-27 01:09:20 -05:00
1. If **Public pipelines** is enabled in **Project Settings > CI/CD** .
2021-02-05 10:09:28 -05:00
1. Not allowed for Guest, Reporter, Developer, Maintainer, or Owner. See [protected branches ](project/protected_branches.md ).
2021-06-17 08:10:02 -04:00
1. If the [branch is protected ](project/protected_branches.md ), this depends on the access Developers and Maintainers are given.
2020-03-13 08:09:22 -04:00
1. Guest users can access GitLab [**Releases** ](project/releases/index.md ) for downloading assets but are not allowed to download the source code nor see repository information like tags and commits.
2020-05-13 14:08:47 -04:00
1. Actions are limited only to records owned (referenced) by user.
2021-03-01 19:11:26 -05:00
1. When [Share Group Lock ](group/index.md#prevent-a-project-from-being-shared-with-groups ) is enabled the project can't be shared with other groups. It does not affect group with group sharing.
2020-06-10 14:09:15 -04:00
1. For information on eligible approvers for merge requests, see
2021-04-28 17:10:01 -04:00
[Eligible approvers ](project/merge_requests/approvals/rules.md#eligible-approvers ).
2020-12-02 19:09:53 -05:00
1. Applies only to comments on [Design Management ](project/issues/design_management.md ) designs.
2020-12-16 10:10:18 -05:00
1. Users can only view events based on their individual actions.
2021-04-06 20:09:26 -04:00
1. Project access tokens are supported for self-managed instances on Free and above. They are also
2021-07-02 14:08:28 -04:00
supported on GitLab SaaS Premium and above (excluding [trial licenses ](https://about.gitlab.com/free-trial/ )).
2021-07-06 23:08:47 -04:00
1. If the [tag is protected ](#release-permissions-with-protected-tags ), this depends on the access Developers and Maintainers are given.
2021-07-22 11:10:25 -04:00
1. A Maintainer can't change project features visibility level if
[project visibility ](../public_access/public_access.md ) is set to private.
2021-07-26 14:09:51 -04:00
1. Attached design files are moved together with the issue even if the user doesn't have the
Developer role.
2021-07-28 14:10:23 -04:00
1. Guest users can set metadata (for example, labels, assignees, or milestones) when creating an issue.
2016-07-12 10:49:03 -04:00
2017-08-15 13:58:21 -04:00
## Project features permissions
### Wiki and issues
2021-03-31 17:09:15 -04:00
Project features like [wikis ](project/wiki/index.md ) and issues can be hidden from users depending on
2017-08-15 13:58:21 -04:00
which visibility level you select on project settings.
- Disabled: disabled for everyone
2020-08-09 20:10:20 -04:00
- Only team members: only team members can see even if your project is public or internal
2020-09-23 17:09:28 -04:00
- Everyone with access: everyone can see depending on your project's visibility level
2018-10-05 09:41:11 -04:00
- Everyone: enabled for everyone (only available for GitLab Pages)
2017-08-15 13:58:21 -04:00
### Protected branches
2019-09-11 22:29:56 -04:00
Additional restrictions can be applied on a per-branch basis with [protected branches ](project/protected_branches.md ).
Additionally, you can customize permissions to allow or prevent project
Maintainers and Developers from pushing to a protected branch. Read through the documentation on
2021-06-17 08:10:02 -04:00
[protected branches ](project/protected_branches.md )
2017-08-15 13:58:21 -04:00
to learn more.
2020-02-07 16:08:39 -05:00
### Value Stream Analytics permissions
2017-08-15 13:58:21 -04:00
2020-02-07 16:08:39 -05:00
Find the current permissions on the Value Stream Analytics dashboard, as described in
[related documentation ](analytics/value_stream_analytics.md#permissions ).
2017-08-15 13:58:21 -04:00
### Issue Board permissions
2020-08-31 20:10:35 -04:00
Find the current permissions for interacting with the Issue Board feature in the
[Issue Boards permissions page ](project/issue_board.md#permissions ).
2017-08-15 13:58:21 -04:00
2019-07-08 04:50:38 -04:00
### File Locking permissions **(PREMIUM)**
2017-08-15 13:58:21 -04:00
The user that locks a file or directory is the only one that can edit and push their changes back to the repository where the locked objects are located.
2020-08-26 05:10:16 -04:00
Read through the documentation on [permissions for File Locking ](project/file_lock.md#permissions ) to learn more.
2017-08-15 13:58:21 -04:00
### Confidential Issues permissions
2021-07-29 20:10:03 -04:00
[Confidential issues ](project/issues/confidential_issues.md ) can be accessed by users with reporter and higher permission levels,
2017-08-15 13:58:21 -04:00
as well as by guest users that create a confidential issue. To learn more,
read through the documentation on [permissions and access to confidential issues ](project/issues/confidential_issues.md#permissions-and-access-to-confidential-issues ).
2021-08-04 14:09:57 -04:00
### Container Registry visibility permissions
Find the visibility permissions for the Container Registry, as described in the
[related documentation ](packages/container_registry/index.md#container-registry-visibility-permissions ).
2017-08-15 13:58:21 -04:00
## Group members permissions
2016-07-12 10:49:03 -04:00
2020-12-04 16:09:29 -05:00
NOTE:
2018-06-20 07:46:40 -04:00
In GitLab 11.0, the Master role was renamed to Maintainer.
2016-07-12 10:49:03 -04:00
Any user can remove themselves from a group, unless they are the last Owner of
2021-05-31 14:09:56 -04:00
the group.
The following table lists group permissions available for each role:
2016-07-12 10:49:03 -04:00
2021-07-26 20:08:48 -04:00
<!-- Keep this table sorted: first, by minimum role, then alphabetically. -->
2019-08-27 21:01:49 -04:00
| Action | Guest | Reporter | Developer | Maintainer | Owner |
|--------------------------------------------------------|-------|----------|-----------|------------|-------|
| Browse group | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| Edit SAML SSO Billing ** (PREMIUM SAAS)** | ✓ | ✓ | ✓ | ✓ | ✓ (4) |
| View Contribution analytics | ✓ | ✓ | ✓ | ✓ | ✓ |
| View group epic ** (PREMIUM)** | ✓ | ✓ | ✓ | ✓ | ✓ |
2020-10-16 11:08:46 -04:00
| View group wiki pages ** (PREMIUM)** | ✓ (6) | ✓ | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| View Insights ** (ULTIMATE)** | ✓ | ✓ | ✓ | ✓ | ✓ |
2019-08-27 21:01:49 -04:00
| View Insights charts ** (ULTIMATE)** | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| View Issue analytics ** (PREMIUM)** | ✓ | ✓ | ✓ | ✓ | ✓ |
| View Value Stream analytics | ✓ | ✓ | ✓ | ✓ | ✓ |
2021-06-15 02:10:17 -04:00
| Create/edit group epic ** (PREMIUM)** | | ✓ | ✓ | ✓ | ✓ |
| Create/edit/delete epic boards ** (PREMIUM)** | | ✓ | ✓ | ✓ | ✓ |
2019-08-27 21:01:49 -04:00
| Manage group labels | | ✓ | ✓ | ✓ | ✓ |
2020-07-21 14:09:45 -04:00
| Pull [packages ](packages/index.md ) | | ✓ | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| View a container registry | | ✓ | ✓ | ✓ | ✓ |
| View Group DevOps Adoption ** (ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
2020-04-21 11:21:10 -04:00
| View metrics dashboard annotations | | ✓ | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| View Productivity analytics ** (PREMIUM)** | | ✓ | ✓ | ✓ | ✓ |
| Create and edit group wiki pages ** (PREMIUM)** | | | ✓ | ✓ | ✓ |
2020-09-15 17:09:35 -04:00
| Create project in group | | | ✓ (3)(5) | ✓ (3) | ✓ (3) |
2019-08-27 21:01:49 -04:00
| Create/edit/delete group milestones | | | ✓ | ✓ | ✓ |
2020-06-26 08:08:51 -04:00
| Create/edit/delete iterations | | | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| Create/edit/delete metrics dashboard annotations | | | ✓ | ✓ | ✓ |
2020-11-13 16:09:31 -05:00
| Enable/disable a dependency proxy | | | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| Publish [packages ](packages/index.md ) | | | ✓ | ✓ | ✓ |
2019-08-27 21:01:49 -04:00
| Use security dashboard ** (ULTIMATE)** | | | ✓ | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| View group Audit Events | | | ✓ (7) | ✓ (7) | ✓ |
2019-08-27 21:01:49 -04:00
| Create subgroup | | | | ✓ (1) | ✓ |
2020-10-16 11:08:46 -04:00
| Delete group wiki pages ** (PREMIUM)** | | | | ✓ | ✓ |
2020-04-09 14:09:34 -04:00
| Edit epic comments (posted by any user) ** (ULTIMATE)** | | | | ✓ (2) | ✓ (2) |
2020-07-01 17:08:51 -04:00
| List group deploy tokens | | | | ✓ | ✓ |
2021-07-19 17:08:57 -04:00
| Manage [group push rules ](group/index.md#group-push-rules ) ** (PREMIUM)** | | | | ✓ | ✓ |
| View/manage group-level Kubernetes cluster | | | | ✓ | ✓ |
| Administer project compliance frameworks | | | | | ✓ |
2020-07-01 17:08:51 -04:00
| Create/Delete group deploy tokens | | | | | ✓ |
2020-06-03 02:08:34 -04:00
| Delete group | | | | | ✓ |
2021-06-15 02:10:17 -04:00
| Delete group epic ** (PREMIUM)** | | | | | ✓ |
2019-08-27 21:01:49 -04:00
| Disable notification emails | | | | | ✓ |
2021-07-19 17:08:57 -04:00
| Edit group settings | | | | | ✓ |
| Filter members by 2FA status | | | | | ✓ |
| Manage group level CI/CD variables | | | | | ✓ |
| Manage group members | | | | | ✓ |
| Share (invite) groups with groups | | | | | ✓ |
| View 2FA status of members | | | | | ✓ |
2021-01-28 01:08:59 -05:00
| View Billing ** (FREE SAAS)** | | | | | ✓ (4) |
| View Usage Quotas ** (FREE SAAS)** | | | | | ✓ (4) |
2016-07-12 10:49:03 -04:00
2020-02-27 01:09:20 -05:00
1. Groups can be set to [allow either Owners or Owners and
2019-07-12 13:48:38 -04:00
Maintainers to create subgroups](group/subgroups/index.md#creating-a-subgroup)
2020-02-27 01:09:20 -05:00
1. Introduced in GitLab 12.2.
1. Default project creation role can be changed at:
- The [instance level ](admin_area/settings/visibility_and_access_controls.md#default-project-creation-protection ).
2021-03-03 22:10:58 -05:00
- The [group level ](group/index.md#specify-who-can-add-projects-to-a-group ).
2020-06-03 02:08:34 -04:00
1. Does not apply to subgroups.
2021-02-24 01:11:32 -05:00
1. Developers can push commits to the default branch of a new project only if the [default branch protection ](group/index.md#change-the-default-branch-protection-of-a-group ) is set to "Partially protected" or "Not protected".
2020-10-16 11:08:46 -04:00
1. In addition, if your group is public or internal, all users who can see the group can also see group wiki pages.
2020-12-16 10:10:18 -05:00
1. Users can only view events based on their individual actions.
2019-07-01 18:39:43 -04:00
2017-08-15 13:58:21 -04:00
### Subgroup permissions
When you add a member to a subgroup, they inherit the membership and
2020-07-02 17:09:14 -04:00
permission level from the parent group(s). This model allows access to
2017-08-15 13:58:21 -04:00
nested groups if you have membership in one of its parents.
To learn more, read through the documentation on
[subgroups memberships ](group/subgroups/index.md#membership ).
2021-01-28 01:08:59 -05:00
## External users **(FREE SELF)**
2016-07-12 10:49:03 -04:00
In cases where it is desired that a user has access only to some internal or
private projects, there is the option of creating **External Users** . This
feature may be useful when for example a contractor is working on a given
project and should only have access to that project.
2019-10-08 20:06:06 -04:00
External users:
2021-04-13 17:11:25 -04:00
- Can only create projects (including forks), subgroups, and snippets within the top-level group to which they belong.
2020-06-08 14:08:27 -04:00
- Can only access public projects and projects to which they are explicitly granted access,
2019-10-08 20:06:06 -04:00
thus hiding all other internal or private ones from them (like being
logged out).
2020-10-30 11:08:59 -04:00
- Can only access public groups and groups to which they are explicitly granted access,
thus hiding all other internal or private ones from them (like being
logged out).
- Can only access public snippets.
2016-07-12 10:49:03 -04:00
2019-10-08 20:06:06 -04:00
Access can be granted by adding the user as member to the project or group.
2020-08-09 20:10:20 -04:00
Like usual users, they receive a role in the project or group with all
2019-10-08 20:06:06 -04:00
the abilities that are mentioned in the [permissions table above ](#project-members-permissions ).
2020-09-28 14:09:40 -04:00
For example, if an external user is added as Guest, and your project is internal or
2020-08-09 20:10:20 -04:00
private, they do not have access to the code; you need to grant the external
2019-10-08 20:06:06 -04:00
user access at the Reporter level or above if you want them to have access to the code. You should
always take into account the
[project's visibility and permissions settings ](project/settings/index.md#sharing-and-permissions )
as well as the permission level of the user.
2018-11-04 22:40:20 -05:00
2020-12-04 16:09:29 -05:00
NOTE:
2019-10-08 20:06:06 -04:00
External users still count towards a license seat.
An administrator can flag a user as external by either of the following methods:
2016-07-12 10:49:03 -04:00
2021-06-15 14:09:57 -04:00
- [Through the API ](../api/users.md#user-modification ).
- Using the GitLab UI:
1. On the top bar, select **Menu >** ** {admin}** **Admin** .
1. On the left sidebar, select **Overview > Users** to create a new user or edit an existing one.
There, you can find the option to flag the user as external.
2016-07-12 10:49:03 -04:00
2021-02-01 13:09:17 -05:00
Additionally users can be set as external users using [SAML groups ](../integration/saml.md#external-groups )
and [LDAP groups ](../administration/auth/ldap/index.md#external-groups ).
2019-10-08 20:06:06 -04:00
### Setting new users to external
2018-08-30 08:53:06 -04:00
2019-10-08 20:06:06 -04:00
By default, new users are not set as external users. This behavior can be changed
2021-06-15 14:09:57 -04:00
by an administrator:
1. On the top bar, select **Menu >** ** {admin}** **Admin** .
1. On the left sidebar, select **Settings > General** .
1. Expand the **Account and limit** section.
2018-08-30 08:53:06 -04:00
2020-08-09 20:10:20 -04:00
If you change the default behavior of creating new users as external, you
2019-10-08 20:06:06 -04:00
have the option to narrow it down by defining a set of internal users.
The **Internal users** field allows specifying an email address regex pattern to
identify default internal users. New users whose email address matches the regex
2020-08-09 20:10:20 -04:00
pattern are set to internal by default rather than an external collaborator.
2018-08-30 08:53:06 -04:00
2020-09-22 17:10:04 -04:00
The regex pattern format is in Ruby, but it needs to be convertible to JavaScript,
2020-08-09 20:10:20 -04:00
and the ignore case flag is set (`/regex pattern/i`). Here are some examples:
2018-08-30 08:53:06 -04:00
2019-10-08 20:06:06 -04:00
- Use `\.internal@domain\.com$` to mark email addresses ending with
`.internal@domain.com` as internal.
- Use `^(?:(?!\.ext@domain\.com).)*$\r?` to mark users with email addresses
NOT including `.ext@domain.com` as internal.
2018-08-30 08:53:06 -04:00
2020-12-04 16:09:29 -05:00
WARNING:
2019-10-08 20:06:06 -04:00
Be aware that this regex could lead to a
[regular expression denial of service (ReDoS) attack ](https://en.wikipedia.org/wiki/ReDoS ).
## Free Guest users **(ULTIMATE)**
2018-08-30 08:53:06 -04:00
2019-10-08 20:06:06 -04:00
When a user is given Guest permissions on a project, group, or both, and holds no
higher permission level on any other project or group on the GitLab instance,
2020-08-09 20:10:20 -04:00
the user is considered a guest user by GitLab and does not consume a license seat.
2019-10-08 20:06:06 -04:00
There is no other specific "guest" designation for newly created users.
2020-08-09 20:10:20 -04:00
If the user is assigned a higher role on any projects or groups, the user
takes a license seat. If a user creates a project, the user becomes a Maintainer
2019-10-08 20:06:06 -04:00
on the project, resulting in the use of a license seat. Also, note that if your
2020-08-09 20:10:20 -04:00
project is internal or private, Guest users have all the abilities that are
2019-10-08 20:06:06 -04:00
mentioned in the [permissions table above ](#project-members-permissions ) (they
2020-08-09 20:10:20 -04:00
are unable to browse the project's repository, for example).
2019-10-08 20:06:06 -04:00
2020-12-07 22:09:37 -05:00
NOTE:
2019-10-08 20:06:06 -04:00
To prevent a guest user from creating projects, as an admin, you can edit the
2020-09-07 11:09:04 -04:00
user's profile to mark the user as [external ](#external-users ).
2019-10-08 20:06:06 -04:00
Beware though that even if a user is external, if they already have Reporter or
2020-08-09 20:10:20 -04:00
higher permissions in any project or group, they are **not** counted as a
2019-10-08 20:06:06 -04:00
free guest user.
2018-08-30 08:53:06 -04:00
2021-01-28 07:09:54 -05:00
## Auditor users **(PREMIUM SELF)**
2018-06-14 11:16:53 -04:00
2020-02-06 10:09:11 -05:00
>[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/998) in [GitLab Premium ](https://about.gitlab.com/pricing/ ) 8.17.
2018-06-14 11:16:53 -04:00
Auditor users are given read-only access to all projects, groups, and other
resources on the GitLab instance.
An Auditor user should be able to access all projects and groups of a GitLab instance
2019-05-31 07:06:58 -04:00
with the permissions described on the documentation on [auditor users permissions ](../administration/auditor_users.md#permissions-and-restrictions-of-an-auditor-user ).
2018-06-14 11:16:53 -04:00
2019-05-31 07:06:58 -04:00
[Read more about Auditor users. ](../administration/auditor_users.md )
2018-06-14 11:16:53 -04:00
2020-10-22 20:08:30 -04:00
## Users with minimal access **(PREMIUM)**
2020-10-01 11:10:05 -04:00
>[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40942) in [GitLab Premium ](https://about.gitlab.com/pricing/ ) 13.4.
2021-05-16 20:10:14 -04:00
Owners can add members with a "minimal access" role to a parent group. Such users don't
automatically have access to projects and subgroups underneath. To support such access, owners must explicitly add these "minimal access" users to the specific subgroups/projects.
2020-10-01 11:10:05 -04:00
Users with minimal access can list the group in the UI and through the API. However, they cannot see
2020-10-16 14:09:04 -04:00
details such as projects or subgroups. They do not have access to the group's page or list any of its subgroups or projects.
2020-10-01 11:10:05 -04:00
2020-12-02 19:09:53 -05:00
### Minimal access users take license seats
Users with even a "minimal access" role are counted against your number of license seats. This
2021-01-29 01:09:09 -05:00
requirement does not apply for [GitLab Ultimate ](https://about.gitlab.com/pricing/ )
subscriptions.
2020-12-02 19:09:53 -05:00
2018-06-14 11:16:53 -04:00
## Project features
Project features like wiki and issues can be hidden from users depending on
which visibility level you select on project settings.
- Disabled: disabled for everyone
- Only team members: only team members will see even if your project is public or internal
- Everyone with access: everyone can see depending on your project visibility level
2018-10-05 09:41:11 -04:00
- Everyone: enabled for everyone (only available for GitLab Pages)
2018-06-14 11:16:53 -04:00
2017-08-15 13:58:21 -04:00
## GitLab CI/CD permissions
2016-07-12 10:49:03 -04:00
2020-12-04 16:09:29 -05:00
NOTE:
2018-06-20 07:46:40 -04:00
In GitLab 11.0, the Master role was renamed to Maintainer.
2017-08-15 13:58:21 -04:00
GitLab CI/CD permissions rely on the role the user has in GitLab. There are four
2021-06-11 14:10:13 -04:00
roles:
- Administrator
- Maintainer
- Developer
- Guest/Reporter
The Administrator role can perform any action on GitLab CI/CD in scope of the GitLab
instance and project.
| Action | Guest, Reporter | Developer |Maintainer| Administrator |
|---------------------------------------|-----------------|-------------|----------|---------------|
| See commits and jobs | ✓ | ✓ | ✓ | ✓ |
| Retry or cancel job | | ✓ | ✓ | ✓ |
| Erase job artifacts and job logs | | ✓ (*1*) | ✓ | ✓ |
| Delete project | | | ✓ | ✓ |
| Create project | | | ✓ | ✓ |
| Change project configuration | | | ✓ | ✓ |
| Add specific runners | | | ✓ | ✓ |
| Add shared runners | | | | ✓ |
| See events in the system | | | | ✓ |
| Admin Area | | | | ✓ |
2016-09-21 10:28:48 -04:00
2020-05-12 11:10:33 -04:00
1. Only if the job was:
- Triggered by the user
2021-06-11 14:10:13 -04:00
- [In GitLab 13.0 ](https://gitlab.com/gitlab-org/gitlab/-/issues/35069 ) and later, run for a non-protected branch.
2019-05-31 07:06:58 -04:00
2017-08-15 13:58:21 -04:00
### Job permissions
2016-09-21 10:28:48 -04:00
2020-12-04 16:09:29 -05:00
NOTE:
2018-06-20 07:46:40 -04:00
In GitLab 11.0, the Master role was renamed to Maintainer.
2017-02-13 11:59:57 -05:00
This table shows granted privileges for jobs triggered by specific types of
2016-09-22 08:04:57 -04:00
users:
2016-09-21 10:28:48 -04:00
2019-05-31 07:06:58 -04:00
| Action | Guest, Reporter | Developer |Maintainer| Admin |
|---------------------------------------------|-----------------|-------------|----------|---------|
| Run CI job | | ✓ | ✓ | ✓ |
| Clone source and LFS from current project | | ✓ | ✓ | ✓ |
| Clone source and LFS from public projects | | ✓ | ✓ | ✓ |
| Clone source and LFS from internal projects | | ✓ (*1*) | ✓ (*1*) | ✓ |
| Clone source and LFS from private projects | | ✓ (*2*) | ✓ (*2*) | ✓ (*2*) |
| Pull container images from current project | | ✓ | ✓ | ✓ |
| Pull container images from public projects | | ✓ | ✓ | ✓ |
| Pull container images from internal projects| | ✓ (*1*) | ✓ (*1*) | ✓ |
| Pull container images from private projects | | ✓ (*2*) | ✓ (*2*) | ✓ (*2*) |
| Push container images to current project | | ✓ | ✓ | ✓ |
| Push container images to other projects | | | | |
| Push source and LFS | | | | |
2020-02-27 01:09:20 -05:00
1. Only if the user is not an external one
1. Only if the user is a member of the project
2016-09-21 10:28:48 -04:00
2017-09-07 07:23:02 -04:00
## Running pipelines on protected branches
The permission to merge or push to protected branches is used to define if a user can
run CI/CD pipelines and execute actions on jobs that are related to those branches.
2020-04-10 02:09:41 -04:00
See [Security on protected branches ](../ci/pipelines/index.md#pipeline-security-on-protected-branches )
2017-09-07 07:23:02 -04:00
for details about the pipelines security model.
2021-07-06 23:08:47 -04:00
## Release permissions with protected tags
[The permission to create tags ](project/protected_tags.md ) is used to define if a user can
create, edit, and delete [Releases ](project/releases/index.md ).
See [Release permissions ](project/releases/index.md#release-permissions )
for more information.
2017-08-15 13:58:21 -04:00
## LDAP users permissions
2020-10-14 20:08:42 -04:00
In GitLab 8.15 and later, LDAP user permissions can now be manually overridden by an admin user.
2020-09-07 11:09:04 -04:00
Read through the documentation on [LDAP users permissions ](group/index.md#manage-group-memberships-via-ldap ) to learn more.
2019-06-16 23:56:59 -04:00
## Project aliases
Project aliases can only be read, created and deleted by a GitLab administrator.
2021-02-09 04:09:19 -05:00
Read through the documentation on [Project aliases ](../user/project/import/index.md#project-aliases ) to learn more.