CI持续集成系统环境–Gitlab+Gerrit+Jenkins完整对接
Git review 及其安装:https://www.jianshu.com/p/65a9c392ee25
使用 git review时报错:stdout = self.stdout.read() UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa2 in position 12
解决方法:https://blog.csdn.net/myli_binbin/article/details/108152690

git review 命令需要 .gitreview 文件存在于项目目录里。
用 gerrit用户添加.gitreview 文件
[root@115]# su - gerrit
[gerrit@115]$ git clone git@103.10.86.30:dev-group/test-project1.git
[gerrit@115]$ cd test-project1
[gerrit@115]$ vim .gitreview

[gerrit]
host=103.10.86.30
port=29418
project=test-project1.git
添加.gitreview到版本库
[gerrit@115] g i t a d d . g i t r e v i e w [ g e r r i t @ 115 ] git add .gitreview [gerrit@115] gitadd.gitreview[gerrit@115]git config --global user.name ‘gerrit’
[gerrit@115] g i t c o n f i g − − g l o b a l u s e r . e m a i l ′ g e r r i t @ x q s h i j i e . c n ′ [ g e r r i t @ 115 ] git config --global user.email 'gerrit@xqshijie.cn' [gerrit@115] gitconfigglobaluser.emailgerrit@xqshijie.cn[gerrit@115]git commit .gitreview -m ‘add .gitreview file by gerrit.’
[gerrit@115]$git push origin master

gerrit安装:非常好的一篇文章
中间涉及到几个服务间多次ssh密钥传递:
在gerrit中使用git review的那一方需要把自己的公钥放在gerrit上
期间可以用 ssh -p 29418 admin(gerrit上的用户名)@ip地址测试能否成功连接。
我在此期间碰到如下问题:【@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:YuegEmhDUl3cBgb223eNwR95Qval9vUa6xBXGP+FFHU.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:1
ECDSA host key for [192.168.221.133]:29418 has changed and you have requested strict checking.
Host key verification failed.

解决:【https://blog.csdn.net/qiuziqiqi/article/details/96874097】

在gerrit 中的问题:
【问题一】:git review 之后,用户只能查看,没有权限submit.
解决方法:主要参考

但是我的版本是3.0,操作上有些许不同,主要意思就是,gerrit 中赋予权限只能以group为单位,传递给用户。
以Administrators为例,需要给其添加submit的权限:
在这里插入图片描述
点击gerrit:
在这里插入图片描述
点击Access
在这里插入图片描述
点击All-Projects:
在这里插入图片描述
在这里插入图片描述
需要什么权限就add 什么 ,然后加入group 即可。
【问题2】:submit后项目就提交到了gerrit ,但是我们想要让gerrit仓库更新之后自动将项目提交到gitlab中。

Gerrit test-project1 项目仓库有变化时自动同步到 Gitlab 的 test-project1 项目仓库中。
Gerrit 自带一个 Replication 功能,同时我们在安装 Gerrit 时候默认安装了这个 Plugin。

现在只需要添加一个 replication.config 给 Gerrit
[gerrit@115]$ cd /home/gerrit/gerrit_site/etc/
[gerrit@115]$ vim replication.config

[remote “test-project1”]
projects = test-project1
url = git@103.10.86.30:dev-group/test-project1.git
push = +refs/heads/:refs/heads/
push = +refs/tags/:refs/tags/
push = +refs/changes/:refs/changes/
threads = 3
这里需要传公钥到gitlab中,所以建议还是先ssh -p 命令检测是否连接。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐