【问题标题】:How to track who pushed into a Gitosis repository?如何跟踪谁推入了 Gitosis 存储库?
【发布时间】:2010-07-27 13:06:03
【问题描述】:

我正在使用 Gitosis 来管理一组存储库。我遇到的问题是 Gitosis 没有记录哪个用户推送了特定的提交。我拥有的唯一信息是提交本身中的“作者”和“提交者”字段,“推送者”可以将它们设置为任何内容。

现在我意识到,一次“推送”可以向 Gitosis 服务器发送很多很多提交,并且每个提交都是由单个开发人员创建的,所以我应该限制自己说我只对在被推送的分支上进行头部提交。这个提交将(应该!)由创建发布的人创建,所以我想知道那是谁,所以如果有问题我可以去打败他们。

我的想法是在服务器上使用一个钩子将头部提交的 Committer 与 gitosis 用户名进行比较。如果他们都是“john.doe@example.com”,那么推送者就是提交者并且允许推送,否则被拒绝。这可行吗?我应该使用哪个钩子 - 我认为“更新”是一个,尽管预接收和后接收也是可能的。

我还考虑过使用 post-receive 挂钩来标记头部提交,让它将推送者的用户名放在带注释的标记消息中。这样做的问题是,查看提交的人不一定知道标签。

我愿意接受有关如何执行此操作的其他建议。基本思想是我想知道哪个 Gitosis 用户推送到了特定的分支。

如果我能找出是谁推送了一个标签(或将推送者限制为标签者)那就更好了!

凯文

【问题讨论】:

    标签: git gitosis


    【解决方案1】:

    AFAIK gitosis 完全由 SSH 决定(通过公钥认证)谁可以访问 repo,谁不可以。从那里到 git-serve 实例,所有用户仅由“作者”和“提交者”字段标识。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2010-10-26
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多