似乎Bitbucket Cloud不允许用户服务器侧挂钩,因此无法实现预提交挂钩。但是它允许使用网络挂钩。但是,阅读BitBucket Cloud Documentation时,它说的是通知系统,而不是可用于允许或拒绝操作的某种挂钩
为事件创建Webhook之后,每次事件发生时,Bitbucket都会将描述事件的有效负载请求发送到指定的URL。因此,您可以将webhooks视为一种通知系统。
所以我的问题是:是否可以使用webhooks模拟用于允许或拒绝提交的某种过滤器?
答案 0 :(得分:1)
不。名称可能有点误导,但是git hooks和webhooks是无关的。
在Bitbucket(以及GitHub和GitLab等)中,webhooks仅用于在合格事件(例如推送或合并)后进行通知;当本地系统上发生错误的提交时,它们不会也不能进行干预。不过,您可以使用Webhook通知CI系统,并让CI系统测试您要在提交中指定的任何条件。
在这里也值得指出的是,预提交的挂钩是在客户端进行的-它们不会被回购协议推入,拉出或克隆,并且一次只能作用于一个回购协议副本。 (因此,我系统上的预提交钩子不会阻止您对系统进行错误的提交)。预先接收挂钩有些不同,因为它们可以保留在Bitbucket等集中式系统上并拒绝推送,但是出于安全原因,预先接收挂钩在诸如Bitbucket的公共回购主机上受到严格控制。