从Gerrit搬到Crucible

时间:2012-08-18 03:38:21

标签: jira gerrit atlassian-crucible

我们目前使用Gerrit,这是一个由十几个人和一些开发人员组成的团队。

这是我们目前的工作流程:
1.开发人员从主人分支 2.开发人员在当地分公司工作 3.开发人员推动gerrit,它通过在refs / for / master中包含推送的提交来保护master分支。 (如果你不知道,gerrit也是一个存储库管理员。)
4. Gerrit调用Jenkins,在变更集上运行单元测试(和Selenium测试)。如果失败,则提交将被踢回给开发人员。否则,Jenkins + 1s提交。
5.审稿人查看提交和+ 1s 6.高级审阅者查看提交和+ 2s并将变更集合并到refs / head / master(即实际分支)

我们喜欢这个工作流程;这很棒。它为我们的开发带来了精彩且非常需要的流程和纪律,并从我们之前被忽视和忽略的代码审查瓶颈中创建了一个待办事项列表,每个人都对此感到高兴。

x - 间歇 - x

我们现在正在寻求将我们的任务管理转移到Jira。在我设置它的同时,我也设置了Crucible,因为它似乎是自然集成以使代码审查成为整个shebang的一部分。我无法做的是重现我们已经爱上的工作流程。随着Jira / Crucible的集成,由于我们不再拥有我们的存储库守门所有东西(而且我们不想为Atlassian的Stash付费),我们会将代码推送到Bitbucket。我们不能再直接在master上工作了,因为糟糕的代码不再是“门保持”,而是在通过任何测试或代码审查之前由开发人员合并到master中。保持它脱离主分支的唯一解决方案似乎是分叉。好吧,这很烦人,但我可以随便滚动。但是,如何通过开发人员的fork获取提交,以便在通过代码审查后合并到master分支中?这就是我希望从那些做过甚至远程相似的事情的人那里听到的,或者知道如何根据我的情况来完成它。

所有这一切的替代方法是尝试使用https://github.com/hobbs/jirret强制Jira和Gerrit之间的集成,但是它使用Jira仍然支持但不再进行任何开发的XML RPC。

3 个答案:

答案 0 :(得分:4)

Vic,要从开发人员的分支中获取更改并将其带入原始仓库的主代码行,您可以在Bitbucket中使用pull请求。它们对您正在进行的Crucible代码审查是免费的。如果分叉是一种痛苦,你可以尝试在你的仓库中创建一个“集成”分支,并让开发人员经常在那里推送代码(甚至在他们准备进行同行评审之前)。这个分支成为一种汤,集成问题可以浮出水面,而且不会污染主人。 Atlassian的一些开发团队使用集成分支,并利用Bamboo的支持自动将CI方案应用于新分支,并在每个构建之间自动合并分支。通常,每次将代码推送到dev分支时,Bamboo都会将dev分支合并到集成中。对于及早发现冲突非常有帮助。

Matt链接的博客更详细地描述了这种工作流程。无论您使用什么CI工具,基本工作流程都可以成功(因为Bamboo确实为它提供了非常好的支持和优秀的JIRA集成)。

我希望这有帮助!

答案 1 :(得分:1)

如果您不介意进行某些编程,可以使用Jira scripting suit使用Jira工作流事务在服务器上运行实际代码,并相应地更新问题内容/状态。要显示动态内容(来自本地文件或任何远程服务器),您可以使用Jira behaviour pluginusing Javascripts and HTML code

正如我所说,它需要一些编程,但您可以将原始工作流程与Jira集成。

一个小小的注意事项 - 虽然“JIR仍然支持的XML RPC但不再为”进行任何开发这个API非常强大,并且具有一些其他API缺乏的功能,所以甚至虽然它不会在未来发展,但您可能会发现它符合您的大部分需求。

希望有所帮助。

答案 2 :(得分:0)

我现在在Bitbucket的跟踪器上打开了一张票,询问了一些非常相似的内容:https://bitbucket.org/site/master/issue/5652/allow-for-pull-requests-to-require

不幸的是,似乎我从Atlassian回来的答案是“对不起,我们不打算这样做。请买Stash。”我们遇到的问题是Stash目前不是托管解决方案,我们没有计划设置基础设施来自己托管它(事实上,我们以前是DID,但在与Atlassian交谈后最终迁移到他们的托管解决方案)。我不太确定他们为什么不提供Bitbucket的“企业”功能,因为他们已经完成了Stash的工作。我认为我能做的就是让人们对该票证发表评论,以表明开发人员对这些类型的工作流程非常感兴趣(这一功能可以将其与GitHub区别开来!)。