【发布时间】:2017-12-07 15:07:18
【问题描述】:
Gitlab 本地托管在我的服务器上。当我推送提交时,接收后挂钩不起作用。我创建了钩子 git:git 的所有者并使其可执行。当我手动执行文件时,它可以工作。
【问题讨论】:
-
所有者应该是当前用户,但重要的是使用
chmod 755使其可执行。 -
我已经使文件可执行
Gitlab 本地托管在我的服务器上。当我推送提交时,接收后挂钩不起作用。我创建了钩子 git:git 的所有者并使其可执行。当我手动执行文件时,它可以工作。
【问题讨论】:
chmod 755使其可执行。
只要将自定义post-receive 放在repo 的custom_hooks 目录中,并且该目录和文件都归git 所有,GitLab 就会执行该自定义post-receive。另外,请确保您的钩子期望在标准输入上输入,而不是通过标准参数 - 我这么说是因为您提到手动运行脚本并且它有效。
不幸的是,自定义post-receive 错误并不容易调试。 pre-receive 错误将被发送回客户端。我建议在你的钩子中添加很多你自己的日志,这样你就可以准确地看到发生了什么。将第一个日志直接放在 shebang 之后,这样你就知道你的钩子被执行了。
https://docs.gitlab.com/ee/administration/custom_hooks.html#custom-git-hooks 的文档有一些有用的步骤,如果您还没有看过的话。
【讨论】: