2010-07-27 69 views
1

我正在使用Gitosis来管理一组存储库。我遇到的问题是Gitosis没有保存哪个用户推送特定提交的记录。我所拥有的唯一信息是提交本身的“作者”和“提交者”字段,这些可以通过“推送者”设置为任何内容。如何跟踪推送到Gitosis存储库的人员?

现在我意识到单个“推送”可以向Gitosis服务器发送很多很多提交,并且每个提交都是由单个开发人员创建的,所以我应该限制自己说我只对头部提交了被推送的分支。这个提交将会(应该)由创建该发布的人员创建,所以我想知道是谁,以便在出现问题时可以将其击败。

我的想法是在服务器上使用钩子来比较头提交的提交者和gitosis用户名。如果他们都是“[email protected]”,那么推送者是提交者,推送是允许的,否则将被拒绝。这是可行的吗?我应该使用哪个钩子 - 我认为“更新”是一个,尽管预先接收和后接收也是可能的。

我还考虑过使用post-receive钩子来标记头部提交,让它把推入者的用户名放在带注释的标签消息中。与此相关的问题是,查看提交的人不一定会意识到该标签。

我接受其他建议如何做到这一点。基本的想法是我想知道哪个Gitosis用户推送到特定的分支。

如果我能找出谁推动标签(或限制推动者为标签),那会更好!

凯文

回答

0

AFAIK Gitosis的离开它完全由SSH来确定(通过公共密钥认证)谁被允许访问回购,谁不是。从那里到git-serve实例,所有用户都只能通过“作者”和“提交者”字段进行标识。

无论如何只是使用'author'和'commiter'字段有什么问题?如果您担心人们欺骗他们,请使用两个存储库:“开发”和“发布”,并在您的gitosis.conf中使用更加精细的访问控制方案,以允许对特定密钥的“发布”进行写入访问。