GitLab的权限管理及Merge Request

原创尘世间一名迷途小码农 发布于2019-06-09 12:40:30 阅读数 2909  收藏

目录

1、前言

2、角色权限

3、强制代码审查

一、设置受保护分支

二、创建及批核Merge Request

三、历史查询


1、前言

团队目前在日常开发工作中都是在线下进行代码审查,但是这样的模式根本无法做到过程留痕。因此,需要使用GitLab的Merge Request或者Gerrit这样的工具进行过程管理。这里详述一下如何通过Merge Request进行线上的代码审查。

2、角色权限

首先,在GitLab中的角色分为以下5种:Guest、Reporter、Developer、Maintainer、Owner。具体权限可以参考官方文档

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

具体的权限可以参考以下:

Action Guest Reporter Developer Maintainer Owner
Create new issue ✓ 1
Create confidential issue ✓ 1
View confidential issues (✓) 2
Leave comments ✓ 1
See related issues
See a list of jobs ✓ 3
See a job log ✓ 3
Download and browse job artifacts ✓ 3
View wiki pages ✓ 1
Create and edit wiki pages    
Delete wiki pages      
View license management reports  ✓ 1
View Security reports  ✓ 1
View project code 1
Pull project code 1
Download project 1
Assign issues  
Assign merge requests    
Label issues  
Label merge requests    
Create code snippets  
Manage issue tracker  
Manage labels  
See a commit status  
See a container registry  
See environments  
See a list of merge requests  
Manage related issues   
Lock issue discussions  
Create issue from vulnerability   
View Error Tracking list  
Pull from Maven repository or NPM registry   
Publish to Maven repository or NPM registry     
Lock merge request discussions    
Create new environments    
Stop environments    
Manage/Accept merge requests    
Create new merge request    
Create new branches    
Push to non-protected branches    
Force push to non-protected branches    
Remove non-protected branches    
Add tags    
Cancel and retry jobs    
Create or update commit status    
Update a container registry    
Remove a container registry image    
Create/edit/delete project milestones    
View approved/blacklisted licenses 
Use security dashboard     
Dismiss vulnerability     
Apply code change suggestions    
Use environment terminals      
Run Web IDE’s Interactive Web Terminals       
Add new team members      
Push to protected branches      
Enable/disable branch protection      
Turn on/off protected branch push for devs      
Enable/disable tag protections      
Rewrite/remove Git tags      
Edit project      
Add deploy keys to project      
Configure project hooks      
Manage Runners      
Manage job triggers      
Manage variables      
Manage GitLab Pages      
Manage GitLab Pages domains and certificates      
Remove GitLab Pages      
View GitLab Pages protected by access control
Manage clusters      
Manage license policy       
Edit comments (posted by any user)      
Manage Error Tracking      
Switch visibility level        
Transfer project to another namespace        
Remove project        
Delete issues        
Force push to protected branches 4          
Remove protected branches 4          
View project Audit Events      
View project statistics  
View Insights charts 

从上图可以看出来,Maintainer能够push代码到受保护分支,而Developer只能创建Merge Request,这就为团队推行强制代码审查并做到有迹可循提供了技术保证。

3、强制代码审查

一、设置受保护分支

通过菜单 Project -> Settings -> Repository -> Protected Branches,然后按照下图步骤设置,最终可以得到第十步的结果:

二、创建及批核Merge Request

我们把本地修改的代码提交到个人远程分支上,并想把个人分支合并到某个Dev分支上用于SIT提测即可参考以下步骤。这里用从dev_sp16_man 合并到 Dev_Sprint16_Kid 作为例子。

第一步:Team1_Dev(开发人员)创建MR并提交,MR主要填写以下5个参数:(同步你可以根据团队情况选择勾选【remove source branch when merge request is accepted】)

  • Title
  • Description
  • Assignee
  • Source branch
  • Target branch

第二步:Team1_Leader登录,在【Merge Request】的角标已经提醒有一个request需要审核。

然后,在点击该merge request后,可以通过GitLab自带的Web IDE或者下载到本地IDE进行查看。

第三步:在代码审核无误后,可以添加comment并点击【Merge】进行代码合并,可以看到这时候的左上角状态仍然是【Open】。

第四步:在点击【Merge】后,可以看到代码合并已经成功,这时候左上角状态变为【Merged】。

三、历史查询

通过菜单 Project 选择你想进入的项目,然后点击【Merge Request】,然后再点击【All】即可展示所有的代码审查历史,这样就能在流程层面保证所有的代码合并是经过审核的,并可以做到有迹可循。

 

GitLab的权限管理及Merge Request的更多相关文章

  1. git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误

    今天有同事在Gitlab上发送 Merge Request的时候,直接出现如下所示的界面,提示http 500,服务器内部出错. 一.错误描述 1.1 创建新的 Merge Request 1.2 填 ...

  2. Centos7安装gitlab11 学习笔记之基础概念、部署安装、权限管理、issue管理

    一.基础介绍 1.简介 一个基于GIT的源码托管解决方案 基于rubyonrails开发 集成了nginx postgreSQL redis sidekiq等组件 2.安装要求 2g内存以上,有点占内 ...

  3. git使用-merge request开发操作步骤

    0. 如果当前不在develop分支,则切换到develop分支 git checkout develop 1. 获取develop分支最新代码 git pull 注意:这一步正常来说应该是一个Fas ...

  4. Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理

    1.创建Group,User,Project 创建一个组,组名为java Group path http://192.168.56.11/java Visibility Level: #为权限级别,一 ...

  5. 自动化部署之gitlab权限管理--issue管理

    一.删除测试项目 先进入项目,选择编辑项目 二.拉取到最下方,移除项目 三 输入你要删除的项目名称 二 创建Group,User,Project 2.1 创建一个组,组名为java Group pat ...

  6. 【转】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?

    在 GitHub 上混久了,经常听到 Pull Request,在 GitLab 上混久了,则经常 提起 Merge Request ,然而它们之间有不同吗?为什么要用两个不同的名称? 要追溯这两个名 ...

  7. GitLab:解决Merge Request中Commits不更新的问题

    最近在使用 GitLab 的 Merge Requests 功能进行 Code Review .操作流程是这样的: 1)开发人员A要给一个项目增加一个新功能,先在这个项目上创建一个 Git 分支. 2 ...

  8. gitlab 一键 merge request(III)

    已经有两位同学写过类似的 wiki 了,值得一看: gitlab一键提交request merge & assign 为啥我又来凑热闹呢?基于下面两个原由: 我的机子是 Win10,上面脚本的 ...

  9. 使用 gitlab 进行代码管理

    这里使用 gitlab 做服务器, 客户端主要使用 git extensions. ============================= gitlab 项目成员类型: ============= ...

随机推荐

  1. 创建简易的SpringBoot项目

    创建简易的SpringBoot项目 这两天在学习springboot,菜鸟刚刚知道这个东西,看着springboot项目下那一大堆目录都不知道从何下手,还是静下心来从最简单的创建一个项目入手,这路和大 ...

  2. sizeof()计算

    本节包含sizeof()计算结构体,位域,数组,字符串,指针,c++中的class等类型的大小,sizeof()计算的大小都是以字节为单位. 一 计算基本类型的长度 sizeof(char): 1 s ...

  3. python之提升程序性能的解决方案

    Python在性能方面不卓越,但是使用一些小技巧,可以提高Python程序的性能,避免不必要的资源浪费. 1. 使用局部变量 尽可能使用局部变量替代全局变量,可以是程序易于维护并且有助于提高性能节约成 ...

  4. wentaolovesmeng.club

    wentaolovesmeng.club wentaostudy.club

  5. PAT 乙级 1011.A+B 和 C C++/Java

    题目来源 给定区间 [−] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤),是测试用例的个数.随后给出 T 组测试用例,每组占一行, ...

  6. python应用-猜数字

    """ 猜数字游戏(电脑给数字人猜) Author:罗万财 Date:2017-6-3 """ from random import ran ...

  7. python应用-传入年月日 输出为一年的第几天

    ef leap_year(year): return (year//4==0 and year//100!=0) or (year //400==0) def which_day(year,month ...

  8. RabbitMQ 的 docker 镜像使用

    RabbitMQ 的 docker 镜像使用 1.下载镜像(management版本的才带有web管理界面) docker pull rabbitmq:3.7.18-management 2.创建容器 ...

  9. 记录一次群答问:jmeter正则提取器轻松提取一个及多个值

    图截得比较完整,电脑端浏览器放大倍数看吧^_^,手机端可以点击图片然后放大看. 一个正则提取问题 前几天,在Q群和微信群里被同时@,咨询这样一个问题:服务器返回:name="tom" ...

  10. JMeter【第一篇】jmeter5.1在windows(含插件安装)及linux环境下安装

    jmeter下载 前提:已经安装jdk8+ jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi 有Binaries和Source版本 前者是 ...