0

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

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

4

1 回答 1

2

您可以使用预接收更新钩子并拒绝推送,如果它包含与您的标准不匹配的作者的提交。

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

Git/gitosis中得分最高的答案:如何检查用户名和电子邮件的有效性?包含如何使用pre-receive检查提交的示例;简单地看一下githooks 手册页,将其更新为更新挂钩应该很简单。

于 2013-10-24T22:18:51.980 回答