gitlab13.12.*配置file hooks或custom hooks钩子
gitlab不同的版本对file hooks 或者也叫custom hooks的目录什么的不一样,我这里只是简单以我试用的13.12.*为例来说明如何加一个钩子。
注意一定要和webhooks区分开。webhooks和file hooks是完全俩东西
设置hooks路径
编辑gitlab.rb
文件,找到并按照如下编辑:
gitlab_shell['custom_hooks_dir'] = "/etc/gitlab/hooks"
gitlab.rb
位于/etc/gitlab/config/
路径下
配置好了之后 gitlab-ctl reconfigure
即可。
注意:在有的文档里面 直接在/opt/gitlab/embedded/service/gitlab-rails/file_hooks
下面添加可执行文件比如pre-receive
,也可以,我没有测试就不发表意见了。
添加webhooks钩子
在 /etc/gitlab/hooks
可以添加三个目录
1、pre-receive.d
2、post-receive.d
3、update.d
三个目录下添加可执行的脚本,都可以实现对应的狗子,对应的钩子写法本篇不解释。
post-receive,挂钩在整个过程完结以后运行,可以用来更新其他系统服务或者通知用户。也就是说,他可以和pre-receive一样读取到输入数据,但是并不能阻断整个提交的执行。
pre-receive,在远程服务器上开始批量更新引用之前,该钩子脚本被触发执行。该钩子脚本的退出状态决定了更新引用的成功与否。所以一般根据一定的规则判断之后阻断过程就使用这个钩子。
update 貌似和post-receive有重复,没啥鸟用。
所以把需要验证脚本放在pre-receive.d下面即可。
经过我的测试,添加了钩子之后并不需要gitlab-ctl reconfigure
。