git - 拒绝来自不良身份的提交

时间:2013-10-24 22:16:39

标签: git

所以我们刚刚将FishEye / Crucible用于开发服务器。我们的git设置为强制公钥 - 私钥密码,但是一些开发人员喜欢使用多台机器而不是像他们想象的那样使用多于一个密钥。或者他们使用他们用于个人开发的相同机器并使用他们的个人电子邮件和身份。所以他们的.gitconfig没有正确的身份。它们可能有三个或四个不同的身份,因为它们来自不同的机器([user1] @ [domain1],[user1] @ [domain2]和[user1] @ [domain3])。 FishEye / Crucible完全不喜欢这样。它将这些中的每一个视为不同的提交者。我必须手动进入并为每个项目设置每个用户的映射。

是否存在git hook或阻止用户提交的东西,除非他们的身份格式正确?因此,强制该身份的电子邮件采用@ [domain1]格式,并拒绝来自任何其他域的任何推送请求(如@ [domain2]或[domain3])。我已经看了一下,但我不知道在哪里寻找这个。

1 个答案:

答案 0 :(得分:2)

您可以使用预接收更新挂钩,如果包含与您的条件不匹配的作者的提交,则拒绝推送。

使用 update 的优点是,您可以选择性地仅拒绝包含此类提交的分支(如果推送更新多个分支)。

Git/gitosis: How to check validity of user name and email?中得分最高的答案包含如何使用预接收检查提交的示例;将其更新为 update 挂钩应该很简单,只需简短地查看githooks manpage