【问题标题】:Why is Azure Devops IterationId an Int for Workitem History?为什么 Azure Devops IterationId 是工作项历史的 Int?
【发布时间】:2020-07-19 17:24:01
【问题描述】:

我正在使用 Azure DevOps API 来查询工作项,以了解迭代如何随时间变化的历史记录。

所以我从一个典型的工作项查询开始,如下所示:

https://[ourserver]/[collection]/[project]/_apis/wit/workItems/[wi-id]/updates

在返回的 JSON 中,我可以看到迭代变化。到目前为止一切顺利。

"System.IterationId": {
   "oldValue": 11068,
   "newValue": 11529
},

我的问题是当我尝试检索与这些 ID 关联的完整迭代记录时。 REST API 似乎对 ID 使用 GUID,而不是整数。这是一个例子:

https://[ourserver]/[collection]/[project]/[team]/apis/work/teamsettings/iterations

{
   "id": "3c117833-d770-47f1-a483-65461c440721",
   "name": "Sprint 3",
   "path": "aa\\bb\\cc\\Sprint 3",
   "attributes": {
      "startDate": "2020-02-05T00:00:00Z",
      "finishDate": "2020-02-18T00:00:00Z",
      "timeFrame": "past"
}

那么,工作项历史记录中的 System.IterationId 与 REST API 中用于迭代 ID 的 GUID 之间的神奇联系在哪里?

【问题讨论】:

    标签: azure-devops azure-devops-rest-api


    【解决方案1】:

    您可以使用Classification Nodes - Get Classification Nodes Rest API 获取迭代 id:

    GET https://dev.azure.com/{organization}/{project}/_apis/wit/classificationnodes?ids={ids}&api-version=5.1
    

    您也可以使用 URL 参数 $depth=2 来获取孩子。

    在结果中,您将获得id,即您在工作项更新中获得的System.IterationId 值,以及identifier,这是您通过teamsettings/iterations api 获得的GUID。

    【讨论】:

    • 谢谢@Shayki,99% 在那里!在我的示例中,我能够找到新的 id 11529,但之前的 id 11068 没有返回任何内容。似乎 AzDo 可能不记得已删除的项目。我找不到任何 AsOf 参数来添加 URL,你遇到过这个问题吗?
    • @sisdog 嗯,我之前没试过,我不认为你有这个 API 的 AsOf :(
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2019-05-22
    相关资源
    最近更新 更多