如何在 2 个已创建的特定工作项之间添加 link "parent/child" - Azure Boards

How to add a link "parent/child" between 2 certain already created work item - Azure Boards

目前,我们在 ci 环境(Azure Pipelines)中使用 Veracode 进行安全检查。 Veracode 有一个 azuredevops 插件,它在 azure boards 中创建缺陷作为工作项(bug、任务等)。但是,我们创建了一个特定的史诗“安全问题”,我们希望有一种方法可以通过管道 link,将一个已经创建的工作项作为 parent/child.

我一直在寻找方法(第一次使用 Azure API),但我没有找到任何特定的ci实现此集成的方法(我确实看到了,但在这种情况下,他们创建了一个工作项,而不是 linking 2 已经存在 ).

我确实与 Veracode 团队进行了交谈,但此功能当前不可用。但是我们可以添加自定义标签。

TL:DR:我如何通过管道自动化查询 azureboard 中的某些工作项,并将它们 link 作为 parent/child 到某个已创建的史诗。

提前致谢!

您可以使用 update work item REST API 在两个工作项之间添加一个 link。由于您在管道中使用 REST API,因此您可以在 PowerShell 任务中使用 运行 您的 REST API。下面是将子项 link 添加到现有工作项的示例:

$organization = "{Organization name}" 
$project = "{Project name}" 
$pat = "{PAT}"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $pat)))
$url = "https://dev.azure.com/$organization/$project/_apis/wit/workitems/{Work item id}?api-version=5.1" 
$contentType = "application/json-patch+json"
$body= @'
[
  {
    "op": "add",
    "path": "/relations/-",
    "value": {
      "rel": "System.LinkTypes.Hierarchy-Forward",//Add a child link
      ##"rel": "System.LinkTypes.Hierarchy-Reverse",//Add a parent link
      "url": "https://dev.azure.com/{Organization name}/{Project name}/_apis/wit/workItems/{Work item id}"
    }
  }
]
'@
Invoke-RestMethod -Uri $url -Method PATCH -ContentType $contentType -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $body  

您可以找到具有 this API 的工作项关系类型。

如果要查询工作项,可以尝试使用Wiql。请参考this example.