-->

在git的承诺消息JIRA问题数量(Jira issue number in git commit

2019-07-30 07:19发布

在我们公司,我们从SVN迁移到Git的。 对于问题的跟踪,我们使用JIRA Atlassian的。

现在,我们要强制每一个提交信息中包含的问题数(就像我们做了与SVN)。

我们发现,我们用它来拒绝提交,如果它不包含发行数量的承诺,味精勾。

JIRA使用鱼眼镜头到扫描混帐回购协议。 如果提交信息中包含的问题数量则变化下,这个问题所示。

问题是,当一个Git仓库克隆挂钩是不可复制的。 因此,在提交信息问题编号不执行。 这意味着,当一个新提交被推向上游吉拉可能无法列出下一个问题的变化。

问题是; 在我们以错误的方式使用Git某种程度上,是有什么办法可以真正执行提交信息中的问题多少? 或者没有任何一个都只需完成此脚本/钩(除提交-MSG钩等)?

Answer 1:

我用的git-JIRA钩 ,并将其修改为我的需求,这也应该为你工作。 为了您的需求,只是删除它登录到吉拉的部分,以检查是否从提交信息regexed的JIRA问题数量是有效的。 如果你不喜欢蟒蛇(GIT-JIRA钩是用Python编写的),喜欢的bash,你应该能够在每个回购的git的/适应示例脚本挂钩DIR您的需求。

至于实施的东西,将适用于每个人,你要使用git-JIRA钩上你的上游回购的“更新”挂钩。 这将阻止包含提交缺乏适当的JIRA问题引用的消息推动。 因为它是更方便地得到反馈约在提交时丢失的问题,引用(而不是推送时间),你需要让你的开发人员安装的git-JIRA钩作为他们的承诺,味精勾。 稍后我将解释如何能在全球范围内进行。

这里是我已经解决了这个问题:

  1. 私人回购承诺,味精勾:我修改的git-JIRA钩来检查,我们使用符号JIRA问题的引用。 然后,我通过电子邮件发送出来的钩并指示给大家讲解如何在全球范围内安装钩子,在解释这太问题 。 如果你安装钩子全球那么它会在未来的所有克隆使用,并且可以很容易地应用于已经克隆使用Git初始化回购。

  2. 上游回购更新挂钩:我用的是已经修改的git-JIRA挂机脚本,并在我们每个回购的安装。 我不能让上游回购工作的交互认证位(符号链接),这样我反而创造了一个受限制的权限吉拉用户和硬编码他们的认证到脚本。



Answer 2:

如果你正在使用NPM可以使用https://github.com/typicode/husky与https://github.com/marionebl/commitlint

创建文件:commitlint.config.js

module.exports = {
rules: {
    'references-empty': [2, 'never']
},
parserPreset: {
    parserOpts: {
        issuePrefixes: ['REF-']
    }
}};

并添加配置在的package.json钩

提交-消息:commitlint -E HUSKY_GIT_PARAMS



Answer 3:

你可以拥有服务器端的挂钩以及预接收挂机什么的,但是如果你已经习惯了github上,这是不是很明显。

如果做不到这一点,我可能会考虑提供“安装钩”构建选项(如rake任务,使任务,或其他),尽管这让我觉得有点“脏”,因为现在我的体型是联系在一起的版本控制系统...



Answer 4:

有对于一个附加: 提交策略插件JIRA !

它不仅检查了JIRA问题关键是“正式”包含在消息中,也检查,如果相应的问题(S)一JQL查询相匹配。 利用这一点,你有多种可能性,只允许对某些问题的类型检查,在一定的状态问题,在当前的Scrum冲刺的问题,针对下一个版本等问题。

作为奖励,它的工作原理都与原来的( 颠覆 )和目标版本控制系统( GIT中 ),使你的工作在过渡期内,即使控制。

您可以安装钩子脚本的祝福回购,以及任何叉。 不幸的是,使用Git克隆回购时,钩子脚本不被复制,但我们目前正在调查此解决方法。

完整文档: http://www.midori-global.com/products/jira-commit-policy-plugin/documentation/

免责声明:这是一个商业和支持附加的JIRA,我就是一个开发商做这个工作。



Answer 5:

如果您使用的是默认的钩子git的文件夹,然后你在那里所做的更改不会被索引,简单地意味着它们不能被签出或克隆。

你可以命名为“钩”一个不同的文件夹移动你的提交,消息钩子,并提交它,这样它会从git的覆盖默认挂钩。

我们显示一个消息框作为一个错误,如果提交不包含的问题数量,以便用户仍然可以继续,如果它不需要有一个问题跟踪数(补丁/修补程序的情况下工作)



文章来源: Jira issue number in git commit message