【发布时间】:2015-06-15 12:09:02
【问题描述】:
我正在使用 VSO REST API,并且对如何分配迭代和区域 ID 有疑问。具体来说,为什么当我将工作项分配给根Iteration或Area时,当我查询分类节点时没有返回为WIT返回的ID?
例如,假设我在查询 /DefaultCollection/my project/_apis/wit/classificationnodes?$depth=2 时有这个层次结构
- 我的项目:id=1234
- 区域 1:id=5678
- 区域 2:id=9012
- 区域 1:id=5678
然后我使用 /DefaultCollection/_apis/wit/workItems/1?$expand=all 查询工作项
如果工作项位于区域 1 或区域 2,则 System.AreaId 字段与预期相同(分别为 5678 和 9012)。但是,如果我将工作项分配给我的项目,则 System.AreaID 是我查询所有分类节点时未包含的某个值。 ID 之间似乎存在某种关系,因为它们是串行的(例如,分类节点查询返回的 ID 是区域的 1232 和迭代的 1233),但我似乎找不到查询的方法获取工作项查询返回的实际 ID。
事实上,当我查询所有分类节点时,不仅为工作项返回的 ID 不存在,如果我将工作项分配给根迭代和区域,则为两个字段返回的 ID 是相同的值不包括在分类节点查询中。
我需要的是一种查看工作项并找出它所属的区域和迭代的方法。我可能可以对返回的路径字段字符串做一些事情,但这似乎容易出错,因为用户可以更改它们。
****编辑**** 以上似乎是 REST API 中的一个错误,但对于遇到这篇文章的任何人来说,有一种方法可以通过路径字符串获取可用的迭代 ID。像这样构建您的 REST 调用:
/DefaultCollection/[项目名称]/_apis/wit/classificationnodes/iterations/Release 1/Sprint 1(等等)
【问题讨论】:
-
为什么需要区域或迭代 ID?价值用处不大……
-
我正在编写一个工具,它需要从工作项服务挂钩事件中反向查询 VSO。在回拨期间,我需要能够将工作项关联到一个区域,并将迭代关联到我的数据库中的映射项。使用用户可编辑的字符串(路径)作为识别数据库中的一行(映射区域或迭代)的方法似乎是不明智的。
-
@LaneGoolsby 需要注意的是,默认的迭代路径,当没有设置(这里设置的是项目名称而不是/Release x/ Sprint Y)时访问会报错。跨度>
标签: tfs azure-devops