GitLab CE 提交后自定义挂钩不起作用

str*_*man 6 git hook gitlab

我使用 GitLab 社区版 8.2 并想添加提交后挂钩。

我创建了具有权限的文件 path_to_project.git/custom_hooks/post-commit

$ ls -l1 custom_hooks/post-commit
-rwxr-xr-x 1 git git 45 Dec 14 21:31 custom_hooks/post-commit
Run Code Online (Sandbox Code Playgroud)

和内容

#!/bin/bash
echo "test custom" > /tmp/hook
Run Code Online (Sandbox Code Playgroud)

如此处所述:http : //doc.gitlab.com/ce/hooks/custom_hooks.html

但它不起作用(通过 Web 界面提交检查)。我也尝试过“正常”的 git 钩子放置(project.git/hooks/post-commit),但它也不起作用。

Dia*_*ond 8

post-commit是一个客户端钩子,你不能在服务器上实现它。

根据 Gitlab 文档:http ://doc.gitlab.com/ce/hooks/custom_hooks.html ,您可以在服务器上实现服务器端自定义钩子 ( pre-receive, post-receive, and update)。

服务器端 git hook 的示例包括 pre-receive、post-receive 和 update。有关每种挂钩类型的更多信息,请参阅Git SCM 服务器端挂钩

如果要自定义客户端钩子,则需要更改原始钩子代码或将自定义脚本放在客户端的.git/hooks. 在此处阅读更多信息:什么是 Git 钩子?

这是关于自定义钩子的全部内容:Customizing Git - Git Hooks

  • 好吧,请再次阅读客户端和服务器端钩子之间的区别。该文档是关于服务器端挂钩的。这些位于`... gitlab-shell/hooks`下的服务器上。检查这个:https://gitlab.com/gitlab-org/gitlab-ce/issues/1742 (2认同)