Gitlab权限概念
用户具有不同的能力,具体取决于他们在特定组或项目中的访问级别。如果用户同时在组的项目和项目本身中,则使用最高权限级别。
在公共和内部项目中,不会强制实施Guest角色。所有用户都可以创建问题,发表评论,克隆或下载项目代码。
当成员离开团队时, 将自动取消分配所有分配的问题和合并请求。
GitLab 管理员获得所有权限。
权限
用户组的权限
用户组有这几种权限的概念:Guest、Reporter、Developer、Master、Owner
这个概念在设置用户组的时候会遇到,叫做:Add user(s) to the group
,比如链接:http://192.168.1.111/admin/groups/组名称
下表完整的列出了Guest,Reporter,Developer,Master,Owner对应的权限。
行为 | Guest | Reporter | Developer | Master | Owner |
---|---|---|---|---|---|
浏览组 | ✓ | ✓ | ✓ | ✓ | ✓ |
编辑组 | ✓ | ||||
创建项目 | ✓ | ✓ | |||
管理组成员 | ✓ | ||||
移除组 | ✓ |
角色
Gitlab定义了以下几个角色:
Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 – Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal
Gitlab权限列表
这里要列一下权限分类,因为gitlab的成员权限不单单只有一种。
- 项目成员角色
- Guest – 客人
- Reporter – 记者
- Developer – 开发者
- Master (11.0版本中已重命名为 Maintainer) – 维护者
- Owner – 所有者
- 组成员角色
- Guest – 客人
- Reporter – 记者
- Developer – 开发者
- Master (11.0版本中已重命名为 Maintainer) – 维护者
- Owner – 维护者
- GitLab CI-CD 角色
- Guest, Reporter – 客人,记者
- Developer – 开发者
- Maintainer – 维护者
- Admin – 管理员
- 工作角色
- Guest, Reporter – 客人,记者
- Developer – 开发者
- Maintainer – 维护者
- Admin – 管理员
一般管理员邀请用户加入到项目里都需要分配权限,如下:
项目成员权限
注意:在GitLab 11.0中,Master已重命名为Maintainer。
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
创建新问题 | ✓ | ✓ | ✓ | ✓ | ✓ |
创建机密问题 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看机密问题 | ✓ | ✓ | ✓ | ✓ | ✓ |
留言 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看相关问题 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看工作列表 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看工作日志 | ✓ | ✓ | ✓ | ✓ | ✓ |
下载并浏览作业工件 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看维基页面 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看许可证管理报告 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看安全报告 | ✓ | ✓ | ✓ | ✓ | ✓ |
查看项目代码 | ✓ | ✓ | ✓ | ✓ | |
拉项目代码 | ✓ | ✓ | ✓ | ✓ | |
下载项目 | ✓ | ✓ | ✓ | ✓ | |
分配问题 | ✓ | ✓ | ✓ | ✓ | |
分配合并请求 | ✓ | ✓ | ✓ | ||
标签问题 | ✓ | ✓ | ✓ | ✓ | |
标签合并请求 | ✓ | ✓ | ✓ | ||
创建代码段 | ✓ | ✓ | ✓ | ✓ | |
管理问题跟踪器 | ✓ | ✓ | ✓ | ✓ | |
管理标签 | ✓ | ✓ | ✓ | ✓ | |
查看提交状态 | ✓ | ✓ | ✓ | ✓ | |
查看容器注册表 | ✓ | ✓ | ✓ | ✓ | |
查看环境 | ✓ | ✓ | ✓ | ✓ | |
查看合并请求列表 | ✓ | ✓ | ✓ | ✓ | |
管理相关问题 | ✓ | ✓ | ✓ | ✓ | |
锁定问题讨论 | ✓ | ✓ | ✓ | ✓ | |
从漏洞创建问题 | ✓ | ✓ | ✓ | ✓ | |
查看错误跟踪列表 | ✓ | ✓ | ✓ | ✓ | |
锁定合并请求讨论 | ✓ | ✓ | ✓ | ||
创建新环境 | ✓ | ✓ | ✓ | ||
停止环境 | ✓ | ✓ | ✓ | ||
管理/接受合并请求 | ✓ | ✓ | ✓ | ||
创建新的合并请求 | ✓ | ✓ | ✓ | ||
创建新分支 | ✓ | ✓ | ✓ | ||
推送到未受保护的分支机构 | ✓ | ✓ | ✓ | ||
强制推送到不受保护的分支机构 | ✓ | ✓ | ✓ | ||
删除未受保护的分支 | ✓ | ✓ | ✓ | ||
添加标签 | ✓ | ✓ | ✓ | ||
写一个维基 | ✓ | ✓ | ✓ | ||
取消并重试作业 | ✓ | ✓ | ✓ | ||
创建或更新提交状态 | ✓ | ✓ | ✓ | ||
更新容器注册表 | ✓ | ✓ | ✓ | ||
删除容器注册表图像 | ✓ | ✓ | ✓ | ||
创建/编辑/删除项目里程碑 | ✓ | ✓ | ✓ | ||
查看已批准/列入黑名单的许可 | ✓ | ✓ | ✓ | ||
使用安全仪表板 | ✓ | ✓ | ✓ | ||
解除漏洞 | ✓ | ✓ | ✓ | ||
应用代码更改建议 | ✓ | ✓ | ✓ | ||
使用环境终端 | ✓ | ✓ | |||
运行Web IDE的交互式Web终端 | ✓ | ✓ | |||
添加新的团队成员 | ✓ | ✓ | |||
推送到受保护的分支 | ✓ | ✓ | |||
启用/禁用分支保护 | ✓ | ✓ | |||
为开发人员打开/关闭受保护的分支推送 | ✓ | ✓ | |||
启用/禁用标签保护 | ✓ | ✓ | |||
重写/删除Git标签 | ✓ | ✓ | |||
将部署密钥添加到项目中 | ✓ | ✓ | |||
配置项目挂钩 | ✓ | ✓ | |||
管理跑步者 | ✓ | ✓ | |||
管理工作触发器 | ✓ | ✓ | |||
管理变量 | ✓ | ✓ | |||
管理GitLab页面 | ✓ | ✓ | |||
管理GitLab Pages域和证书 | ✓ | ✓ | |||
删除GitLab页面 | ✓ | ||||
查看受访问控制保护的GitLab页面 | ✓ | ✓ | ✓ | ✓ | ✓ |
管理集群 | ✓ | ✓ | |||
管理许可证政策 | ✓ | ✓ | |||
编辑评论(由任何用户发布) | ✓ | ✓ | |||
管理错误跟踪 | ✓ | ✓ | |||
切换可见性级别 | ✓ | ||||
将项目转移到另一个名称空 | ✓ | ||||
删除项目 | ✓ | ||||
删除问题 | ✓ | ||||
删除页面 | ✓ | ||||
强行推动受保护的分支机构 | |||||
删除受保护的分支 | |||||
查看项目审核事件 | ✓ | ✓ |
组成员权限
Action | Guest | Reporter | Developer | Maintainer | Owner |
---|---|---|---|---|---|
浏览组 | ✓ | ✓ | ✓ | ✓ | ✓ |
编辑组 | ✓ | ||||
创建子组 | ✓ | ||||
在组中创建项目 | ✓ | ✓ | ✓ | ||
管理小组成员 | ✓ | ||||
删除组 | ✓ | ||||
管理组标签 | ✓ | ✓ | ✓ | ✓ | |
创建/编辑/删除组里程碑 | ✓ | ✓ | ✓ | ||
查看组史诗 | ✓ | ✓ | ✓ | ✓ | ✓ |
创建/编辑组史诗 | ✓ | ✓ | ✓ | ✓ | |
删除组史诗 | ✓ | ||||
查看组审核事件 | ✓ |
GitLab CI / CD权限
Action | Guest, Reporter | Developer | Maintainer | Admin |
---|---|---|---|---|
查看提交和工作 | ✓ | ✓ | ✓ | ✓ |
重试或取消工作 | ✓ | ✓ | ✓ | |
擦除作业工件和跟踪 | ✓ | ✓ | ✓ | |
删除项目 | ✓ | ✓ | ||
创建项目 | ✓ | ✓ | ||
更改项目配置 | ✓ | ✓ | ||
添加特定的跑步者 | ✓ | ✓ | ||
添加共享的运行者 | ✓ | |||
查看系统中的事件 | ✓ | |||
管理界面 | ✓ |
工作权限
Action | Guest, Reporter | Developer | Maintainer | Admin |
---|---|---|---|---|
运行CI作业 | ✓ | ✓ | ✓ | |
从当前项目克隆源和LFS | ✓ | ✓ | ✓ | |
从公共项目克隆源和LFS | ✓ | ✓ | ✓ | |
从内部项目克隆源和LFS | ✓ | ✓ | ✓ | |
私有项目的克隆源和LFS | ✓ | ✓ | ✓ | |
推送源和LFS | ||||
从当前项目中提取容器图像 | ✓ | ✓ | ✓ | |
从公共项目中提取容器图像 | ✓ | ✓ | ✓ | |
从内部项目中提取容器图像 | ✓ | ✓ | ✓ | |
从私人项目中提取容器图像 | ✓ | ✓ | ✓ | |
将容器图像推送到当前项目 | ✓ | ✓ | ✓ | |
将容器图像推送到其他项目 | ✓ |
以上是权限明细列表,在给成员分配权限时需要合理分配。