我有GitLab 8.16.4并且有很多团体有很多项目。我想创建一个位置,其中许多脚本在循环中作为不同的钩子运行(就像在此解决方案Chaining git hooks中),并且在每个项目中使custom_hooks
文件夹作为前面提到的位置的符号链接。
我有测试项目:/var/opt/gitlab/git-data/repositories/test/test.git/
。如果我用钩子(/var/opt/gitlab/git-data/repositories/test/test.git/custom_hooks/update
)创建那个文件夹,则调用它。但是如果文件夹是符号链接到其他位置,则不会调用钩子。
我检查了文件夹/文件的所有者,但它们没问题。
项目:
lrwxrwxrwx 1 gitlab gitlab 31 Feb 6 13:37 custom_hooks -> /home/user/custom_hooks
/家庭/用户/ custom_hooks:
drwxr-xr-x 2 gitlab gitlab 4096 Feb 6 13:31 custom_hooks
lrwxrwxrwx 1 gitlab gitlab 10 Feb 6 13:26 /home/user/custom_hooks/update -> hook-chain
我的配置有什么问题,或者GitLab不允许从项目中的文件中调用其他本地化的挂钩吗?
答案 0 :(得分:0)
最终解决方案:
post-receive.d
创建文件夹pre-receive.d
,update.d
,myhooks
和myhooks
hook-chain
创建hook-chain
脚本以及由其运行的正确挂钩为myhooks
中的脚本[root@server ~]# ll /opt/gitlab/embedded/service/gitlab-shell/hooks/update.d/
total 4
lrwxrwxrwx 1 gitlab gitlab 68 Apr 18 08:47 update -> /opt/gitlab/embedded/service/gitlab-shell/hooks/myhooks/hook-chain
创建符号链接,如:
gitlab
当然,用户translate
必须是所有脚本的所有者