需求

普通成员在组内赋予Developer权限后,能够在该组内进行如下操作:

在该组下可以创建新的项目

在该组下可以创建新的子组

脱离本组之后,则无法创建新的项目和新的组

Gitlab权限

Gitlab用户在组中权限

Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

用户角色 权限
Guest 可以创建issue、发表评论,不能读写版本库
Reporter 可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer 可以克隆代码、开发、提交、push,RD可以赋予这个权限
Maintainers 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner 可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

Gitlab中的组和项目权限

Gitlab中的组和项目有三种访问权限:Private、Internal、Public

角色 权限
Private 只有组成员才能看到
Internal 只要登录的用户就能看到
Public 所有人都能看到

说明:开源项目和组设置的是Internal,一般工作中,我们用的最多的还是Private

最佳实践

根据文章开头我们提到的需求,在这里为了便于理解,我们做个实操。

使用管理员账户登录,点击New Group来创建一个新组:

Allowed to create projects: Developers + Maintainers

Allowed to create subgroups: Maintainers

Gitlab组内成员权限管理

赋予组成员 Guest 权限

组内添加成员

赋予Guest权限

Gitlab组内成员权限管理

查看组成员操作权限

Gitlab组内成员权限管理

说明:这个并不能满足我们的需求!

赋予组成员 Reporter 权限

组内添加成员

赋予Reporter权限

Gitlab组内成员权限管理

查看组成员操作权限

Gitlab组内成员权限管理

说明:这个并不能满足我们的需求!

赋予组成员 Developer 权限

组内添加成员

赋予Developer权限

Gitlab组内成员权限管理

查看组成员操作权限

Gitlab组内成员权限管理

赋予组成员 Maintainer 权限

组内添加成员

赋予Maintainer权限

Gitlab组内成员权限管理

查看组成员操作权限

Gitlab组内成员权限管理

赋予组成员 Owner 权限

组内添加成员

赋予Owner权限

Gitlab组内成员权限管理

查看组成员操作权限

Gitlab组内成员权限管理