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

如何批量恢复被错误修改组件的WorkItems旧组件值

批量恢复Azure DevOps工作项组件的解决方案

步骤1:获取被误改的工作项ID列表

使用你提供的WIQL查询API,替换请求URL中的{queryid}为目标查询ID(该查询需筛选出所有被误修改组件的工作项),发送GET请求:

GET https://dev.azure.com/astera/Centerprise/_apis/wit/wiql/{queryid}?api-version=6.0

请求头需带上认证信息(推荐使用PAT令牌,格式为Authorization: Basic {base64编码的PAT})。解析返回的JSON数据,提取workItems数组中的id字段,得到所有需要处理的工作项ID列表。

步骤2:提取每个工作项的旧组件值

遍历步骤1得到的工作项ID,逐个调用工作项历史记录API,替换URL中的{id}为当前工作项ID:

GET https://dev.azure.com/astera/Centerprise/_apis/wit/workItems/{id}/updates?api-version=5.1

在返回的updates数组中,找到最近一次修改System.Component字段的记录(可通过fields.System.Component是否存在oldValue判断),提取oldValue字段值,这就是该工作项需要恢复的原始组件。

步骤3:批量恢复组件值

使用Azure DevOps的批量更新工作项API,构造PATCH请求来批量修改工作项组件。请求URL格式为:

PATCH https://dev.azure.com/astera/Centerprise/_apis/wit/workitemsbatch?api-version=6.0

请求头需包含Content-Type: application/json-patch+json和认证信息。请求体示例如下(建议每批处理不超过50个工作项,避免触发API速率限制):

[
  {
    "id": 12345,
    "fields": {
      "System.Component": "原始组件名称1"
    }
  },
  {
    "id": 67890,
    "fields": {
      "System.Component": "原始组件名称2"
    }
  }
]

关键注意事项

  • 先测试再批量:先选取5-10个工作项进行测试操作,确认恢复逻辑正确后再执行全量批量操作。
  • 处理API速率限制:Azure DevOps API存在请求速率限制,批量操作时需控制并发数或添加适当延迟,避免请求被拒绝。
  • 提前备份:操作前导出所有目标工作项的当前状态(可通过WIQL查询导出CSV),作为回滚预案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:32:36