权限和角色

将用户添加到项目或群组时,您可以为他们分配角色。 该角色决定他们在极狐GitLab 中可以执行的操作。

如果您将用户添加到项目的群组和项目本身中,取用户的最高角色。

极狐GitLab 管理员 拥有所有权限。

角色

您可以为用户指派默认角色或自定义角色

可用的角色包括:

  • 访客(此角色仅适用于私有和内部项目
  • 报告者
  • 开发者
  • 维护者
  • 所有者
  • 最小权限(仅适用于顶级群组)
  • 最小访问权限(仅适用于顶级群组)

分配了访客角色的用户拥有最少的权限,而所有者拥有最多的权限。

默认情况下,所有用户都可以创建顶级群组并更改其用户名。极狐GitLab 管理员可以为极狐GitLab 实例更改此设置

项目成员权限

用户的角色决定了他们对项目拥有的权限。所有者角色拥有所有权限,但仅适用于:

  • 群组和项目所有者。在 14.8 及更早版本中,该角色是在群组的项目中是继承的。
  • 管理员。

对于个人命名空间所有者:

  • 在命名空间中的项目上显示为具有维护者角色,但具有与所有者角色相同的权限。
  • 对于命名空间中的新项目,显示为具有所有者角色。

有关如何管理项目成员的更多信息,请参阅项目成员

下表列出了每个角色可用的项目权限:

分析

对于分析特性的项目权限,包括价值流、用法趋势、产品分析和洞察。

操作 Guest Reporter Developer Maintainer Owner 注释
查看议题分析  
查看价值流分析  
查看 CI/CD 分析    
查看 代码审核分析    
查看 DORA 指标    
查看 合并请求分析    
查看 仓库分析    
查看 价值流仪表盘    

应用程序安全

针对应用程序功能的项目权限包括依赖项管理、安全分析器、安全策略和漏洞管理。

操作 Guest Reporter Developer Maintainer Owner 注释
查看依赖项列表      
依赖项列表中查看许可证      
查看安全仪表盘      
查看漏洞报告      
手动创建漏洞      
从漏洞发现创建议题      
创建按需 DAST 扫描      
运行按需 DAST 扫描      
创建单个安全策略      
修改单个安全策略      
删除单个安全策略      
创建CVE ID 请求        
修改漏洞状态       在极狐GitLab 17.0 中,为开发者角色移除admin_vulnerability 权限。
创建或指派安全策略项目          
管理安全配置          

CI/CD

可以通过这些设置来修改有些角色的极狐GitLab CI/CD权限:

  • 公开流水线:当设置为公开时,向 访客 项目成员提供对某些 CI/CD 功能的访问权限。
  • 流水线可见性:当设置为具有访问权限的任何人时,授予 非项目 成员某些 CI/CD “查看”功能的访问权限。

项目所有者可以执行任意的列举操作并可删除流水线:

操作 Non-member Guest Reporter Developer Maintainer Notes
查看既有产物 Non-members 和 guests: 仅限公开项目。
查看作业列表 Non-members:仅当作业是公开的,而且在 项目设置 > CI/CD 中启用了 公开流水线 时。
Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时。
查看产物 Non-members:仅当项目是公开的,且在 项目设置 > CI/CD 中启用了 公开流水线时,而且没有在作业中设置 artifacts:public: false时。
Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时,而且没有在作业中设置 artifacts:public: false时。
Reporters:仅当在作业中未设置 Only if artifacts:public: false 时。
下载产物 Non-members:仅当项目是公开的,且在 项目设置 > CI/CD 中启用了 公开流水线时,而且没有在作业中设置 artifacts:public: false时。
Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时,而且没有在作业中设置 artifacts:public: false时。
查看环境 Non-members and guests:仅当项目是公开的。
查看作业日志和作业详情页面 Non-members:仅当项目是公开的,且在 项目设置 > CI/CD 中启用了 公开流水线时。
Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时。
Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时。
查看流水线和流水线详情页面 Non-members:仅当项目是公开的,且在 项目设置 > CI/CD 中启用了 公开流水线时。
Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时。
在 MR 中查看流水线选项卡 Non-members and guests:仅当项目是公开的。
查看流水线中的漏洞   Guests:仅当在 项目设置 > CI/CD 中启用了 公开流水线时。
为受保护环境运行部署作业     Reporters:仅当用户是能够访问受保护环境的群组的一部分时。
Developers and maintainers:仅当用户被允许部署到受保护环境时。
查看Kubernetes agent        
查看项目的安全文件        
下载项目的安全文件        
查看作业调试日志        
创建环境        
删除环境        
停止环境        
运行 CI/CD 流水线        
为受保护分支运行 CI/CD 流水线       Developers and maintainers:仅当用户被允许合并或推送到受保护分支时。
运行 CI/CD 作业        
删除作业日志或产物       Developers:仅当作业被用户触发并为非受保护分支运行时。
启用 review apps        
取消作业       可以在 流水线设置中限制 取消权限。
重试作业        
阅读 Terraform 状态        
运行 可交互式 web 终端        
使用流水线编辑器        
管理 Kubernetes 代理          
管理 CI/CD 设置          
管理作业触发器          
管理项目 CI/CD 变量          
管理项目安全文件          
管理 Terraform 状态          
为项目添加项目 runne          
手动清除 runner 缓存          
在项目中启用实例 runner          

下面的表格显示特定角色触发作业时授予的权限。

项目所有者可以执行任何列举的操作,但没有用户可以同时推送源代码和 LFS。访客用户和具有报告者角色的成员无法执行这些操作。

操作 Developer Maintainer 注释
从当前项目克隆源代码和 LFS  
从公开项目克隆源代码和 LFS  
从内部项目克隆源代码和 LFS Developers and Maintainers:仅当触发用户不是外部用户时。
从私有项目克隆源代码和 LFS 仅当触发用户是项目成员时。还可查阅使用 if-not-present 拉取策略来从私有项目拉取镜像
从当前项目拉取容器镜像  
从公开项目拉取容器镜像  
从内部项目拉取容器镜像 Developers and Maintainers:仅当触发用户是非外部用户时。
从私有项目拉取容器镜像 仅当触发用户是项目成员时。还可查阅使用 if-not-present 拉取策略来从私有项目拉取镜像
推送容器镜像到当前项目 您无法推送容器镜像到其他项目。

合规

合规功能的项目权限包括合规中心、审计事件、合规框架和许可证。

操作 Guest Reporter Developer Maintainer Owner Notes
查看 MR 中允许和拒绝的许可证 在私有化部署实例上,具有访客角色的用户仅能在公共和内部项目上执行此操作(不能在内部项目上)。外部用户必须至少具有报告者角色,即使项目是内部的。在 JihuLab.com 上,具有访客角色的用户仅能在公共项目上执行此操作,因为内部可见性不可用。
查看审计事件     用户仅能基于自身操作的相关事件。更多详情,可查阅要求
依赖列表中查看许可证      
管理审计事件流          

机器学习模型仓库和实验

模型仓库实验的项目权限。

操作 Guest Reporter Developer Maintainer Owner Notes
查看模型和版本 非成员仅能查看具有 任何人可访问 可见性级别的公开项目的模型和版本。非成员无法查看内部项目,即使已登录。
查看模型实验 非成员仅能查看具有 任何人可访问 可见性级别的公开项目的模型和版本。非成员无法查看内部项目,即使已登录。
创建模型、版本和产物     您还可以使用软件包镜像仓库 API 来上传和下载产物,这将使用自身的的权限。
编辑模型、版本和产物      
创建实验和候选者      
编辑实验和候选者      
删除实验和候选者      

监控

监控的项目权限包括错误跟踪事件管理

操作 Guest Reporter Developer Maintainer Owner 注释
查看事件  
指派事件管理告警  
参与事件管理的值班轮换安排  
查看告警    
查看错误跟踪列表    
查看提升策略    
查看值班计划    
创建事件    
修改告警状态    
修改事件严重性    
修改事件提升状态      
修改事件提升策略      
管理错误跟踪        
管理提升策略        
管理值班计划        

项目计划

议题的项目权限是:

操作 Guest Reporter Developer Maintainer Owner Notes
查看议题  
创建议题 作者和指派人可以修改标题和描述,即使它们没有报告者角色。
查看机密议题    
更新议题元数据   元数据包括标签、指派人、里程碑、议题、权重、机密性、时间跟踪和更多。

Guest 用户只能在创建议题时设置元数据。他们无法更改现有议题的元数据。
关闭/重开议题   作者和指派人可以关闭和重新打开议题,即使它们没有报告者角色。
管理设计管理 files    
挂历议题看板    
管理里程碑    
归档或重开需求   作者和指派人可以归档和重开需求,即使它们没有报告者角色。
创建或编辑需求   作者和指派人可以修改标题和描述,即使它们没有报告者角色。
导入或导出需求    
归档测试用例    
创建测试用例    
移动测试用例    
重开测试用例    
管理功能标志      
删除议题          

task的项目权限:

Action Guest Reporter Developer Maintainer Owner Notes
查看任务  
创建任务 Guest 用户可以为他们自己创建任务。作者和指派人可以修改标题和描述,即使它们没有报告者角色。
添加链接项  
从议题移除  
编辑任务    
删除任务         任务的作业可以删除它们,即使他们没有所有者角色。

OKR的项目权限:

操作 Guest Reporter Developer Maintainer Owner Notes
查看 OKRs  
创建 OKRs  
添加子 OKR  
添加链接项  
编辑 OKRs    
修改 OKR 的机密性    

wikis的项目权限:

Action Guest Reporter Developer Maintainer Owner Notes
查看 wiki  
创建 wiki 页面      
编辑 wiki 页面      
删除 wiki 页面      

软件包和仓库

容器镜像仓库的项目权限:

Action Guest Reporter Developer Maintainer Owner Notes
从容器镜像仓库拉取镜像 查看容器镜像仓库和拉取镜像的能力受控于容器镜像仓库的可见性权限
推送镜像到容器镜像仓库      
删除容器镜像仓库镜像      
管理清除策略        

软件包仓库的项目权限:

操作 Guest Reporter Developer Maintainer Owner 注释
拉取软件包 在私有化部署实例上,具有 Guest 角色的用户只能够在公开和内部(不能在私有项目)上执行此操作。外部用户必须要显示授予访问权限(至少是 Reporter 角色),即使项目是内部的。在 JihuLab.com 上的具有 Guest 角色的用户仅能够在公开项目上执行此操作,因为内部项目是不可见的。
发布软件包      
删除软件包        
删除与软件包相关联的文件        

项目

项目功能特性的项目权限:

操作 Guest Reporter Developer Maintainer Owner Notes
下载项目 在私有化部署实例上,访客用户仅能在公开和内部项目上执行此操作(不能在私有项目上)。外部用户必须被显式授予访问权限(至少是 报告者 角色),即使项目是内部的。在 JihuLab.com 上的访客用户仅能在公开项目上执行此操作,因为内部项目是不可见的。
留下评论  
图片上的仓库评论(由用户发布) 仅适用于设计管理设计上的评论。
查看洞察  
查看需求  
查看时间追踪报告 在私有化部署实例上,访客角色的用户仅能在公开或内部项目上执行此操作(不能再私有项目上)。外部用户必须被显式授予访问权限至少是 报告者 角色),即使项目是内部的。在 JihuLab.com 上的访客角色用户仅能在公开项目上执行此操作,因为内部项目是不可见的。
查看代码片段  
查看项目流量统计    
创建代码片段    
查看发布     访客用户可以访问极狐GitLab发布来下载资产,但是不被允许下载源代码或查看 诸如提交和发布相关的仓库信息
管理发布       如果标签是受保护的,这取决于给予开发者和维护者的访问权限。
配置 webhooks        
管理项目访问令牌       对于私有化部署实例,项目访问令牌对所有用户可用。对于 JihuLab.com,项目访问令牌仅在专业版和旗舰版上可用(不包括试用许可证)。
Export project        
重命名项目        
编辑项目徽章        
编辑项目设置        
修改项目功能可见性级别       如果项目可见性被设置为私有,维护者或所有者无法修改项目功能的可见性级别。
编辑评论(由用户发布)        
添加部署密钥        
管理项目操作        
查看使用额度页面        
全局删除代码片段        
全局编辑代码片段        
归档项目          
修改项目可见性级别          
删除项目          
禁用通知邮件          
转移项目          

极狐GitLab Pages的项目权限:

操作 Guest Reporter Developer Maintainer Owner Notes
查看由访问控制保护的极狐GitLab Pages  
管理极狐GitLab Pages        
管理极狐GitLab Pages 域名和证书        
移除极狐GitLab Pages        

仓库

仓库功能的项目权限包括源代码,分支,推送规则和更多:

操作 Guest Reporter Developer Maintainer Owner Notes
查看项目代码 在私有化部署实例上,具有访客角色的用户仅能公开和内部项目上执行此操作(不在私有项目上)。外部用户必须显式给予访问权限(至少是 报告者 角色),即使项目是内部的。在 JihuLab.com 上的访客角色用户仅能在公开项目上执行此操作,因为内部项目是不可见的。在极狐GitLab 15.9 及以后版本,具有访客角色的用户和旗舰版许可证可以查看私有仓库内容,如果私有化部署管理员或群组所有者(JihuLab.com 上)给予了这些用户权限的话。管理员或群组所有者可以通过 API 或 UI 来创建一个自定义角色并将角色指派给用户。
拉取项目代码 在私有化部署实例上,具有访客角色的用户仅能公开和内部项目上执行此操作(不在私有项目上)。外部用户必须显式给予访问权限(至少是 报告者 角色),即使项目是内部的。在 JihuLab.com 上的访客角色用户仅能在公开项目上执行此操作,因为内部项目是不可见的。
查看提交状态    
创建提交状态     如果分支是受保护的,这取决于给予开发者和维护者的访问权限。
更新提交状态     如果分支是受保护的,这取决于给予开发者和维护者的访问权限。
创建Git 标签      
删除Git 标签      
创建新分支      
删除非保护分支      
强制推送到非保护分支      
推送到非受保护份之      
管理受保护分支        
删除手保护分支        
推送到受保护分支       如果分支是受保护的,这取决于给予开发者和维护者的访问权限。
管理受保护标签        
管理推送规则        
移除派生关系          
强制推送到受保护分支           访客、报告者、开发者或维护者以及所有者不被允许。查看受保护分支

合并请求的项目权限:

操作 Guest Reporter Developer Maintainer Owner Notes            
查看合并请求 在私有化部署实例上,具有访客角色的用户仅能公开和内部项目上执行此操作(不在私有项目上)。外部用户必须显式给予访问权限(至少是 报告者 角色),即使项目是内部的。            
创建代码片段                
创建合并请求     在接受外部成员的项目上,用户可以创建、编辑和关闭自己的合并请求。对于 私有 项目,访客角色的用户被排除在外,因为这些用户无法克隆私有项目。对于 内部 项目,则包括对该项目具有只读访问权限的用户,因为他们可以克隆内部项目            
更新合并请求包括指派、审核、代码建议、批准、标签、锁定和解决线程           有关符合条件的合并请求审批人的信息,可查阅符合条件的审核人
管理合并请求设置                    
管理合并请求审核规则                    
删除合并请求                      

用户管理

用户管理的项目权限。

操作 Guest Reporter Developer Maintainer Owner Notes
管理团队成员       维护者无法创建、降低或删除所有者,也无法提升用户到所有者角色。他们也无法审批所有者角色的访问请求。
和群组共享(邀请)项目       当启用共享群组锁时,无法和其他群组共享项目。这不会影响具有群组共享的群组。
查看成员的 2FA 状态        

群组成员权限

任何用户都可以从群组将其移除,除非它是群组的唯一所有者。

下面的表格列出了每个角色可用的群组权限:

分析群组权限

分析功能的群组权限包括价值流、产品分析和洞察:

操作 Guest Reporter Developer Maintainer Owner Notes
查看洞察  
查看洞察图表  
查看议题分析  
查看贡献者分析  
查看价值流分析  
查看生产力分析    
查看群组 DevOps 采用    
查看指标仪表盘注释    
创建/编辑/删除指标仪表盘注释      

应用程序安全群组权限

应用程序安全功能的群组权限包括依赖项管理、安全分析器、安全策略和漏洞管理。

操作 Guest Reporter Developer Maintainer Owner Notes
查看依赖列表      
查看漏洞报告      
查看安全仪表盘      
创建安全策略项目          
指派安全策略项目          

CI/CD 群组权限

CI/CD 功能的群组权限包括 runners、变量和受保护环境:

操作 Guest Reporter Developer Maintainer Owner Notes
查看群组 runner        
管理群组级别的 Kubernetes 集群        
管理群组 runner          
管理群组级别的 CI/CD 变量          
管理群组受保护环境          

合规群组权限

compliance功能的群组权限包括合规中心、审计事件、合规框架和许可证。

操作 Guest Reporter Developer Maintainer Owner Notes
查看审计事件     用户仅可以基于他们自己的操作查看对应的事件。更多详情,可以查看前提条件
在依赖列表中查看许可证      
查看合规中心          
管理合规框架          
为项目指派合规框架          
管理审计事件流          

群组权限

群组功能的群组权限:

操作 Guest Reporter Developer Maintainer Owner Notes
浏览群组  
在群组中创建项目     开发者、维护者以及所有者:仅当在实例级别群组级别设置了项目创建角色。

开发者:仅当默认分支保护被设置为“部分受保护”或“未受保护”时,开发者可以推送提交到新项目的默认分支。
查看群组审计事件     开发者和维护者仅可以给予他们的单个操作来查看事件。更多详情,可查阅需求
创建子群组       维护者:可以创建子群组
编辑史诗评论 (用户发布的评论)        
派生项目到群组中        
查看付费         不适用于子群组
查看群组使用额度页面         不适用于子群组
迁移群组          
删除群组          
管理 订阅、存储和计算分钟数          
管理 群组访问令牌          
修改群组可见性级别          
编辑群组设置          
配置项目模板          
配置SAML SSO         不适用于子群组
禁用通知邮件          

项目计划群组权限

针对项目计划功能的群组权限包括迭代、里程碑和标签:

操作 Guest Reporter Developer Maintainer Owner Notes
管理群组标签    
管理群组里程碑    
管理迭代    

史诗的群组权限:

操作 Guest Reporter Developer Maintainer Owner Notes
查看史诗  
创建史诗    
编辑史诗    
删除史诗          
管理史诗看板    
将议题添加到史诗 您必须有查看史诗的权限并编辑议题。
新增/移除子史诗 您必须有查看史诗的权限。

wikis的群组权限

操作 Guest Reporter Developer Maintainer Owner Notes
查看群组 wiki Guests:此外,如果你的群组是公开的或内部的,能够查看群组的所有用户还可以看到群组 wiki 页面。
创建群组 wiki 页面      
编辑群组 wiki 页面      
删除群组 wiki 页面      

软件包和仓库群组权限

容器镜像仓库的群组权限:

操作 Guest Reporter Developer Maintainer Owner Notes
拉取容器镜像仓库镜像 Guests can only view events based on their individual actions.
使用依赖代理拉取容器镜像  
删除容器镜像      

软件包仓库的群组权限:

操作 Guest Reporter Developer Maintainer Owner Notes
拉取软件包    
发布软件包      
删除软件包        
管理软件包设置          
管理依赖代理清楚策略          
启用依赖代理          
禁用依赖代理          
为群组清楚依赖代理          
启用软件包请求转发          
禁用软件包请求转发          

仓库群组权限

仓库功能的群组权限包括合并请求、推送规则和部署令牌:

操作 Guest Reporter Developer Maintainer Owner 注释
管理部署令牌          
管理合并请求设置          
管理推送规则          

用户管理群组权限

用户管理的群组权限:

Action Guest Reporter Developer Maintainer Owner Notes
查看成员的 2FA 状态          
管理群组成员          
管理群组级别的自定义角色          
共享(邀请)群组到群组          
通过 2FA 状态过滤成员          

工作空间群组权限

工作空间的群组权限:

操作 Guest Reporter Developer Maintainer Owner Notes
查看映射到群组的工作空间集群代理        
将工作空间集群代理映射或取消映射到群组          

子群组权限

当在子群组中添加成员时,他们会从父群组继承成员和权限级别。这种模型允许在你有一个父群组中的成员时访问嵌套群组。

更多详情,可查阅子群组成员

最小访问用户

  • 对于邀请最小访问角色用户的支持引入于极狐GitLab 15.9。

具有最小访问角色的用户不能够:

  • 自动访问顶级群组中的项目和子群组。
  • 在自己管理的旗舰版订阅中计算席位,或者在 JihuLab.com 订阅中计算席位,只要用户没有在任何地方有其他角色。

所有者必须显式地将这些用户添加到特定的子群组和项目。

您可以和针对 JihuLab.com 群组的 SAML SSO一起使用最小访问角色来控制群组和项目的访问权限。您可以设置默认角色为通过 SAML SSO自动添加到顶级群组的成员。

  1. 在左侧导航栏,选择 搜索或前往,然后找到您的群组。
  2. 选择 设置 > SAML SSO
  3. 默认成员角色下拉列表中选择 最小访问
  4. 选择 保存更改

最小访问用户收到 404 错误

因为一个已知问题,当具有最小访问角色用户:

  • 使用标准的 web 认证登录,当他们访问父群组时候会收到 404 错误。
  • 使用群组 SSO 登录,他们会立即收到 404 错误,因为他们会被重定向到父群组页面。

要解决此问题,请为任何父群组中的项目或子群组授予任何用户 Guest 或更高角色。在专业版中 Guest 用户会消耗一个席位而在旗舰版中不会消耗席位。

相关主题