# Permissions
> 原文:[https://docs.gitlab.com/ee/user/permissions.html](https://docs.gitlab.com/ee/user/permissions.html)
* [Principles behind permissions](#principles-behind-permissions)
* [Instance-wide user permissions](#instance-wide-user-permissions)
* [Project members permissions](#project-members-permissions)
* [Project features permissions](#project-features-permissions)
* [Wiki and issues](#wiki-and-issues)
* [Protected branches](#protected-branches)
* [Value Stream Analytics permissions](#value-stream-analytics-permissions)
* [Issue Board permissions](#issue-board-permissions)
* [File Locking permissions](#file-locking-permissions-premium)
* [Confidential Issues permissions](#confidential-issues-permissions)
* [Group members permissions](#group-members-permissions)
* [Subgroup permissions](#subgroup-permissions)
* [External users](#external-users-core-only)
* [Setting new users to external](#setting-new-users-to-external)
* [Free Guest users](#free-guest-users-ultimate)
* [Auditor users](#auditor-users-premium-only)
* [Project features](#project-features)
* [GitLab CI/CD permissions](#gitlab-cicd-permissions)
* [Job permissions](#job-permissions)
* [New CI job permissions model](#new-ci-job-permissions-model)
* [Running pipelines on protected branches](#running-pipelines-on-protected-branches)
* [LDAP users permissions](#ldap-users-permissions)
* [Project aliases](#project-aliases)
# Permissions[](#permissions "Permalink")
用户具有不同的能力,具体取决于他们在特定组或项目中具有的访问级别. 如果用户既属于项目组又属于项目本身,则使用最高权限级别.
在公共和内部项目上,不执行来宾角色. 所有用户将能够:
* 创造问题.
* 留言.
* 克隆或下载项目代码.
当成员离开团队的项目时,所有分配的" [问题"](project/issues/index.html)和" [合并请求"](project/merge_requests/index.html)将自动取消分配.
GitLab [管理员拥有](../administration/index.html)所有权限.
要添加或导入用户,可以遵循[项目成员文档](project/members/index.html) .
## Principles behind permissions[](#principles-behind-permissions "Permalink")
有关[权限的信息,](https://about.gitlab.com/handbook/product/gitlab-the-product/#permissions-in-gitlab)请参见我们的[产品手册](https://about.gitlab.com/handbook/product/gitlab-the-product/#permissions-in-gitlab) .
## Instance-wide user permissions[](#instance-wide-user-permissions "Permalink")
默认情况下,用户可以创建顶级组并更改其用户名. GitLab 管理员可以配置 GitLab 实例来[修改此行为](../administration/user_settings.html) .
## Project members permissions[](#project-members-permissions "Permalink")
**注意:**在 GitLab 11.0 中,"主"角色已重命名为"维护者".
虽然维护者是项目级别的最高角色,但是某些操作只能由拥有所有权限的个人名称空间或组所有者或实例管理员执行. 有关更多信息,请参阅[项目成员文档](project/members/index.html) .
下表描述了项目中的各种用户权限级别.
| Action | Guest | Reporter | Developer | Maintainer | Owner* |
| --- | --- | --- | --- | --- | --- |
| 下载专案 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 留言 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看允许和拒绝的许可证 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看许可证合规性报告 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看安全报告 | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
| 查看相关性列表 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看许可证列表 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 在相关性列表中查看许可证 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| View [Design Management](project/issues/design_management.html) pages | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看项目代码 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 拉项目代码 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看受[访问控制](project/pages/introduction.html#gitlab-pages-access-control-core)保护的 GitLab 页面 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看维基页面 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看工作清单 | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
| 查看工作日志 | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
| 下载和浏览工作工件 | ✓ (*3*) | ✓ | ✓ | ✓ | ✓ |
| 创刊号 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看相关问题 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 创建机密问题 | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| 查看机密问题 | (*2*) | ✓ | ✓ | ✓ | ✓ |
| View [Releases](project/releases/index.html) | ✓ (*6*) | ✓ | ✓ | ✓ | ✓ |
| 查看要求 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 管理用户加星标的指标仪表板( *7* ) | ✓ | ✓ | ✓ | ✓ | ✓ |
| 分配问题 | | ✓ | ✓ | ✓ | ✓ |
| 标签问题 | | ✓ | ✓ | ✓ | ✓ |
| 设定发行权重 | | ✓ | ✓ | ✓ | ✓ |
| 锁定问题线程 | | ✓ | ✓ | ✓ | ✓ |
| 管理问题追踪器 | | ✓ | ✓ | ✓ | ✓ |
| 管理相关问题 | | ✓ | ✓ | ✓ | ✓ |
| 管理标签 | | ✓ | ✓ | ✓ | ✓ |
| 创建代码段 | | ✓ | ✓ | ✓ | ✓ |
| 查看提交状态 | | ✓ | ✓ | ✓ | ✓ |
| 查看容器注册表 | | ✓ | ✓ | ✓ | ✓ |
| 查看环境 | | ✓ | ✓ | ✓ | ✓ |
| 查看合并请求列表 | | ✓ | ✓ | ✓ | ✓ |
| 查看项目统计 | | | ✓ | ✓ | ✓ |
| 查看错误跟踪列表 | | ✓ | ✓ | ✓ | ✓ |
| 创建新的合并请求 | | ✓ | ✓ | ✓ | ✓ |
| 查看指标仪表板注释 | | ✓ | ✓ | ✓ | ✓ |
| 创建/编辑需求 | | ✓ | ✓ | ✓ | ✓ |
| Pull [packages](packages/index.html) | | ✓ | ✓ | ✓ | ✓ |
| Publish [packages](packages/index.html) | | | ✓ | ✓ | ✓ |
| Upload [Design Management](project/issues/design_management.html) files | | | ✓ | ✓ | ✓ |
| Create/edit/delete [Releases](project/releases/index.html) | | | ✓ | ✓ | ✓ |
| 创建新分支 | | | ✓ | ✓ | ✓ |
| 推送到不受保护的分支 | | | ✓ | ✓ | ✓ |
| 强制推送到不受保护的分支 | | | ✓ | ✓ | ✓ |
| 删除不受保护的分支 | | | ✓ | ✓ | ✓ |
| 分配合并请求 | | | ✓ | ✓ | ✓ |
| 标签合并请求 | | | ✓ | ✓ | ✓ |
| 锁定合并请求线程 | | | ✓ | ✓ | ✓ |
| 批准合并请求( *9* ) | | | ✓ | ✓ | ✓ |
| 管理/接受合并请求 | | | ✓ | ✓ | ✓ |
| 创建新环境 | | | ✓ | ✓ | ✓ |
| 停止环境 | | | ✓ | ✓ | ✓ |
| 启用评论应用 | | | ✓ | ✓ | ✓ |
| 添加标签 | | | ✓ | ✓ | ✓ |
| 取消并重试作业 | | | ✓ | ✓ | ✓ |
| 创建或更新提交状态 | | | ✓ (*5*) | ✓ | ✓ |
| 更新容器注册表 | | | ✓ | ✓ | ✓ |
| 删除容器注册表映像 | | | ✓ | ✓ | ✓ |
| 创建/编辑/删除项目里程碑 | | | ✓ | ✓ | ✓ |
| 使用安全仪表板 | | | ✓ | ✓ | ✓ |
| 在"依赖关系"列表中查看漏洞发现 | | | ✓ | ✓ | ✓ |
| 从漏洞发现中创建问题 | | | ✓ | ✓ | ✓ |
| 消除漏洞发现 | | | ✓ | ✓ | ✓ |
| 查看漏洞 | | | ✓ | ✓ | ✓ |
| 通过漏洞发现创建漏洞 | | | ✓ | ✓ | ✓ |
| 解决漏洞 | | | ✓ | ✓ | ✓ |
| 消除漏洞 | | | ✓ | ✓ | ✓ |
| 应用代码更改建议 | | | ✓ | ✓ | ✓ |
| 创建和编辑 Wiki 页面 | | | ✓ | ✓ | ✓ |
| 重写/删除 Git 标签 | | | ✓ | ✓ | ✓ |
| 管理功能标记 | | | ✓ | ✓ | ✓ |
| 创建/编辑/删除指标仪表板注释 | | | ✓ | ✓ | ✓ |
| 针对受保护的分支运行 CI / CD 管道 | | | ✓ (*5*) | ✓ | ✓ |
| 使用环境终端 | | | | ✓ | ✓ |
| 运行 Web IDE 的交互式 Web 终端 | | | | ✓ | ✓ |
| 添加新的团队成员 | | | | ✓ | ✓ |
| 启用/禁用分支保护 | | | | ✓ | ✓ |
| 推送到受保护的分支 | | | | ✓ | ✓ |
| 为开发人员打开/关闭受保护的分支推送 | | | | ✓ | ✓ |
| 启用/禁用标签保护 | | | | ✓ | ✓ |
| 编辑专案 | | | | ✓ | ✓ |
| 编辑项目徽章 | | | | ✓ | ✓ |
| 与小组共享(邀请)项目 | | | | ✓ (*8*) | ✓ (*8*) |
| 将部署密钥添加到项目 | | | | ✓ | ✓ |
| 配置项目挂钩 | | | | ✓ | ✓ |
| 管理跑步者 | | | | ✓ | ✓ |
| 管理工作触发器 | | | | ✓ | ✓ |
| 管理 CI / CD 变量 | | | | ✓ | ✓ |
| 管理 GitLab 页面 | | | | ✓ | ✓ |
| 管理 GitLab Pages 域和证书 | | | | ✓ | ✓ |
| 删除 GitLab 页面 | | | | ✓ | ✓ |
| 管理集群 | | | | ✓ | ✓ |
| 管理项目运作 | | | | ✓ | ✓ |
| 查看 Pod 日志 | | | | ✓ | ✓ |
| 管理许可政策 | | | | ✓ | ✓ |
| 编辑评论(由任何用户发布) | | | | ✓ | ✓ |
| 管理错误跟踪 | | | | ✓ | ✓ |
| 删除维基页面 | | | | ✓ | ✓ |
| 查看项目审核事件 | | | | ✓ | ✓ |
| Manage [push rules](../push_rules/push_rules.html) | | | | ✓ | ✓ |
| Manage [project access tokens](./project/settings/project_access_tokens.html) | | | | ✓ | ✓ |
| Switch visibility level | | | | | ✓ |
| 将项目转移到另一个名称空间 | | | | | ✓ |
| 重命名项目 | | | | | ✓ |
| 删除分叉关系 | | | | | ✓ |
| 移除专案 | | | | | ✓ |
| 存档项目 | | | | | ✓ |
| 删除问题 | | | | | ✓ |
| 删除管道 | | | | | ✓ |
| 删除合并请求 | | | | | ✓ |
| 禁用通知电子邮件 | | | | | ✓ |
| 用力推动到受保护的分支( *4* ) | | | | | |
| 卸下受保护的分支( *4* ) | | | | | |
| 查看 CI \ CD 分析 | | ✓ | ✓ | ✓ | ✓ |
| 查看代码审查分析 | | ✓ | ✓ | ✓ | ✓ |
| 查看见解 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看问题分析 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看存储库分析 | | ✓ | ✓ | ✓ | ✓ |
| 查看价值流分析 | ✓ | ✓ | ✓ | ✓ | ✓ |
*所有者权限仅在组或个人名称空间级别(例如,管理员)可用,并由其项目继承.
1. 来宾用户能够对公共和内部项目执行此操作,但不能对私有项目执行此操作.
2. 来宾用户只能查看他们自己创建的机密问题.
3. 如果在**项目设置> CI / CD 中**启用了**公共管道** .
4. 不允许访客,记者,开发人员,维护人员或所有者使用. 请参阅[受保护的分支](./project/protected_branches.html) .
5. 如果[分支受保护](./project/protected_branches.html#using-the-allowed-to-merge-and-allowed-to-push-settings) ,则取决于授予开发人员和维护人员的权限.
6. 来宾用户可以访问 GitLab [**版本**](project/releases/index.html)来下载资产,但不能下载源代码,也不能查看存储库信息(例如标签和提交).
7. 操作仅限于用户拥有(引用)的记录.
8. 启用" [共享组锁定"后](./group/index.html#share-with-group-lock) ,该项目将无法与其他组共享. 它不影响具有组共享的组.
9. 有关合并请求的[合格批准人的](project/merge_requests/merge_request_approvals.html#eligible-approvers)信息,请参阅[合格](project/merge_requests/merge_request_approvals.html#eligible-approvers)合并[人](project/merge_requests/merge_request_approvals.html#eligible-approvers) .
## Project features permissions[](#project-features-permissions "Permalink")
### Wiki and issues[](#wiki-and-issues "Permalink")
可以根据用户在项目设置上选择的可见性级别对用户隐藏 Wiki 和问题等项目功能.
* 禁用:所有人禁用
* 仅团队成员:即使您的项目是公开的或内部的,也只有团队成员才能看到
* 有访问权限的所有人:每个人都可以看到,具体取决于您的项目可见性级别
* 每个人:为所有人启用(仅适用于 GitLab 页面)
### Protected branches[](#protected-branches "Permalink")
可以在每个分支的[受保护](project/protected_branches.html)分支上应用其他限制. 此外,您可以自定义权限,以允许或阻止项目维护者和开发者推送到受保护的分支. 阅读有关" [允许合并"和"允许推送"设置](project/protected_branches.html#using-the-allowed-to-merge-and-allowed-to-push-settings)的文档以了解更多信息.
### Value Stream Analytics permissions[](#value-stream-analytics-permissions "Permalink")
如[相关文档](analytics/value_stream_analytics.html#permissions)所述,在 Value Stream Analytics 仪表板上找到当前权限.
### Issue Board permissions[](#issue-board-permissions "Permalink")
具有较高权限级别的开发人员和用户可以使用发行版的所有功能,即创建/删除列表并拖动发行版. 通读[有关发行板权限](project/issue_board.html#permissions)的[文档](project/issue_board.html#permissions)以了解更多信息.
### File Locking permissions[](#file-locking-permissions-premium "Permalink")
锁定文件或目录的用户是唯一可以编辑并将其更改推回锁定对象所在存储库的用户.
通读[有关文件锁定权限的文档](project/file_lock.html#permissions-on-file-locking)以了解更多信息.
### Confidential Issues permissions[](#confidential-issues-permissions "Permalink")
报告者和更高的权限级别以及创建机密问题的来宾用户都可以访问机密问题. 要了解更多信息,请通读有关[权限和访问机密问题](project/issues/confidential_issues.html#permissions-and-access-to-confidential-issues)的文档.
## Group members permissions[](#group-members-permissions "Permalink")
**注意:**在 GitLab 11.0 中,"主"角色已重命名为"维护者".
任何用户都可以将自己从组中删除,除非他们是该组的最后一个所有者. 下表描述了组中的各种用户权限级别.
| Action | Guest | Reporter | Developer | Maintainer | Owner |
| --- | --- | --- | --- | --- | --- |
| 浏览组 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看见解图表 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看小组史诗 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 创建/编辑小组史诗 | | ✓ | ✓ | ✓ | ✓ |
| 管理群组标签 | | ✓ | ✓ | ✓ | ✓ |
| 查看容器注册表 | | ✓ | ✓ | ✓ | ✓ |
| Pull [packages](packages/index.html) | | ✓ | ✓ | ✓ | ✓ |
| Publish [packages](packages/index.html) | | | ✓ | ✓ | ✓ |
| 查看指标仪表板注释 | | ✓ | ✓ | ✓ | ✓ |
| 分组创建项目 | | | ✓ (3) | ✓ (3) | ✓ (3) |
| 与群组分享(邀请)群组 | | | | | ✓ |
| 创建/编辑/删除组里程碑 | | | ✓ | ✓ | ✓ |
| 创建/编辑/删除迭代 | | | ✓ | ✓ | ✓ |
| 启用/禁用依赖项代理 | | | ✓ | ✓ | ✓ |
| 使用安全仪表板 | | | ✓ | ✓ | ✓ |
| 创建/编辑/删除指标仪表板注释 | | | ✓ | ✓ | ✓ |
| 查看/管理组级别的 Kubernetes 集群 | | | | ✓ | ✓ |
| 创建子组 | | | | ✓ (1) | ✓ |
| 编辑史诗般的评论(由任何用户发布) | | | | ✓ (2) | ✓ (2) |
| 编辑群组设定 | | | | | ✓ |
| 管理组级 CI / CD 变量 | | | | | ✓ |
| 列出组部署令牌 | | | | ✓ | ✓ |
| 创建/删除组部署令牌 | | | | | ✓ |
| 管理小组成员 | | | | | ✓ |
| 删除群组 | | | | | ✓ |
| 删除组史诗 | | | | | ✓ |
| 编辑 SAML SSO 帐单 | ✓ | ✓ | ✓ | ✓ | ✓ (4) |
| 查看组审核事件 | | | | | ✓ |
| 禁用通知电子邮件 | | | | | ✓ |
| 查看贡献分析 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看见解 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看问题分析 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看生产力分析 | | ✓ | ✓ | ✓ | ✓ |
| 查看价值流分析 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看帐单 | | | | | ✓ (4) |
| 查看使用配额 | | | | | ✓ (4) |
1. 可以设置组以[允许所有者或所有者和维护者创建子组](group/subgroups/index.html#creating-a-subgroup)
2. 在 GitLab 12.2 中引入.
3. 可以在以下位置更改默认项目创建角色:
* [实例级别](admin_area/settings/visibility_and_access_controls.html#default-project-creation-protection) .
* [小组级别](group/index.html#default-project-creation-level) .
4. 不适用于子组.
### Subgroup permissions[](#subgroup-permissions "Permalink")
将成员添加到子组时,它们将从父组继承成员资格和权限级别. 如果您是其父级成员之一,则该模型允许访问嵌套组.
To learn more, read through the documentation on [subgroups memberships](group/subgroups/index.html#membership).
## External users[](#external-users-core-only "Permalink")
如果希望用户只能访问某些内部或私有项目,则可以选择创建**外部用户** . 例如,当承包商在给定项目上工作且仅应访问该项目时,此功能可能很有用.
外部用户:
* 无法创建群组,项目或个人摘要.
* 只能访问公共项目和显式授予其访问权限的项目,从而对它们隐藏所有其他内部或私有项目(例如注销).
可以通过将用户添加为项目或组的成员来授予访问权限. 与普通用户一样,他们将在项目或组中获得角色,具有[上面权限表](#project-members-permissions)中提到的所有功能. 例如,如果将外部用户添加为 Guest,而您的项目是私有项目,则他们将无权访问该代码; 如果您希望外部用户具有访问代码的权限,则需要授予其外部访问权限. 您应始终考虑[项目的可见性和权限设置](project/settings/index.html#sharing-and-permissions)以及用户的权限级别.
**注意:**外部用户仍然计入许可证席位.
管理员可以通过以下两种方法之一将用户标记为外部用户:
* Either [through the API](../api/users.html#user-modification).
* 或通过导航到**管理区域>概述>用户**来创建新用户或编辑现有用户. 在那里,您将找到将用户标记为外部的选项.
### Setting new users to external[](#setting-new-users-to-external "Permalink")
默认情况下,新用户未设置为外部用户. 管理员可以在" **帐户和限制"**下的" **管理区域">"设置">"常规"**页面上更改此行为.
如果更改了将新用户创建为外部用户的默认行为,则可以选择通过定义一组内部用户来缩小范围. **内部用户**字段允许指定电子邮件地址正则表达式模式以标识默认内部用户. 默认情况下,其电子邮件地址与正则表达式模式匹配的新用户将设置为内部用户,而不是外部协作者.
正则表达式模式格式为 Ruby,但需要将其转换为 JavaScript,并将设置大小写忽略标志( `/regex pattern/i` ). 这里有些例子:
* 使用`\.internal@domain\.com$`将以`.internal@domain.com`结尾的电子邮件地址标记为内部.
* 使用`^(?:(?!\.ext@domain\.com).)*$\r?` 使用不包含`.ext@domain.com`电子邮件地址标记用户为内部用户.
**警告:**请注意,此正则表达式可能导致[正则表达式拒绝服务(ReDoS)攻击](https://en.wikipedia.org/wiki/ReDoS) .
## Free Guest users[](#free-guest-users-ultimate "Permalink")
如果为用户授予了项目,组或组或两者的来宾权限,并且对 GitLab 实例上的任何其他项目或组均没有更高的权限级别,则该用户被 GitLab 视为来宾用户,并且不会占用许可证席位. 对于新创建的用户,没有其他特定的"来宾"指定.
如果在任何项目或组上为用户分配了更高的角色,则该用户将获得许可席位. 如果用户创建项目,则该用户将成为该项目的维护者,从而导致使用许可证席位. 另外,请注意,如果您的项目是内部项目或私有项目,则来宾用户将具有[上面](#project-members-permissions)的[权限表](#project-members-permissions)中提到的所有功能(例如,他们将无法浏览项目的存储库).
**提示:**为防止访客用户创建项目,请以管理员身份编辑用户的个人资料,以将该用户标记为[external](#external-users-core-only) . 请注意,即使用户是外部用户,如果他们在任何项目或组中已经具有 Reporter 或更高权限, **也不**会将其计为免费的来宾用户.
## Auditor users[](#auditor-users-premium-only "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/998) in [GitLab Premium](https://about.gitlab.com/pricing/) 8.17.
审核员用户被授予对 GitLab 实例上所有项目,组和其他资源的只读访问权限.
审核员用户应能够使用[审核员用户权限](../administration/auditor_users.html#permissions-and-restrictions-of-an-auditor-user)文档中所述的权限访问 GitLab 实例的所有项目和组.
[Read more about Auditor users.](../administration/auditor_users.html)
## Project features[](#project-features "Permalink")
可以根据用户在项目设置上选择的可见性级别对用户隐藏 Wiki 和问题等项目功能.
* 禁用:所有人禁用
* 仅团队成员:即使您的项目是公开的或内部的,也只有团队成员才能看到
* 有访问权限的所有人:每个人都可以看到,具体取决于您的项目可见性级别
* 每个人:为所有人启用(仅适用于 GitLab 页面)
## GitLab CI/CD permissions[](#gitlab-cicd-permissions "Permalink")
**注意:**在 GitLab 11.0 中,"主"角色已重命名为"维护者".
GitLab CI / CD 权限取决于用户在 GitLab 中的角色. 共有四个权限级别:
* admin
* maintainer
* developer
* guest/reporter
管理员用户可以在 GitLab 实例和项目范围内对 GitLab CI / CD 执行任何操作. 此外,所有管理员都可以使用`/admin/runners`下的管理界面.
| Action | 来宾,记者 | Developer | Maintainer | Admin |
| --- | --- | --- | --- | --- |
| 查看提交和工作 | ✓ | ✓ | ✓ | ✓ |
| 重试或取消作业 | | ✓ | ✓ | ✓ |
| 擦除工件和跟踪 | | ✓ (*1*) | ✓ | ✓ |
| 移除专案 | | | ✓ | ✓ |
| 建立专案 | | | ✓ | ✓ |
| 更改项目配置 | | | ✓ | ✓ |
| 添加特定跑步者 | | | ✓ | ✓ |
| 添加共享的跑步者 | | | | ✓ |
| 查看系统中的事件 | | | | ✓ |
| 管理界面 | | | | ✓ |
1. 仅当工作是:
* 由用户触发
* [从 GitLab 13.0 开始](https://gitlab.com/gitlab-org/gitlab/-/issues/35069) ,不为受保护的分支运行
### Job permissions[](#job-permissions "Permalink")
**注意:**在 GitLab 11.0 中,"主"角色已重命名为"维护者".
> **注意:** GitLab 8.12 具有完全重新设计的作业权限系统. 阅读有关[新模型及其含义的](project/new_ci_build_permissions_model.html)所有信息.
下表显示了由特定类型的用户触发的作业的授予特权:
| Action | 来宾,记者 | Developer | Maintainer | Admin |
| --- | --- | --- | --- | --- |
| 运行 CI 作业 | | ✓ | ✓ | ✓ |
| 从当前项目克隆源和 LFS | | ✓ | ✓ | ✓ |
| 从公共项目克隆源和 LFS | | ✓ | ✓ | ✓ |
| 从内部项目克隆源和 LFS | | ✓ (*1*) | ✓ (*1*) | ✓ |
| 从私有项目克隆源和 LFS | | ✓ (*2*) | ✓ (*2*) | ✓ (*2*) |
| 从当前项目中提取容器图像 | | ✓ | ✓ | ✓ |
| 从公共项目中提取容器图像 | | ✓ | ✓ | ✓ |
| 从内部项目中提取容器图像 | | ✓ (*1*) | ✓ (*1*) | ✓ |
| 从私有项目中提取容器图像 | | ✓ (*2*) | ✓ (*2*) | ✓ (*2*) |
| 将容器图像推送到当前项目 | | ✓ | ✓ | ✓ |
| 将容器图像推送到其他项目 | | | | |
| 推送源和 LFS | | | | |
1. 仅当用户不是外部用户时
2. 仅当用户是项目成员时
### New CI job permissions model[](#new-ci-job-permissions-model "Permalink")
GitLab 8.12 具有完全重新设计的工作权限系统. 要了解更多信息,请通读有关[新 CI / CD 权限模型](project/new_ci_build_permissions_model.html#new-ci-job-permissions-model)的文档.
## Running pipelines on protected branches[](#running-pipelines-on-protected-branches "Permalink")
合并或推送到受保护分支的权限用于定义用户是否可以运行 CI / CD 管道并在与那些分支相关的作业上执行操作.
有关管道安全模型的详细信息,请参阅[受保护分支上](../ci/pipelines/index.html#pipeline-security-on-protected-branches)的安全性.
## LDAP users permissions[](#ldap-users-permissions "Permalink")
从 GitLab 8.15 开始,LDAP 用户权限现在可以由管理员用户手动覆盖. 通读有关[LDAP 用户权限](group/index.html#manage-group-memberships-via-ldap)的文档以了解更多信息.
## Project aliases[](#project-aliases "Permalink")
项目别名只能由 GitLab 管理员读取,创建和删除. 通读有关[项目别名](../user/project/index.html#project-aliases-premium-only)的文档以了解更多信息.
- GitLab Docs
- Installation
- Requirements
- GitLab cloud native Helm Chart
- Install GitLab with Docker
- Installation from source
- Install GitLab on Microsoft Azure
- Installing GitLab on Google Cloud Platform
- Installing GitLab on Amazon Web Services (AWS)
- Analytics
- Code Review Analytics
- Productivity Analytics
- Value Stream Analytics
- Kubernetes clusters
- Adding and removing Kubernetes clusters
- Adding EKS clusters
- Adding GKE clusters
- Group-level Kubernetes clusters
- Instance-level Kubernetes clusters
- Canary Deployments
- Cluster Environments
- Deploy Boards
- GitLab Managed Apps
- Crossplane configuration
- Cluster management project (alpha)
- Kubernetes Logs
- Runbooks
- Serverless
- Deploying AWS Lambda function using GitLab CI/CD
- Securing your deployed applications
- Groups
- Contribution Analytics
- Custom group-level project templates
- Epics
- Manage epics
- Group Import/Export
- Insights
- Issues Analytics
- Iterations
- Public access
- SAML SSO for GitLab.com groups
- SCIM provisioning using SAML SSO for GitLab.com groups
- Subgroups
- Roadmap
- Projects
- GitLab Secure
- Security Configuration
- Container Scanning
- Dependency Scanning
- Dependency List
- Static Application Security Testing (SAST)
- Secret Detection
- Dynamic Application Security Testing (DAST)
- GitLab Security Dashboard
- Offline environments
- Standalone Vulnerability pages
- Security scanner integration
- Badges
- Bulk editing issues and merge requests at the project level
- Code Owners
- Compliance
- License Compliance
- Compliance Dashboard
- Create a project
- Description templates
- Deploy Keys
- Deploy Tokens
- File finder
- Project integrations
- Integrations
- Atlassian Bamboo CI Service
- Bugzilla Service
- Custom Issue Tracker service
- Discord Notifications service
- Enabling emails on push
- GitHub project integration
- Hangouts Chat service
- Atlassian HipChat
- Irker IRC Gateway
- GitLab Jira integration
- Mattermost Notifications Service
- Mattermost slash commands
- Microsoft Teams service
- Mock CI Service
- Prometheus integration
- Redmine Service
- Slack Notifications Service
- Slack slash commands
- GitLab Slack application
- Webhooks
- YouTrack Service
- Insights
- Issues
- Crosslinking Issues
- Design Management
- Confidential issues
- Due dates
- Issue Boards
- Issue Data and Actions
- Labels
- Managing issues
- Milestones
- Multiple Assignees for Issues
- Related issues
- Service Desk
- Sorting and ordering issue lists
- Issue weight
- Associate a Zoom meeting with an issue
- Merge requests
- Allow collaboration on merge requests across forks
- Merge Request Approvals
- Browser Performance Testing
- How to create a merge request
- Cherry-pick changes
- Code Quality
- Load Performance Testing
- Merge Request dependencies
- Fast-forward merge requests
- Merge when pipeline succeeds
- Merge request conflict resolution
- Reverting changes
- Reviewing and managing merge requests
- Squash and merge
- Merge requests versions
- Draft merge requests
- Members of a project
- Migrating projects to a GitLab instance
- Import your project from Bitbucket Cloud to GitLab
- Import your project from Bitbucket Server to GitLab
- Migrating from ClearCase
- Migrating from CVS
- Import your project from FogBugz to GitLab
- Gemnasium
- Import your project from GitHub to GitLab
- Project importing from GitLab.com to your private GitLab instance
- Import your project from Gitea to GitLab
- Import your Jira project issues to GitLab
- Migrating from Perforce Helix
- Import Phabricator tasks into a GitLab project
- Import multiple repositories by uploading a manifest file
- Import project from repo by URL
- Migrating from SVN to GitLab
- Migrating from TFVC to Git
- Push Options
- Releases
- Repository
- Branches
- Git Attributes
- File Locking
- Git file blame
- Git file history
- Repository mirroring
- Protected branches
- Protected tags
- Push Rules
- Reduce repository size
- Signing commits with GPG
- Syntax Highlighting
- GitLab Web Editor
- Web IDE
- Requirements Management
- Project settings
- Project import/export
- Project access tokens (Alpha)
- Share Projects with other Groups
- Snippets
- Static Site Editor
- Wiki
- Project operations
- Monitor metrics for your CI/CD environment
- Set up alerts for Prometheus metrics
- Embedding metric charts within GitLab-flavored Markdown
- Embedding Grafana charts
- Using the Metrics Dashboard
- Dashboard YAML properties
- Metrics dashboard settings
- Panel types for dashboards
- Using Variables
- Templating variables for metrics dashboards
- Prometheus Metrics library
- Monitoring AWS Resources
- Monitoring HAProxy
- Monitoring Kubernetes
- Monitoring NGINX
- Monitoring NGINX Ingress Controller
- Monitoring NGINX Ingress Controller with VTS metrics
- Alert Management
- Error Tracking
- Tracing
- Incident Management
- GitLab Status Page
- Feature Flags
- GitLab CI/CD
- GitLab CI/CD pipeline configuration reference
- GitLab CI/CD include examples
- Introduction to CI/CD with GitLab
- Getting started with GitLab CI/CD
- How to enable or disable GitLab CI/CD
- Using SSH keys with GitLab CI/CD
- Migrating from CircleCI
- Migrating from Jenkins
- Auto DevOps
- Getting started with Auto DevOps
- Requirements for Auto DevOps
- Customizing Auto DevOps
- Stages of Auto DevOps
- Upgrading PostgreSQL for Auto DevOps
- Cache dependencies in GitLab CI/CD
- GitLab ChatOps
- Cloud deployment
- Docker integration
- Building Docker images with GitLab CI/CD
- Using Docker images
- Building images with kaniko and GitLab CI/CD
- GitLab CI/CD environment variables
- Predefined environment variables reference
- Where variables can be used
- Deprecated GitLab CI/CD variables
- Environments and deployments
- Protected Environments
- GitLab CI/CD Examples
- Test a Clojure application with GitLab CI/CD
- Using Dpl as deployment tool
- Testing a Phoenix application with GitLab CI/CD
- End-to-end testing with GitLab CI/CD and WebdriverIO
- DevOps and Game Dev with GitLab CI/CD
- Deploy a Spring Boot application to Cloud Foundry with GitLab CI/CD
- How to deploy Maven projects to Artifactory with GitLab CI/CD
- Testing PHP projects
- Running Composer and NPM scripts with deployment via SCP in GitLab CI/CD
- Test and deploy Laravel applications with GitLab CI/CD and Envoy
- Test and deploy a Python application with GitLab CI/CD
- Test and deploy a Ruby application with GitLab CI/CD
- Test and deploy a Scala application to Heroku
- GitLab CI/CD for external repositories
- Using GitLab CI/CD with a Bitbucket Cloud repository
- Using GitLab CI/CD with a GitHub repository
- GitLab Pages
- GitLab Pages
- GitLab Pages domain names, URLs, and baseurls
- Create a GitLab Pages website from scratch
- Custom domains and SSL/TLS Certificates
- GitLab Pages integration with Let's Encrypt
- GitLab Pages Access Control
- Exploring GitLab Pages
- Incremental Rollouts with GitLab CI/CD
- Interactive Web Terminals
- Optimizing GitLab for large repositories
- Metrics Reports
- CI/CD pipelines
- Pipeline Architecture
- Directed Acyclic Graph
- Multi-project pipelines
- Parent-child pipelines
- Pipelines for Merge Requests
- Pipelines for Merged Results
- Merge Trains
- Job artifacts
- Pipeline schedules
- Pipeline settings
- Triggering pipelines through the API
- Review Apps
- Configuring GitLab Runners
- GitLab CI services examples
- Using MySQL
- Using PostgreSQL
- Using Redis
- Troubleshooting CI/CD
- GitLab Package Registry
- GitLab Container Registry
- Dependency Proxy
- GitLab Composer Repository
- GitLab Conan Repository
- GitLab Maven Repository
- GitLab NPM Registry
- GitLab NuGet Repository
- GitLab PyPi Repository
- API Docs
- API resources
- .gitignore API
- GitLab CI YMLs API
- Group and project access requests API
- Appearance API
- Applications API
- Audit Events API
- Avatar API
- Award Emoji API
- Project badges API
- Group badges API
- Branches API
- Broadcast Messages API
- Project clusters API
- Group clusters API
- Instance clusters API
- Commits API
- Container Registry API
- Custom Attributes API
- Dashboard annotations API
- Dependencies API
- Deploy Keys API
- Deployments API
- Discussions API
- Dockerfiles API
- Environments API
- Epics API
- Events
- Feature Flags API
- Feature flag user lists API
- Freeze Periods API
- Geo Nodes API
- Group Activity Analytics API
- Groups API
- Import API
- Issue Boards API
- Group Issue Boards API
- Issues API
- Epic Issues API
- Issues Statistics API
- Jobs API
- Keys API
- Labels API
- Group Labels API
- License
- Licenses API
- Issue links API
- Epic Links API
- Managed Licenses API
- Markdown API
- Group and project members API
- Merge request approvals API
- Merge requests API
- Project milestones API
- Group milestones API
- Namespaces API
- Notes API
- Notification settings API
- Packages API
- Pages domains API
- Pipeline schedules API
- Pipeline triggers API
- Pipelines API
- Project Aliases API
- Project import/export API
- Project repository storage moves API
- Project statistics API
- Project templates API
- Projects API
- Protected branches API
- Protected tags API
- Releases API
- Release links API
- Repositories API
- Repository files API
- Repository submodules API
- Resource label events API
- Resource milestone events API
- Resource weight events API
- Runners API
- SCIM API
- Search API
- Services API
- Application settings API
- Sidekiq Metrics API
- Snippets API
- Project snippets
- Application statistics API
- Suggest Changes API
- System hooks API
- Tags API
- Todos API
- Users API
- Project-level Variables API
- Group-level Variables API
- Version API
- Vulnerabilities API
- Vulnerability Findings API
- Wikis API
- GraphQL API
- Getting started with GitLab GraphQL API
- GraphQL API Resources
- API V3 to API V4
- Validate the .gitlab-ci.yml (API)
- User Docs
- Abuse reports
- User account
- Active sessions
- Deleting a User account
- Permissions
- Personal access tokens
- Profile preferences
- Threads
- GitLab and SSH keys
- GitLab integrations
- Git
- GitLab.com settings
- Infrastructure as code with Terraform and GitLab
- GitLab keyboard shortcuts
- GitLab Markdown
- AsciiDoc
- GitLab Notification Emails
- GitLab Quick Actions
- Autocomplete characters
- Reserved project and group names
- Search through GitLab
- Advanced Global Search
- Advanced Syntax Search
- Time Tracking
- GitLab To-Do List
- Administrator Docs
- Reference architectures
- Reference architecture: up to 1,000 users
- Reference architecture: up to 2,000 users
- Reference architecture: up to 3,000 users
- Reference architecture: up to 5,000 users
- Reference architecture: up to 10,000 users
- Reference architecture: up to 25,000 users
- Reference architecture: up to 50,000 users
- Troubleshooting a reference architecture set up
- Working with the bundled Consul service
- Configuring PostgreSQL for scaling
- Configuring GitLab application (Rails)
- Load Balancer for multi-node GitLab
- Configuring a Monitoring node for Scaling and High Availability
- NFS
- Working with the bundled PgBouncer service
- Configuring Redis for scaling
- Configuring Sidekiq
- Admin Area settings
- Continuous Integration and Deployment Admin settings
- Custom instance-level project templates
- Diff limits administration
- Enable and disable GitLab features deployed behind feature flags
- Geo nodes Admin Area
- GitLab Pages administration
- Health Check
- Job logs
- Labels administration
- Log system
- PlantUML & GitLab
- Repository checks
- Repository storage paths
- Repository storage types
- Account and limit settings
- Service templates
- System hooks
- Changing your time zone
- Uploads administration
- Abuse reports
- Activating and deactivating users
- Audit Events
- Blocking and unblocking users
- Broadcast Messages
- Elasticsearch integration
- Gitaly
- Gitaly Cluster
- Gitaly reference
- Monitoring GitLab
- Monitoring GitLab with Prometheus
- Performance Bar
- Usage statistics
- Object Storage
- Performing Operations in GitLab
- Cleaning up stale Redis sessions
- Fast lookup of authorized SSH keys in the database
- Filesystem Performance Benchmarking
- Moving repositories managed by GitLab
- Run multiple Sidekiq processes
- Sidekiq MemoryKiller
- Switching to Puma
- Understanding Unicorn and unicorn-worker-killer
- User lookup via OpenSSH's AuthorizedPrincipalsCommand
- GitLab Package Registry administration
- GitLab Container Registry administration
- Replication (Geo)
- Geo database replication
- Geo with external PostgreSQL instances
- Geo configuration
- Using a Geo Server
- Updating the Geo nodes
- Geo with Object storage
- Docker Registry for a secondary node
- Geo for multiple nodes
- Geo security review (Q&A)
- Location-aware Git remote URL with AWS Route53
- Tuning Geo
- Removing secondary Geo nodes
- Geo data types support
- Geo Frequently Asked Questions
- Geo Troubleshooting
- Geo validation tests
- Disaster Recovery (Geo)
- Disaster recovery for planned failover
- Bring a demoted primary node back online
- Automatic background verification
- Rake tasks
- Back up and restore GitLab
- Clean up
- Namespaces
- Maintenance Rake tasks
- Geo Rake Tasks
- GitHub import
- Import bare repositories
- Integrity check Rake task
- LDAP Rake tasks
- Listing repository directories
- Praefect Rake tasks
- Project import/export administration
- Repository storage Rake tasks
- Generate sample Prometheus data
- Uploads migrate Rake tasks
- Uploads sanitize Rake tasks
- User management
- Webhooks administration
- X.509 signatures
- Server hooks
- Static objects external storage
- Updating GitLab
- GitLab release and maintenance policy
- Security
- Password Storage
- Custom password length limits
- Restrict allowed SSH key technologies and minimum length
- Rate limits
- Webhooks and insecure internal web services
- Information exclusivity
- How to reset your root password
- How to unlock a locked user from the command line
- User File Uploads
- How we manage the TLS protocol CRIME vulnerability
- User email confirmation at sign-up
- Security of running jobs
- Proxying assets
- CI/CD Environment Variables
- Contributor and Development Docs
- Contribute to GitLab
- Community members & roles
- Implement design & UI elements
- Issues workflow
- Merge requests workflow
- Code Review Guidelines
- Style guides
- GitLab Architecture Overview
- CI/CD development documentation
- Database guides
- Database Review Guidelines
- Database Review Guidelines
- Migration Style Guide
- What requires downtime?
- Understanding EXPLAIN plans
- Rake tasks for developers
- Mass inserting Rails models
- GitLab Documentation guidelines
- Documentation Style Guide
- Documentation structure and template
- Documentation process
- Documentation site architecture
- Global navigation
- GitLab Docs monthly release process
- Telemetry Guide
- Usage Ping Guide
- Snowplow Guide
- Experiment Guide
- Feature flags in development of GitLab
- Feature flags process
- Developing with feature flags
- Feature flag controls
- Document features deployed behind feature flags
- Frontend Development Guidelines
- Accessibility & Readability
- Ajax
- Architecture
- Axios
- Design Patterns
- Frontend Development Process
- DropLab
- Emojis
- Filter
- Frontend FAQ
- GraphQL
- Icons and SVG Illustrations
- InputSetter
- Performance
- Principles
- Security
- Tooling
- Vuex
- Vue
- Geo (development)
- Geo self-service framework (alpha)
- Gitaly developers guide
- GitLab development style guides
- API style guide
- Go standards and style guidelines
- GraphQL API style guide
- Guidelines for shell commands in the GitLab codebase
- HTML style guide
- JavaScript style guide
- Migration Style Guide
- Newlines style guide
- Python Development Guidelines
- SCSS style guide
- Shell scripting standards and style guidelines
- Sidekiq debugging
- Sidekiq Style Guide
- SQL Query Guidelines
- Vue.js style guide
- Instrumenting Ruby code
- Testing standards and style guidelines
- Flaky tests
- Frontend testing standards and style guidelines
- GitLab tests in the Continuous Integration (CI) context
- Review Apps
- Smoke Tests
- Testing best practices
- Testing levels
- Testing Rails migrations at GitLab
- Testing Rake tasks
- End-to-end Testing
- Beginner's guide to writing end-to-end tests
- End-to-end testing Best Practices
- Dynamic Element Validation
- Flows in GitLab QA
- Page objects in GitLab QA
- Resource class in GitLab QA
- Style guide for writing end-to-end tests
- Testing with feature flags
- Translate GitLab to your language
- Internationalization for GitLab
- Translating GitLab
- Proofread Translations
- Merging translations from CrowdIn
- Value Stream Analytics development guide
- GitLab subscription
- Activate GitLab EE with a license