Gitlab成员权限分配规则

2019-02-17 · xiejiahe

Gitlab权限概念

用户具有不同的能力,具体取决于他们在特定组或项目中的访问级别。如果用户同时在组的项目和项目本身中,则使用最高权限级别。

在公共和内部项目中,不会强制实施Guest角色。所有用户都可以创建问题,发表评论,克隆或下载项目代码。

当成员离开团队时, 将自动取消分配所有分配的问题和合并请求。

GitLab 管理员获得所有权限。

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
从当前项目中提取容器图像 ✓ ✓ ✓
从公共项目中提取容器图像 ✓ ✓ ✓
从内部项目中提取容器图像 ✓ ✓ ✓
从私人项目中提取容器图像 ✓ ✓ ✓
将容器图像推送到当前项目 ✓ ✓ ✓
将容器图像推送到其他项目 ✓

以上是权限明细列表,在给成员分配权限时需要合理分配。

参考资料

https://docs.gitlab.com/ee/user/permissions.html

git/svn
原创文章,转载请注明出处。