我正在使用 Gitosis 来管理一组存储库。我遇到的问题是 Gitosis 没有记录哪个用户推送了特定的提交。我拥有的唯一信息是提交本身中的“作者”和“提交者”字段,这些可以由“推送者”设置为任何内容。
现在我意识到单个“推送”可以向 Gitosis 服务器发送很多很多提交,并且每个提交都是由个人开发人员创建的,所以我应该限制自己说我只对头部提交感兴趣被推送的分支。这个提交将(应该!)由创建发布的人创建,所以我想知道那是谁,所以如果有问题我可以去打败他们。
我的想法是在服务器上使用一个钩子将头部提交的 Committer 与 gitosis 用户名进行比较。如果他们都是“john.doe@example.com”,那么推送者就是提交者并且允许推送,否则被拒绝。这可行吗?我应该使用哪个钩子 - 我认为“更新”是一个,尽管预接收和后接收也是可能的。
我还考虑过使用 post-receive 挂钩来标记头部提交,让它将推送者的用户名放在带注释的标记消息中。这样做的问题是,查看提交的人不一定知道标签。
我愿意接受有关如何执行此操作的其他建议。基本思想是我想知道哪个 Gitosis 用户推送到了特定的分支。
如果我能找出是谁推送了标签(或将推送者限制为标签者),那就更好了!
凯文