gerrit+gitlab同步配置

为了实现代码时时评审后才能提交到版本库,现使用gerrit作为git代码评审工具,当评审通过后才可以push到gitlab,并使用gitlab项目地址作为jenkins中构建地址

实现步骤

  1. gerrit安装replication插件
    下载jar包,放入gerrit的plugins目录并重启
    或下载jar包后执行:ssh -p 29418 localhost gerrit plugin install -n replication.jar - < /apps01/replication.jar
  2. 安装好后,可以在gerrit系统中plugins菜单中看到
  3. 在…/etc目录下新建并配置replication.config文件

	     [remote "demo"]
	    projects = demo
	    url = git@ip:test/demo.git
	    push = +refs/heads/*:refs/heads/*
	    push = +refs/tags/*:refs/tags/*
	    push = +refs/changes/*:refs/changes/*
	    threads = 3
	    mirror = true
  1. 设置gitlab上demo项目的所有用户权限为reporter,不允许直接在gitlab上操作
  2. 在gerrit/git目录下clone裸库
    git clone --bare git@XXXXX
  3. 重启gerrit
    重启gerrit之后,可以在gerrit系统的projects中看到该项目

至此,已实现gitlab与gerrit的集成,代码需要从gerrit上拉取,按照格式提交、审核通过后会同步到gitlab中

在Linux系统上部署Gerrit并搭配GitLab进行代码管理,可按以下步骤操作: ### Gerrit部署 在配置Gerrit时,可编辑配置文件。以CentOS为例,使用`vim`编辑`/home/gerrit/review_site/etc/gerrit.config`文件,具体配置内容如下: ```plaintext [gerrit] basePath = git canonicalWebUrl = http://192.168.82.154:8081/ serverId = 5c9b8389-74b7-46cc-b46b-b60a51cb1b19 [database] type = mysql hostname = AnnaLinux port = 3306 database = reviewdb username = gerrit password = "GOKM*UHB7ygv6" [container] #javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance" #javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance" user = gerrit javaHome = /usr/local/src/jdk1.8.0_131/jre [index] type = LUCENE [auth] type = HTTP [receive] enableSignedPush = false [sendemail] smtpServer = smtp.ym.163.com smtpServerPort = 465 smtpUser = digital-zabbix@gadmobe.net [sshd] listenAddress = *:29418 [httpd] listenUrl = http://*:8081/ [cache] directory = cache [gitweb] type = gitweb cgi = /var/www/git/gitweb.cgi ``` 此配置文件对Gerrit的基础路径、数据库连接、容器用户、认证方式等多方面进行了设置[^4]。 ### GerritGitLab同步准备 在Gerrit服务器的git用户下执行命令,将GitLab的RSA信息添加到已知主机列表,避免后续同步报错。命令如下: ```bash sh -c "ssh-keyscan -t rsa gitlab.xxx.cn >> ~/.ssh/known_hosts" ``` 同时,要做好GitLab的准备工作(文档未详细说明,可根据GitLab常规使用进行必要配置,如创建项目、设置权限等)[^1]。 ### Gerrit集成GitLabGerrit服务器中配置Gerrit replication功能,以复制具体项目。可编辑`/opt/gerrit/review_site/etc/replication.config`文件,示例配置如下: ```plaintext [remote "test"] projects = test url = git@192.168.72.136:root/test.git push = +refs/heads/*:refs/heads/* push = +refs/tags/*:refs/tags/* push = +refs/changes/*:refs/changes/* threads = 3 ``` 此配置指定了要复制的项目、目标GitLab仓库的URL以及推送的引用范围等信息[^3]。 ### Gerrit与Git、GitLab的区别 Gerrit是建立在git版本控制系统之上的基于web的代码审核工具,主要解决代码审核问题。Git是一种版本控制系统,用于代码的存储和版本控制;而Gerrit用于团队间相互审阅彼此修改后的程序代码,决定是否能够提交、退回或者继续修改。GitLab的特点是一个人维系一个分支,权限管理更灵活,以merge request作为一次review;Gerrit的特点是一个团队维系一个分支,权限配置较复杂,以commit作为一次review[^2]。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值