You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断Azure DevOps工作项变更来源及避免触发重复Webhook

Azure DevOps Webhook 问题解答

1. 如何通过Webhook负载区分工作项变更来源(UI/ Webhook触发的修改)

可以通过Webhook payload里的两个核心字段判断:

  • System.Source 字段:查看resource.revisions数组中最新修订记录的fields['System.Source']:
    • 手动在UI操作的变更,该值为Web
    • 通过API(包括Webhook调用的API)修改的变更,该值为RestApi
  • 修改者信息:如果Webhook使用的账户和手动操作的用户不同,resource.revisions[latest].fields['System.ChangedBy']中的用户标识可以辅助验证,但这个方式仅在Webhook账户独立时有效,不如System.Source通用。

2. 代码修改工作项时避免触发Webhook

无需创建专用用户的方案有三种:

  • API参数抑制通知:调用工作项更新API时,在请求体中加入suppressNotifications: true,这个参数会直接跳过Webhook等通知类事件的触发。示例请求片段:
    {
      "op": "replace",
      "path": "/fields/System.Description",
      "value": "Updated description"
    },
    {
      "suppressNotifications": true
    }
    
  • Webhook筛选条件限制:在Webhook的触发规则里添加条件,仅当System.Source等于Web时才触发。这样通过代码发起的RestApi来源修改就不会触发该Webhook。
  • 临时标记排除:代码修改时先给工作项添加一个自定义字段(比如Custom.SkipWebhook)并设为true,Webhook的触发条件排除该字段值为true的情况;修改完成后再重置这个字段。适合需要精细化控制的场景。

内容的提问来源于stack exchange,提问作者sasjaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:56:06