Git 向中央回购协议(或类似内容)添加了预提交挂钩
好的,我已经找到了如何添加一个预提交钩子来检查引用JIRA项的消息Git 向中央回购协议(或类似内容)添加了预提交挂钩,git,gitlab,pre-commit-hook,Git,Gitlab,Pre Commit Hook,好的,我已经找到了如何添加一个预提交钩子来检查引用JIRA项的消息 #!/bin/sh test "" != "$(grep 'JIRA-' "$1")" || { echo >&2 "ERROR: Commit message is missing Jira issue number." exit 1 } 我把这个加入到我的本地回购协议中,一切都很酷。我对它所做的每一次提交都有这个提交消息。 然而,我感兴趣的是这样一种情况:一群开发人员都致力于他
#!/bin/sh
test "" != "$(grep 'JIRA-' "$1")" || {
echo >&2 "ERROR: Commit message is missing Jira issue number."
exit 1
}
我把这个加入到我的本地回购协议中,一切都很酷。我对它所做的每一次提交都有这个提交消息。
然而,我感兴趣的是这样一种情况:一群开发人员都致力于他们的本地回购协议,然后在GitHub上推/拉到远程主机。我想要的是一种类似的机制,当推送更改为GitLab上的远程回购时,它们必须类似地引用JIRA
做这件事的好方法是什么?正如在的中提到的,并在“”页中详细介绍,GitLab EE现在支持:
Git钩子规则(提交消息必须提及问题、防止标记删除等)
但同样,这是企业版(EE),而不是社区版(CE)。关于后者,请参见我的原始答案
原始答复(2013年8月) 您可以添加一个
pre-receive
钩子,该钩子将阻止推送到gitlab管理的裸repo的任何提交
然而,困难在于为通过GitLab创建的任何新项目(和回购)添加钩子
因为,没有简单的或本地的方法来实现这一点(现在是5.X和6.0)
现在,您可以在gitlab shell
的hooks目录中抛出钩子,然后进行修改以反映
Gitlab Shell/lib/Gitlab_projects.rb
def create\u hooks\u cmd
pr\u hook\u path=File.join(根路径,'hooks','post receive')
up\u hook\u path=File.join(根路径,'hooks','update')
“ln-s{pr#u hook_path}{full_path}/hooks/post-receive&&ln-s{up_hook_path}{full_path}/hooks/update”
结束
把我们自己的集中钩子放进去
GitLab 6.7企业版将具有允许此操作的“Git挂钩”