Gitlab权限控制

实际开发过程中,有些分支其实是不希望项目组所有开发都有 merge, push的权限。代码必须经过更高级别的管理人员审核后再merge, push。
gitlab 自带的权限管理就能实现这一功能场景。

一、最佳实践:

这里有一篇详细说明了最佳实践的文章

操作原理:

1. 关于分支设置

参考 git flow 定义项目的分支。
release,develop,master都是固定的分支,有固定的功能。
多人同时开发一个需求,可能需要拉取一个feature分支后再根据该feature分支拉取个人开发分支,开发完成后合并feature再合并develop,release,master等。

2. code review 流程

总结下code review流程:
(1)创建好 测试分支,release分支,并配置测试分支,release分支,master分支的merge权限
(2)开发分支开发完成后push到远端,通过页面提交merge request,指定reviewer和审批人,一般指定reviewer即可。
(3)reviewer 通过代码review,没有问题,可以点击merge,完成合并操作。如果有问题,可以发起讨论,或者直接关闭merge请求。

code review 流程完成。

二、保护分支的设置:

用于避免分支被没有权限的开发者 merge, push

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

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

设置分支保护:

1. 列表页面找到 Repository
2. 点击分支(branch)
3. 点击project setting
4. 点击Protected Branches 的Expand标签

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

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

参考文档1, 参考文档2

Leave a Reply

Your email address will not be published.