2013-08-12 127 views
2

我有一个gitolite服务器,我想设置一个服务器端钩子,这样当任何人克隆位于其上的存储库时,就会向管理员发送一封电子邮件。现在看来,这只能做推,但不能克隆..我错了吗?如何设置git钩子以克隆发送电子邮件

回答

1

从git没有服务器端获取挂钩。 gitolite有PRE_GITPOST_GITtriggers你可以用它来检测什么时候有人正在读取(运行git-upload-pack),但是克隆和正常读取之间的区别是人类语义。

如果客户端在协商中没有提供任何本地提交,但它仍然可能只是某人正在手动执行提取操作,那么检测可能成为克隆的唯一方法就是在协议层内进行。最后,因为git是分布式的,所以从服务器克隆或从其他地方克隆(可能是同事的计算机/ usb棒或同一台计算机中的不同回购站),然后从服务器获取其余部分基本上是相同的,因为存储库之间没有强大的绑定。

1

由于没有一个真正的hook on git clone (server side),留下你一个可能的解决方法:

Gitolite留下日志每个操作的,我说明“Is there a git activity log?”。
但是,它只记录混帐上传包的情况下,这意味着你知道混帐拉和混帐克隆,不知道哪个操作刚发生(拉或克隆)

如果在安装该监视器gitolite cron作业日志,当检测到git-upload-pack实例的新发生时,您可以发送电子邮件。

相关问题