我们正在使用Azure DevOps webhooks从客户项目中调用服务。
我们的意图是在他们完成对主分支的PR后,无缝执行一些操作。
在我的测试中,我设置了一个Webhook,如下所示:
您可以看到,我们已经配置了Webhook,仅在特定存储库上的“尝试合并拉取请求”时才会被调用,在成功合并时进入“master”分支。
我观察到的是,这会导致我们的Webhook在添加提交到拉取请求时被触发,而不仅仅是在拉取请求完成时。
正确的机制是什么,只有在成功完成特定分支的PR时才执行操作?
我们是否应该在我们的代码上进行验证,还是应该让我们的客户在服务钩子订阅中进行不同的设置?
我们的意图是在他们完成对主分支的PR后,无缝执行一些操作。
在我的测试中,我设置了一个Webhook,如下所示:
![Event hook subscription settings](https://istack.dev59.com/VsTid.webp)
我观察到的是,这会导致我们的Webhook在添加提交到拉取请求时被触发,而不仅仅是在拉取请求完成时。
正确的机制是什么,只有在成功完成特定分支的PR时才执行操作?
我们是否应该在我们的代码上进行验证,还是应该让我们的客户在服务钩子订阅中进行不同的设置?
body.resource.pullRequestStatus != "completed"
。此时我们必须返回一个成功的状态码(即使实际上我们只想接受状态为完成的请求),否则Webhook似乎会失去其订阅。 - ElFik