如何使用github webhooks阻止特定的推送?

时间:2015-05-28 09:53:17

标签: git github githooks webhooks payload

我正在尝试保护我的github repo免受某些特定推送(例如推送<<<<<等冲突标记。

首先,我尝试编写一个pre-commit git hook来阻止这些特定的提交。然后意识到github存储库不接受预提交挂钩,我必须在客户端为每个贡献者安装它们。

这不是一个简洁的解决方案,因为有人可能忘记在克隆后安装钩子。也可以覆盖预提交挂钩。

然后我了解了github webhooks。他们可以在推送存储库期间通过有效负载通知。

是否可以通过webhook检查和阻止推送?

1 个答案:

答案 0 :(得分:4)

Github不支持放置服务器端挂钩,因此您无法在远程存储库上运行验证。但是在技术上可以作为一个hack,你可以在其中设置另一个中间登台存储库,其中包含你想要的所有这些钩子,这是github之前的一种可写镜像。人们将他们的更改推送到这个中间存储库,通过钩子验证它们并将相同的更改推送到github存储库。恕我直言,我会建议不要添加这样的存储库,除非你的开发人员经常破坏你的东西。

另一方面,如果您继续执行此类实现,请使用update hook而不是pre-commit,因为它针对每个推送的ref运行