Github的任何插件都可以在提交中强制执行jira问题密钥

时间:2019-03-07 23:03:47

标签: git github jira githooks

我知道Bitbucket中的插件很少,例如YACC,您可以直接将其安装在Bitbucket中,并且可用于存储库以启用jira预接收提交挂钩。 Github有任何类似的东西吗? 我正在寻找的是在Github中启用某种挂钩的最佳,最可行的解决方案,该挂钩强制所有提交的内容都需要具有有效的jira发行密钥。如果有什么也可以创建分支,但目前对我来说不重要的事情,那会更好。

请提供有关如何在Github Enterprise中启用该功能的步骤的帮助。

4 个答案:

答案 0 :(得分:0)

Github无法做到这一点。

只有Github Enterprise支持pre-receive钩子,甚至提供了一个在提交消息中执行JIRA问题实施的示例-https://github.com/github/platform-samples/blob/master/pre-receive-hooks/require-jira-issue.sh

或者,您可以让您的团队成员设置本地pre-pushpre-commit挂钩来执行。

答案 1 :(得分:0)

此功能可以通过集中式解决方案来解决,如Datree.io这样的服务器端git-hooks。 它具有内置策略,例如:

  1. 检测并阻止merging of secrets
  2. 强制执行Jira ticket integration-在请求请求名称/提交消息/分支名称中提及工单编号
  3. Link commit message to a Jira ticket
  4. Link pull request title to a Jira ticket

免责声明:我是Datrees创始人之一

答案 2 :(得分:0)

如果您设置了CI来对分支进行检查,那么我已经按照如下方法完成了一个分支管道:

       - npm ci
       - npm run lint
       - npm test
       # == Check that all commits since the base branch (dev) contain ACME- for ticket reference ==
       # Fetch the merge base for our project
       - git fetch origin dev:dev
       - >
         echo "-- Checking ACME- prefix on commits --"
         && [[ `git log --oneline dev.. | grep -v 'ACME-' | wc -l` -eq 0 ]]
         && echo "Passed"
         || (echo "Failed for the following commits:"
         && git log --oneline dev.. | grep -v 'ACME-'
         && [[ 0 -eq 1 ]])

自然地,您可以避免||。 &&体操,如果您将其提取到shell脚本文件中。

答案 3 :(得分:0)

如果您的意思是GitHub Enterprise,则可以使用similar tools you already mentioned on the Jira side根据Jira信息​​验证提交详细信息。

对于托管的GitHub版本,您将选择本地钩子(如前所述)。 (最有效的方法是同时使用服务器端钩子和本地钩子)。如果不确定如何构造和安装本地钩子脚本this tool has a "wizard",该脚本将指导您完成一些步骤并最终吐出脚本。< / p>