我想监控我的 git 存储库中的克隆事件,但是我找不到任何说明如何设置或如何检索此信息的内容。
这可能吗?如果是这样,如何设置以及如何检索日志记录信息?
最佳答案
您可以使用post-checkout
Hook 来更新服务器上的数据库或文件。此 Hook 在客户端运行(即执行克隆的人将执行脚本),因此您需要从该角度设计脚本。此外,可以通过将 --no-checkout
选项添加到 git clone
来克隆存储库而不执行此 Hook 。
一个简单而可靠的方法是让服务器运行一个小型的 RESTful 网络服务,您的 Hook 可以使用 curl
或一些类似的工具调用该服务。例如:
#!/usr/bin/env python
import socket, sys, urllib, pycurl
service_url = "https://my.server.dns/service.php"
data = urllib.urlencode({
'prev': sys.argv[1],
'new': sys.argv[2],
'branch': sys.argv[3],
'host': socket.gethostname()
})
c = pycurl.Curl()
c.setopt(pycurl.URL, service_url)
c.setopt(pycurl.POSTFIELDS, data)
c.perform()
参见 http://www.kernel.org/pub/software/scm/git/docs/githooks.html .
关于git 存储库克隆日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719936/