git:谁推进后接收钩子

时间:2010-09-21 15:46:50

标签: git githooks

如何确定谁推送到存储库?

即。有人做git push origin master并且在origin回购的后接收挂钩中我需要使用某人的姓名或电子邮件。

3 个答案:

答案 0 :(得分:10)

如果您使用SSH协议将更改推送到服务器,并且每个用户在服务器上都有自己的帐户,那么您的脚本应该作为正在执行推送的用户运行。因此,您应该可以使用whoamiid -un来获取推送人的用户名。

如果您不使用此设置,跟踪谁正在推送的最佳方法可能是使用强大的Git身份验证和授权系统Gitolite。在Gitolite中,您可以使用update.secondary and post-update.secondary hooks,它将GL_USER环境变量设置为当前的Gitolite用户。

答案 1 :(得分:0)

我不确定Git是否可以管理这种访问控制。

这就是为什么你有基于ssh的包装器,如gitosisgitolite,它们将提供你所需的足够的身份验证级别。

答案 2 :(得分:0)

你不能说使用Git。如果使用SSH进行推送,则可以使用SSH获取用户名,如果使用gitolite等用户管理前端,则可以使用 获取用户名,如果使用HTTP身份验证,您可以使用您的网络服务器获取用户名,但Git网络协议不会传输任何用户名。