Azure DevOps中git.pullrequest.approved事件在UI中不可用的问题咨询
Azure DevOps PR批准触发Webhook问题解答
问题描述
我尝试在Azure DevOps中创建拉取请求(PR)批准时触发的Webhook。根据微软官方文档,存在git.pullrequest.approved事件类型,但设置服务钩子订阅时,该事件未在可用PR触发事件列表中显示,仅能看到git.pullrequest.created、git.pullrequest.updated等事件。现咨询:
git.pullrequest.approved事件是否实际可用?若可用,如何在Azure DevOps UI中启用或找到它?- 若该事件不存在,跟踪PR批准的最佳替代方案是什么?是否可使用
git.pullrequest.updated并添加投票变化过滤?能否提取PR批准的时间戳?
解答
1. git.pullrequest.approved事件的可用性
git.pullrequest.approved事件目前无法通过Azure DevOps UI直接配置,它属于服务钩子的非UI可见事件类型,仅支持通过REST API创建订阅,不会出现在UI的事件选择列表中。
如果需要使用该事件,只能通过调用Azure DevOps REST API创建订阅:构造包含eventType: "git.pullrequest.approved"的请求体,调用POST https://dev.azure.com/{organization}/{project}/_apis/hooks/subscriptions?api-version=7.1-preview.1接口完成创建。
2. 跟踪PR批准的替代方案
使用git.pullrequest.updated事件是当前UI中实现需求的最优方案,具体操作如下:
- 设置投票变化过滤:创建
git.pullrequest.updated服务钩子订阅时,添加过滤规则,限定仅当PR的评审投票状态变更为Approved(对应数值为10)时触发Webhook。 - 提取批准时间戳:Webhook接收到的事件 payload 里,
resource.reviewers数组中对应评审者的对象包含voteDate字段,该字段即为该评审者批准PR的时间戳,可直接读取使用。
内容的提问来源于stack exchange,提问作者pm141088
相关产品推荐
相关产品推荐

