如何通过Azure DevOps API编程获取指定Sprint的计划及总工作项数据
目前Azure DevOps确实没有直接返回指定Sprint计划工作项数、总工作项数的现成REST API,需要通过组合查询实现,你提出的校验工作项添加到迭代路径的时间是否早于迭代开始时间的思路完全可行,只要调整查询方式即可避免效率问题,具体实现逻辑如下:
核心统计规则
- 总工作项数:指定迭代路径下,所有纳入Velocity统计口径的工作项(通常为用户故事、需求类工作项)的总数
- 计划工作项数:迭代正式开始前,就已经被添加到当前迭代路径的工作项总数,对应Velocity图表里的浅蓝色部分
- 非计划工作项数:
指定Sprint内总工作项数 - 计划工作项数

具体实现步骤
- 首先调用Azure DevOps迭代查询接口,获取目标Sprint的迭代路径、迭代开始时间两个核心参数
- 用WiQL(工作项查询语言)发起查询,过滤
System.IterationPath等于目标迭代路径、且工作项类型符合你团队Velocity统计规则的所有工作项,得到工作项ID列表,列表长度就是总工作项数 - 批量查询上述所有工作项的修订历史,筛选出「修订时间早于迭代开始时间、且修订内容为将IterationPath修改为当前目标迭代路径」的工作项ID,去重后的数量就是计划工作项数
- 直接套用公式即可算出非计划工作项数
效率说明
正常单个Sprint的工作项数量通常在几百以内,WiQL一次查询即可返回所有符合条件的工作项,修订历史也支持批量查询,整个流程最多调用3次接口即可完成所有统计,不会有效率问题。
内容的提问来源于stack exchange,提问作者BlueChips23
相关产品推荐
相关产品推荐

