权限
用户具有不同的能力,这取决于他们在特定组或项目中的访问级别。如果用户同时在组的项目和项目本身中,则使用最高权限级别。
在公共和内部项目中,客户角色并不强制执行。所有用户都可以创建问题,留下评论,克隆或下载项目代码。
当一个成员离开团队时,所有分配的问题而且合并请求将自动取消分配。
GitLab管理员接收所有权限。
要添加或导入用户,可以执行项目成员文档.
权限背后的原则
看到我们的产品权限手册
项目成员权限
下表描述了一个业务群组中不同的用户权限级别。
行动 | 客人 | 记者 | 开发人员 | 主 | 老板 |
---|---|---|---|---|---|
创建新问题 | ✓1 | ✓ | ✓ | ✓ | ✓ |
创建机密问题 | ✓1 | ✓ | ✓ | ✓ | ✓ |
查看机密问题 | (✓)2 | ✓ | ✓ | ✓ | ✓ |
留言 | ✓1 | ✓ | ✓ | ✓ | ✓ |
锁问题讨论 | ✓ | ✓ | ✓ | ✓ | |
锁合并请求讨论 | ✓ | ✓ | ✓ | ||
查看工作列表 | ✓3. | ✓ | ✓ | ✓ | ✓ |
查看作业日志 | ✓3. | ✓ | ✓ | ✓ | ✓ |
下载和浏览作业工件 | ✓3. | ✓ | ✓ | ✓ | ✓ |
查看wiki页面 | ✓1 | ✓ | ✓ | ✓ | ✓ |
拉项目代码 | 1 | ✓ | ✓ | ✓ | ✓ |
下载项目 | 1 | ✓ | ✓ | ✓ | ✓ |
分配问题并合并请求 | ✓ | ✓ | ✓ | ✓ | |
标签问题和合并请求 | ✓ | ✓ | ✓ | ✓ | |
创建代码片段 | ✓ | ✓ | ✓ | ✓ | |
管理问题跟踪器 | ✓ | ✓ | ✓ | ✓ | |
管理标签 | ✓ | ✓ | ✓ | ✓ | |
查看提交状态 | ✓ | ✓ | ✓ | ✓ | |
查看容器注册表 | ✓ | ✓ | ✓ | ✓ | |
看环境 | ✓ | ✓ | ✓ | ✓ | |
请参阅合并请求列表 | ✓ | ✓ | ✓ | ✓ | |
创造新环境 | ✓ | ✓ | ✓ | ||
阻止环境 | ✓ | ✓ | ✓ | ||
管理/接受合并请求 | ✓ | ✓ | ✓ | ||
创建新的合并请求 | ✓ | ✓ | ✓ | ||
创建新分支 | ✓ | ✓ | ✓ | ||
推送到不受保护的分支 | ✓ | ✓ | ✓ | ||
强制推送到不受保护的分支 | ✓ | ✓ | ✓ | ||
移除不受保护的分支 | ✓ | ✓ | ✓ | ||
添加标签 | ✓ | ✓ | ✓ | ||
写一个维基 | ✓ | ✓ | ✓ | ||
取消和重试作业 | ✓ | ✓ | ✓ | ||
创建或更新提交状态 | ✓ | ✓ | ✓ | ||
更新容器注册表 | ✓ | ✓ | ✓ | ||
删除容器注册表映像 | ✓ | ✓ | ✓ | ||
创建/编辑/删除项目里程碑 | ✓ | ✓ | ✓ | ||
使用环境终端 | ✓ | ✓ | |||
添加新的团队成员 | ✓ | ✓ | |||
推送到受保护的分支 | ✓ | ✓ | |||
启用/禁用分支保护 | ✓ | ✓ | |||
为开发者打开/关闭受保护的分支推送 | ✓ | ✓ | |||
启用/禁用标签保护 | ✓ | ✓ | |||
重写/删除Git标记 | ✓ | ✓ | |||
编辑项目 | ✓ | ✓ | |||
向项目添加部署键 | ✓ | ✓ | |||
配置项目挂钩 | ✓ | ✓ | |||
管理的跑步者 | ✓ | ✓ | |||
管理作业触发器 | ✓ | ✓ | |||
管理变量 | ✓ | ✓ | |||
管理页面 | ✓ | ✓ | |||
管理页面、域和证书 | ✓ | ✓ | |||
管理集群 | ✓ | ✓ | |||
编辑评论(由任何用户发布) | ✓ | ✓ | |||
开关可见度 | ✓ | ||||
将项目转移到另一个名称空间 | ✓ | ||||
删除项目 | ✓ | ||||
删除问题 | ✓ | ||||
删除页面 | ✓ | ||||
强制推送到受保护的分支4 | |||||
移除受保护的分支4 |
项目特性权限
维基和问题
项目功能(如wiki和问题)可以对用户隐藏,这取决于您在项目设置中选择的可见级别。
- Disabled:对所有人禁用
- 只有团队成员:即使项目是公开的还是内部的,也只有团队成员可以看到
- 每个人都可以访问:每个人都可以看到,这取决于您的项目可见性级别
受保护的分支
为了防止人们破坏历史记录或未经审查就发布代码,我们创建了受保护的分支。阅读有关的文档受保护的分支了解更多。
此外,您可以允许或禁止具有Master和/或Developer权限的用户推送到受保护的分支。阅读有关的文档允许合并和允许推送设置了解更多。
Cycle Analytics权限
上的Cycle Analytics仪表板上查找当前权限关于Cycle Analytics权限的文档.
发布Board权限
开发人员和具有更高权限级别的用户可以使用问题板的所有功能,即创建/删除列表和拖动问题。阅读关于发行板权限的文档了解更多。
文件锁定权限
可以在GitLab溢价.
锁定文件或目录的用户是唯一可以编辑并将其更改推回锁定对象所在的存储库的用户。
阅读有关的文档文件锁定权限了解更多。
文件锁定在GitLab溢价只有。
机密问题权限
记者和更高级别的权限可以访问机密问题,创建机密问题的来宾用户也可以访问。要了解更多信息,请阅读关于权限和访问机密问题.
组成员权限
任何用户都可以从组中删除自己,除非他们是组的最后一个所有者。组中的用户权限级别如下表所示。
行动 | 客人 | 记者 | 开发人员 | 主 | 老板 |
---|---|---|---|---|---|
浏览集团 | ✓ | ✓ | ✓ | ✓ | ✓ |
编辑小组 | ✓ | ||||
创建子群 | ✓ | ||||
在小组中创建项目 | ✓ | ✓ | |||
管理群组成员 | ✓ | ||||
删除组 | ✓ | ||||
管理组标签 | ✓ | ✓ | ✓ | ✓ | |
创建/编辑/删除组里程碑 | ✓ | ✓ | ✓ |
子群的权限
将成员添加到子组时,这些成员将继承父组的成员资格和权限级别。这个模型允许访问嵌套的组,如果您在其中一个父组中拥有成员资格。
要了解更多信息,请阅读关于子组的成员.
外部用户权限
在希望用户只能访问某些内部或私有项目的情况下,可以选择创建外部用户.例如,当承包商正在处理一个给定的项目,并且应该只能访问该项目时,此特性可能很有用。
外部用户只能访问显式授予他们访问权限的项目,从而对他们隐藏了所有其他内部或私有项目。可以通过将用户添加为项目或组的成员来授予访问权限。
他们将像普通用户一样,在项目或组中获得一个具有上表中提到的所有能力的角色。但是,他们不能创建组或项目,在所有其他情况下,他们与注销用户具有相同的访问权限。
管理员可以将用户标记为外部用户透过API或者通过勾选管理面板上的复选框。作为管理员,导航到Admin >用户创建新用户或编辑现有用户。在那里,您将发现将用户标记为外部的选项。
默认情况下,新用户不设置为外部用户。下的管理员可以更改此行为Admin >应用设置.
GitLab CI/CD权限
GitLab CI/CD权限取决于用户在GitLab中的角色。一共有四种权限级别:
- 管理
- 主
- 开发人员
- 客人/记者
admin用户可以在GitLab实例和项目范围内对GitLab CI/CD执行任何操作。此外,所有管理员都可以使用下的管理界面/管理/跑步者
.
行动 | 客人,记者 | 开发人员 | 主 | 管理 |
---|---|---|---|---|
参见提交和作业 | ✓ | ✓ | ✓ | ✓ |
重试或取消作业 | ✓ | ✓ | ✓ | |
删除作业工件并跟踪 | ✓5 | ✓ | ✓ | |
删除项目 | ✓ | ✓ | ||
创建项目 | ✓ | ✓ | ||
更改项目配置 | ✓ | ✓ | ||
添加特定的运行器 | ✓ | ✓ | ||
添加共享运行程序 | ✓ | |||
查看系统事件 | ✓ | |||
管理界面 | ✓ |
工作权限
注意:GitLab 8.12有一个完全重新设计的作业权限系统。阅读所有关于新模型及其意义.
下表显示了由特定类型的用户触发的作业所授予的权限:
行动 | 客人,记者 | 开发人员 | 主 | 管理 |
---|---|---|---|---|
运行CI作业 | ✓ | ✓ | ✓ | |
克隆源和当前项目的LFS | ✓ | ✓ | ✓ | |
从公共项目克隆源代码和LFS | ✓ | ✓ | ✓ | |
从内部项目克隆源代码和LFS | ✓6 | ✓6 | ✓ | |
从私人项目克隆源代码和LFS | ✓7 | ✓7 | ✓7 | |
推送源和LFS | ||||
从当前项目中提取容器图像 | ✓ | ✓ | ✓ | |
从公共项目中提取容器映像 | ✓ | ✓ | ✓ | |
从内部项目中提取容器映像 | ✓6 | ✓6 | ✓ | |
从私有项目中提取容器映像 | ✓7 | ✓7 | ✓7 | |
将容器图像推送到当前项目 | ✓ | ✓ | ✓ | |
将容器图像推送到其他项目 |
新的CI作业权限模型
GitLab 8.12有一个完全重新设计的作业权限系统。要了解更多信息,请阅读有关新的CI/CD权限模型.
在受保护的分支上运行管道
合并或推送到受保护分支的权限用于定义用户是否可以运行CI/CD管道并对与这些分支相关的作业执行操作。
看到受保护分支的安全性有关管道安全模型的详细信息。
LDAP用户权限
从GitLab 8.15开始,LDAP用户权限现在可以由管理员用户手动覆盖。阅读有关的文档LDAP用户权限了解更多。
审计员权限
可以在GitLab溢价.
审计员用户应该能够使用文档中描述的权限访问GitLab实例的所有项目和组审计员权限.
审计员用户可在GitLab溢价只有。