我使用gitlab管理本地开发服务器上的一些存储库,并且已经实现了挂钩,以便在提交成功时自动部署项目。这工作正常,但不幸的是,当我提交到任何存储库时,我的post-receive钩子运行,而不仅仅是钩子所用的存储库。
如何限制我的钩子,使其仅在推送到特定存储库时运行?
答案 0 :(得分:0)
我使用的是GitLab Omnibus Community Edition 8.0.5。据我所知,您正在寻找自定义挂钩,因此您只能在特定存储库上执行操作。为此,GitLab为 gitlab-shell 版本2.2.0(需要GitLab 7.5+)引入了自定义git钩子功能。您必须在'repositories / somegroup / somename.git /'目录中创建一个名为custom_hooks的新目录。对于我的设置,它看起来如下所示:
注意:在我的情况下,我还观察到,如果我从/ opt / gitlab / embedded / service / gitlab-shell / hooks文件夹中删除默认后接收挂钩文件,我的帖子保存在custom_hooks目录中的receive hook停止工作。因此,请确保不删除默认挂钩。只需将自定义挂钩放在custom_hooks目录中,一切都应该没问题。