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 | ||||
| 从当前项目中提取容器图像 | ✓ | ✓ | ✓ | |
| 从公共项目中提取容器图像 | ✓ | ✓ | ✓ | |
| 从内部项目中提取容器图像 | ✓ | ✓ | ✓ | |
| 从私人项目中提取容器图像 | ✓ | ✓ | ✓ | |
| 将容器图像推送到当前项目 | ✓ | ✓ | ✓ | |
| 将容器图像推送到其他项目 | ✓ |
以上是权限明细列表,在给成员分配权限时需要合理分配。
