我在Azure DevOps中有100个PBI(假设它们被命名为001- 100 )。每个PBI都应该有任务A和B的克隆作为子链接。如何在一次操作中将这些基本任务分配给所有100个PBI,而无需手动复制这些任务并将其分配给所有PBI?
我尝试过从PBI创建一个模板,已经定义了他们的子程序A‘en’,但是这些子链接并没有通过模板传递到另一个现有的PBI。
更倾向于导致积压
FeatureX
-001
-A'
-B'
-002
-A'
-B'
-003
-A'
-B'
etc...发布于 2022-08-18 02:28:03
如何在一次操作中将这些基本任务分配给所有100个PBI,而无需手动复制这些任务并将其分配给所有PBI?
您可以使用PowerShell脚本创建克隆的工作项,然后将新创建的工作项链接到Product项。
下面是一个PowerShell示例:
$token = "PAT"
$url="https://dev.azure.com/ORG/_apis/wit/wiql?api-version=5.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$JSON = @'
{
"query": "SELECT [System.Id], [System.WorkItemType], [System.State],[System.AreaPath],[System.Tags],[System.CommentCount],[System.ChangedDate] FROM workitems WHERE [System.TeamProject] = 'projectname' AND [System.WorkItemType] = 'Product Backlog item' ORDER BY [System.ChangedDate] DESC"
}
'@
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -Body $JSON -ContentType application/json
ForEach ($workitemid in $response.workitems.id)
{
echo $workitemid
$witType="task"
$url2= "https://dev.azure.com/org/project/_apis/wit/workitems/`$$($witType)?api-version=6.0"
$JSON2 = @'
[
{
"op": "add",
"path": "/fields/System.Title",
"from": null,
"value": "Sample task"
}
]
'@
$response2 = Invoke-RestMethod -Uri $url2 -Headers @{Authorization = "Basic $token"} -Method Post -Body $JSON2 -ContentType application/json-patch+json
$ClonetaskAID= $response2.id
$url3= "https://dev.azure.com/org/project/_apis/wit/workitems/`$$($witType)?api-version=6.0"
$JSON3 = @'
[
{
"op": "add",
"path": "/fields/System.Title",
"from": null,
"value": "Sample task"
}
]
'@
$response3 = Invoke-RestMethod -Uri $url3 -Headers @{Authorization = "Basic $token"} -Method Post -Body $JSON3 -ContentType application/json-patch+json
$ClonetaskBID= $response3.id
$url1 ="https://dev.azure.com/org/_apis/wit/workitems/$($workitemid)?api-version=6.0"
$JSON1 = "
[
{
`"op`": `"add`",
`"path`": `"/relations/-`",
`"value`": {
`"rel`": `"System.LinkTypes.Hierarchy-Forward`",
`"url`": `"https://dev.azure.com/org/_apis/wit/workItems/$ClonetaskAID`"
}
},
{
`"op`": `"add`",
`"path`": `"/relations/-`",
`"value`": {
`"rel`": `"System.LinkTypes.Hierarchy-Forward`",
`"url`": `"https://dev.azure.com/org/_apis/wit/workItems/$ClonetaskBID`"
}
}
]
"
$response1 = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method PATCH -Body $JSON1 -ContentType application/json-patch+json
}您可以使用WIQL:Wiql -- Wiql查询获取所有工作项。
然后,您可以基于Task和B.RESTAPI:工作项-创建创建工作项。
最后,可以将工作项链接到PBI。Rest:工作项目-更新
https://stackoverflow.com/questions/73335298
复制相似问题