Jon*_*n O 15 git bitbucket gerrit
我从快速入门指南中提取了一个gerrit实例.
我的公司使用BitBucket进行拉取请求,偶尔也会用于代码审查.我们使用Jenkins和BitBucket绑定的广泛构建/部署管道.
我们希望将gerrit集成到代码审查中,因为它能够在审核被接受之前进行提交并构建/验证它们.
基本上,我想让gerrit的"提交"按钮向上游推送到BitBucket.(我宁愿不通过复制来处理这个问题;我想将BitBucket维护为记录的上游/存储库,因为公司的惯性.)
有没有人对如何做到这一点有任何建议?能力是否存在,或者这是一个新颖的想法?
hel*_*ert 18
Gerrit通过在Gerrit本身托管的实际Git存储库周围提供(或多或少)瘦包装来实现它的代码审查功能.据我所知,没有可能直接在Gerrit中集成外部Git存储库.
这意味着在使用Gerrit时,Git存储库需要在Gerrit本身中托管.因此,您需要在Gerrit实例中维护BitBucket存储库的完整副本.所以这个问题基本归结为保持两个Git存储库同步.
由于您已经在使用Jenkins,我建议使用Jenkins构建来在将新提交推送到BitBucket存储库时更新您的Gerrit存储库.为此,您需要:
refs/heads/*.Jenkins将使用此用户.注意不要将此权限授予任何最终用户,否则他们将能够通过直接推送来绕过代码审查.在Gerrit中提交代码评审时,需要将新提交推回到BitBucket.通常,我建议使用复制插件.以下是相应配置文件的外观(etc/replication.config在Gerrit目录中):
[remote "bitbucket"]
url = ssh://git@bitbucket.org/<your-user>/${name}.git
push = +refs/tags/*:refs/tags/*
push = +refs/heads/*:refs/heads/*
mirror = true
replicateOnStartup = true
replicatePermissions = false
Run Code Online (Sandbox Code Playgroud)
由于您提到要避免使用复制,因此您还可以使用Jenkins作业将Gerrit中的提交同步回BitBucket.为了最大限度地减少延迟,您可以使用Jenkins的Gerrit Trigger插件(无论如何,您都希望将其用于预提交检查).或者,您可以使用自定义的Gerrit钩子hooks/ref-updated来触发Jenkins构建(如果您希望我详细说明,请删除注释).
希望这可以帮助!