登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 857|回复: 0

基于GitLab的CodeReview教程

[复制链接]

179

主题

179

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-25 12:37:53 | 显示全部楼层 |阅读模式 来自 江苏徐州
作者 | ken
编辑 | 小胡

一、媒介

1、本文重要内容
GitLab Code Review机制阐明
Git Workflow 与 Git Code Review Workflow
GitLab Code Review 设置阐明
GitLab Code Review 流程演示
GitLab For IDE 插件先容(JetBrains等等)
2、GitLab Code Review机制
GitLab可以在分支归并的时间支持两种方式:

1、在当地将源分支(Source branch)代码归并到目的分支(Target branch)然后Push到目的分支(Target branch)
2、将源分支(Source branch)Push到远端,然后在GitLab指定目的分支(Target branch)发起Merge Request,对目的分支(Target branch)拥有Push权限的用户实行Merge操纵,完成归并。
也就是说,利用GitLab举行Code Review就是在分支归并环节发起Merge Request,然后Code Review完成后将代码归并到目的分支。
3、本教程实用情况信息

工具/情况版本
GitLabz GitLab.com、GitLab 社区版皆可
IDEJetBrains(IntelliJ IDEA、PyCharm、PhpStorm、WebStorm、RubyMide、AppCode、CLion、GoLand、DataGrip、Rider、Android Studio等等)
 
固然Code Review不肯定非要联合IDE来做,但是也不得不感谢JetBrains开辟了险些覆盖全部主流编程语言的IDE
JetBrains Tools现在覆盖的主流语言有:C/C++、C#、DSL、F#、Go、Groovy、Java、JavaScript、TypeScript、Kotlin、Objective-C、PHP、Python、Ruby、Scala、SQL、Swift、VB.NET(排名不分先后)
二、GitLab Code Review 设置

1、Code Review 工作流
通用Git工作流阐明
GKl5FS777GPPi7e7.jpg

1、需求确认后,从master创建develop分支
2、开辟职员从develop分支创建本身的feature分支举行开辟
3、master分支发生变动,必要从master分支归并到develop分支、可以思量定期归并一次
4、feature分支归并到对应的develop分支之前,必要从develop分支归并到feature分支
5、feature分支归并到对应的develop分支之后,发布到测试情况举行测试
6、develop分支在测试情况测试通过之后,归并到release分支并发布到预发布情况举行测试
7、release分支在预发布情况验证通事后,归并到master分支并发布到生产情况举行验证
分支名称约定:

分支范例名称格式阐明Mastermaster有且只有一个Releaserelease-**可以是班车发布日期也可以是需求名称缩写,也可以根据必要只用一个release分支Developdevelop-**通常是班车发布日期大概需求名称缩写,也可以根据必要只用一个develop分支Featurefeature-{username}-*开个职员个人分支,*通常是班车发布日期大概需求名称缩写

Code Review 环节选定
以上述Git工作流为例,开辟职员在Feature分支举行开辟,开辟完成后Merge到Develop分支举行测试。

那么最得当做Code Review就是Feature分支归并到Develop分的环节。
kRZ6xBmp4kVG6vH6.jpg
2、GitLab Repository 设置
GitLab堆栈相干设置以gitlab.com为例,本篇内容假如没有特殊注明,也同样实用于私有化摆设的GitLab CE版本

GitLab新建堆栈&创建分支
AaAtA1Xd2aCQBHjh.jpg

堆栈地点:http://gitlab.com/ken-io/test
xgZysVnMYYykNnF1.jpg
新建分支:
release(from master)
develop-test(from master)、
feature-ken-test(from develop-test)

Protected Branches 设置
为了包管必须以Merge的方式变动develop分支、release分支、以及master分支,我们必要对Push以及Merge权限举行限定

菜单:Settings->Repository Settings然后睁开Protected Branches选项
http://gitlab.com/ken-io/test/settings/repository

WaXqQH4qPqgJQpbz.jpg
这里,我们限定分支,全部的开辟职员对develop分支、release分支、以及master分支均无Push权限,只能以Merge方式归并到对应分支,而且只有Maintainers(Masters)组的用户有Merge权限。
对于通配符的分支掩护,我们必要给Maintainers(Masters)组的用户Push权限,否则无法新建对应格式的分支。对于固定名称的分支:master、release,可以限定全部脚色都没有Push权限。
三、GitLab Code Review 示例

变动Feature分支
在线修改feature-ken-test分支README.md文件,为Merge Request提供底子

o4jQd4a85u4Z8LD7.jpg
这里随意更新一行内容,然后Commit changes即可。

创建Merge Request
菜单:Merge Requests,然后点击:New Merge Request

hMVmE6TNOZkumDWH.jpg
Source branch选择:feature-ken-test
Target branch选择:develop-test
然后:Compare branches and continue

qCZ8ttnWUwte04vD.jpg
操纵项/填写项阐明:
操纵项/填写项ken.io 的阐明Title标题,没有特别要求保持默认即可Description形貌,必要将变动的需求形貌清晰,最好附件Code Review要点Assignee分配到的人,被分配到的人将会收到邮件关照,跟Merge权限没有一定关系,仍旧是项目标Maintainers(Masters)脚色拥有Merge权限Milestone里程碑,假如没有可不选Label标签,假如没有可不选Approvers user答应人/审批人,必须为项目地点构成员,假如选择了答应人,那此次归并必须经过答应人答应Approvers group答应人组,方便同时选择多个答应人Approvals required最少答应个数,假如选了个3个答应人,Approvals required设置为1,那么只必要1个答应人答应即可Source branch源分支,跟上一步调选择同等,这里重要用于确认Target branch目的分支,跟上一步调选择同等,这里重要用于确认

Approvers选项暂不实用于Gitlab的最新稳固版(11.1.4),盼望后续可以支持。
这里填写好Description,选择Assignee,然后Submit merge request即可。

Merge Request 操纵
B2JiPxq1Z8rjixxd.jpg

Merge Request 创建之后就会转到该页面,被分配到的人(Assignee)会收到邮件提示,假如必要多个人举行 Code Review,只要将该页面的链接发给其他项目成员即可。项目成员可以检察变动并批评,只不外按照之前的设置,只有Maintainers(Masters)脚色的成员才有Merge的权限。
USRgSdSAdaxuXanX.jpg
在Changes选项卡中,我们可以看到全部的变动。将光标移动到行号处会出现批评按钮,我们可以点击批评按钮发起批评,这个批评是对项目成员可见的,各人可在讨论区举行讨论。终极讨论发起者有权将讨论标志为已办理resolved
JJhRue64LuI22sA5.jpg
当全部的题目已办理之后(假如选择了审批人也必要审批通过),Maintainers(Masters)成员点击Merge完成归并即可。
yI8p5zWyJYHmPWWM.jpg
Merge完成之后,可以选择Remove Source Branch等操纵。
develop分支归并到release分支,以及elease分支归并到master是不必要颠末Code Review的,直接Merge即可。这里就省略了。
四、IDE Merge Request 插件利用先容

前面先容了通过GitLab网页创建Merge Request并发起Code Review,但作为开辟职员,照旧联合IDE来利用会更随手,GitLab提供了相干的api,只要我们创建相应的token,就可以供IDE插件来访问GitLab,以便利用IDE取代在网页上操纵。
1、GitLab Access Token
菜单:User Settings->
Access Tokens 进入Access Token添加页面

wGurGv3f4UnG5NQU.jpg
项阐明Name名称,根据本身喜欢来即可Expires at逾期时间,最远可以选择到10年后,根据本身必要填写即可Scopes范围,这里选择api就够用了创建完成后,贫苦临时生存token。由于一旦革新大概重开页面,token就不可见了。

2、JetBrains IDE GitLab插件利用
JetBrains提供了诸多IDE:IntelliJ IDEA、PyCharm、PhpStorm、WebStorm、RubyMide、AppCode、CLion、GoLand、DataGrip、Rider、Android Studio等等,如偶然外,都实用GitLab插件。

安装以下两个插件即可:
Gitlab Projects:http://plugins.jetbrains.com/plugin/7975-gitlab-projects
Gitlab Integration:http://plugins.jetbrains.com/plugin/7319-gitlab-integration

安装GitLab插件
Settings->Plugins 进入Plugins管理页

lHdVrFcfaHYRM4VV.jpg
点击Browse repositories并搜刮gitlab
MHf5Dnk49K7cM75M.jpg
安装Gitlab Projects以及Gitlab Integration,然后重启IDE见效

设置GitLab
在Settings界面搜刮GitLab Settings

Zz4225Ma04j8895z.jpg
填写GitLab Server Url、Access Token,然后点击Add New One完成添加
假如是私有化摆设的GitLab,换成对面的域名大概IP+Port即可

Create Merge Request
Clone项目feature-ken-test分支到当地,变动后push到origin。
然后在菜单中选择:VCS->Git->Git Lab-> Create Merge Request

N4L133623Z1ZA1lF.jpg
这里相称于我们在GitLab网页上举行创建操纵,只不外少了一些选项,也暂不支持Approvers相干选项。
选择目的分支,被分配的人,填写好Title、Description然后点击OK即可。
Merge Request创建完成后,插件会在右下角提示,点击链接即可跳转到Merge Request页面

假如提示辩论,请先将目的分支代码归并到当前分支
Merge Request Manage
项目成员在菜单中选择:VCS->Git->Git Lab-> List Merge Request

hGMD1J5YJ1G2dU5j.jpg
在这里可以看到待处置惩罚的Merge Request,选中后点击Code Review就可以呼出Merge Request操纵面板
xZl235CoW1Y6o5u1.jpg
按钮阐明Diff检察全部变动文件及差别Comments检察、添加批评Assign to me将跟进人指给本身Merge实行Merge

Merge Request Diff
Diff界面阐明:

K3Uq9930Q3gqFGj5.jpg
左侧是本次归并的commit记载,右侧是本次归并的文件。双击对应文件即可检察差别明细
VRjyeSjRBR9KKXer.jpg
Merge Request Comments
xfdrCTMhD5z0mTR5.jpg

Comments界面可以检察指定Merge Reuqest批评信息,也可以添加批评,双击可以检察完备批评内容。
但是不支持针对代码行发起讨论、对讨论标志为已办理等。

GitLab插件照旧更实用于Create Merge Request、大概对于较为简朴的提交举行Code Review。假如必要讨论等功能,照旧发起在GitLab页面上举行操纵
3、其他IDE GitLab插件利用
Visual Studio
Visual Studio GitLab插件:http://marketplace.visualstudio.com/items?itemName=MysticBoy.GitLabExtensionforVisualStudio

Visual Studio Code
Visual Studio Code GitLab插件:http://marketplace.visualstudio.com/items?itemName=jasonn-porch.gitlab-mr

Atom
Atom GitLab 插件:http://atom.io/packages/gitlab

五、备注

延伸阅读
GitLab安装摆设教程:http://ken.io/note/centos7-gitlab-install-tutorial

本文由 ken.io 创作,接纳CC BY 3.0 CN协议 举行允许。 可自由转载、引用、乃至修改,但需署名作者且注明出处。
ykEYym9eo7S79O23.jpg 前端指南

点击关注后开启前端新生活
GF7868kZE99te588.jpg




上一篇:马哥教诲2018年Linux第30期视频教程
下一篇:Centos7安装ffmpeg和利用youtube-dl下载Youtube视频
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-2 17:55 , Processed in 0.099114 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表