【问题标题】:How to Create an Azure DevOps Iteration Across Multiple Projects via the APIs如何通过 API 创建跨多个项目的 Azure DevOps 迭代
【发布时间】:2020-06-25 17:18:24
【问题描述】:

这里的答案适用于单个项目,Azure DevOps Rest API - Unable To Create New Iteration

但是当您遍历多个项目时会失败,因为似乎 API 在上面的链接中的工作方式会创建一个迭代,该迭代的名称在所有项目中都是唯一的,而不是可以在多个项目中使用的迭代名称项目。

我得出的结论是,阅读我在网上可以找到的所有文档/信息是不可能的。因此,请检查这里是否有人找到了解决方案。对于这个要求,迭代名称需要在所有项目中都相同,因为我不会在这里让你感到厌烦。添加迭代时,此功能可通过用户界面使用,因此它无法通过 API 工作似乎很奇怪。

错误信息:

{
    "$id": "1",
    "innerException": null,
    "message": "VS402371: Classification node name Sprint 2020-06-24 is already in use by a different child of parent classification node {GUID removed}. Choose a different name and try again.",
    "typeName": "Microsoft.TeamFoundation.WorkItemTracking.Server.Metadata.ClassificationNodeDuplicateNameException, Microsoft.TeamFoundation.WorkItemTracking.Server",
    "typeKey": "ClassificationNodeDuplicateNameException",
    "errorCode": 0,
    "eventId": 3200
}

【问题讨论】:

  • 你是什么意思“但是当你循环多个项目时失败”?你尝试了什么?
  • 上面链接上的代码,但将 URL 替换为同一组织内的不同项目。返回 411 错误并且无法创建项目。为完整起见,将错误消息添加到原始问题中。

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


【解决方案1】:

根据我的测试,如果你替换了 URL 中的项目名称,Rest API 仍然可以成功运行。

这是我的测试步骤和结果:

对于项目 1: 网址:发帖

https://dev.azure.com/{Org name}/Project1/_apis/wit/classificationnodes/Iterations?api-version=5.0

结果:成功

对于项目2

网址:帖子

https://dev.azure.com/{Org name}/Project2/_apis/wit/classificationnodes/Iterations?api-version=5.0

结果:成功

我只更改项目名称。请求正文相同。结果,迭代路径不同。所以他们不会有冲突。

从报错信息来看,目标项目中似乎已经存在Iteration名称。

您可以在项目设置->项目配置->迭代中查看迭代名称。

或者您可以使用这个Rest API 来获取Classification Nodes 和子迭代。然后您可以通过API Result 中的分类节点(错误消息中的GUID)搜索节点(已经包含迭代名称)。

Get  https://dev.azure.com/{Orgname}/Project2/_apis/wit/classificationnodes?$depth=2&api-version=5.0

请确保此迭代名称在节点中是唯一的。

更新:

当然。我们可以通过 Rest API 存档。

您可以使用此rest api 将迭代添加到 Sprint 列表中。

网址:

Post https://dev.azure.com/orgname/Projectname/{team}/_apis/work/teamsettings/iterations?api-version=5.1

请求正文:

{
    "id":" Iteration identifier id"
}

然后可以将迭代添加到 Sprint 列表中。

【讨论】:

  • 忽略我......男生错误......错过了在代码中的实际请求中发布 JsonBody。冲刺的乐趣……我注意到的是,虽然这会创建项目迭代,但它实际上并没有在右侧 Backlog 页面上的 Sprint 列表中创建 Sprint。该部分是否仍需要手动完成,还是有办法通过另一个 API 来完成?
  • @MichaelCropper。请检查更新。我们可以通过 API 实现这一点。希望这会有所帮助。
  • 谢谢 Kevin - 确认一下,是团队名称还是团队 ID?
  • 团队名就够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2020-12-22
  • 2019-08-24
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多