如何在Windows平台上编写Git服务器钩子?

5

我找不到任何关于Windows的Git Hook的清晰示例。我在Windows Server上使用Bonobo Git Server。我需要预提交和提交后钩子作为cmd或bat文件。预提交应检查空注释,提交后应发送有关提交的电子邮件通知。也许有人有类似的钩子并且愿意共享?


Hooks 不仅限于 bash/cmd/powershell。您可以使用任何语言,只要确保它们可以在服务器平台上执行即可。我在 Windows 上使用 Groovy 编写钩子非常成功。只需要配置 MIME 类型(还有,不要忘记 shebangs,它们会使您的脚本更具可移植性)。 - madhead
1个回答

3
经过一些实验,我发现
#!/Git/sh

echo This is the receive-hook >> result.txt

C:\inetput\wwwroot\Bonobo.Git.Server\App_Data\Repository\<your repository>\hooks\receive-hook

在远程执行了

git push

然后你可以像这样调用批处理:
#!/Git/sh

cmd //C "post-receive.cmd"

我理解的是否正确?你有两个文件 - receive-hook和post-receive.cmd,receive-hook会在git push时自动执行,并执行post-receive.cmd吗?我也尝试过这样做,但对我来说没有用。不知道我做错了什么... - Michal B.
我也尝试过类似的操作,并在文件命名方面进行了变化,但我无法使其触发。我将文件post-receive.cmd放置在存储库子目录hooks中(它的幸运文件夹已经存在于默认情况下),因此路径为"C:\inetpub\Git\SuperRepository1\hooks\post-receive.cmd"。当我在分支上提交并推送时,它不会触发cmd文件。 - Nasenbaer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接