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

发布于