我们在gitblit中有一个预接收钩子,可以防止不需要的提交被推送到服务器。钩子逻辑有时会产生误报。很难做到绝对准确。我们希望能够以某种方式执行push命令的修改版本,从而忽略钩子。
我试过简单地发布git push --force
,但它不起作用。钩子不会被忽略。
有没有办法向git push
添加自定义参数并在gitblit groovy脚本中解析它们?
有点像
git push origin --ignoreOurCustomHook
然后在剧本里
if(someObject.getParameter('ignoreOurCustomHook') != null)
{
break
}
深入研究jgit文档到目前为止没有任何有用的东西。也许我可以使用
receivePacket.pckIn
手动解析整个命令,但它似乎是uber的核心,只是在我第一次尝试读取数据包时崩溃了。任何关于要调查的事情的建议都是值得赞赏的。
最佳答案
您需要对调试器进行一些尝试,但可以像您希望的那样发送推送参数。让它们进入groovy钩子机制可能很棘手。或许不是。我没看。
git push --receive-pack='git receive-pack --ignoreOurCustomHook' origin master
一旦你有工作,你应该能够设置一个自定义远程来处理这个更干净:
$ cat .git/config
...
[remote "ignoreHook"]
url = https://somewhere.com/r/myrepo.git
receivepack = git receive-pack --ignoreCustomHook
$ git push ignoreHook master
关于git - 如何忽略每个命令的Gitblit钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28149262/