我已经开始使用 Gerrit 2.16 作为代码审查工具,并希望配置服务器端挂钩以在更改提交/推送到 gerrit 时验证 git 提交消息。
尝试通过将脚本复制到 $GIT_DIR/hooks 来使用钩子(诸如 ref-update、patchset-created、change-merged 之类的脚本),在 gerrit 服务器上授予权限,但没有任何效果。
可以使用 gerrit UI 中的命令 Give 在本地存储库上启用 commit-msg 挂钩
例子:
git clone ssh://@:29418/Project1 && scp -p -P 29418 @:hooks/commit-msg /.git/hooks/
如果启用此钩子,将自动生成change_ID。
执行上述命令时,此脚本 commit-msg 将下载到本地存储库。
我的问题;我们能否在 gerrit 服务器上找到该脚本的路径,以便我可以修改并强制执行 git 提交消息验证?
或者还有其他方法来启用 gerrit 服务器端挂钩吗?
不,您不会在 Gerrit 服务器上找到 commit-msg 路径,并且 Git/Gerrit 不会自动使用您放在 $GIT_DIR/hooks 上的任何钩子。如果您想要本地挂钩,则需要手动将它们安装在 REPOSITORY/.git/hooks 本地目录中。
Gerrit 不会在其使用的存储库中运行任何标准 git 挂钩,但它确实有自己的挂钩机制,通过挂钩插件 https://gerrit-review.googlesource.com/admin/repos/plugins%2Fhooks. See here https://gerrit.googlesource.com/plugins/hooks/+/refs/heads/master/src/main/resources/Documentation/hooks.md有关受支持的 Gerrit 挂钩的更多信息。 Hooks 插件是一个核心插件 https://gerrit-review.googlesource.com/Documentation/config-plugins.html#core-plugins(它打包在 Gerrit war 文件中,可以在 Gerrit 初始化期间轻松安装)。
我建议你看一下Git::钩子 https://stackoverflow.com/questions/46100437/how-to-install-config-githooks-to-use-with-gerrit(用于实现 Git/Gerrit 挂钩的 Perl 框架)。我们公司用的,真的很棒。您可以使用它来实现您想要的以及更多...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)