首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Devops批量为每个产品待办事项创建任务

Azure Devops批量为每个产品待办事项创建任务
EN

Stack Overflow用户
提问于 2022-08-12 13:56:15
回答 1查看 161关注 0票数 0

我在Azure DevOps中有100个PBI(假设它们被命名为001- 100 )。每个PBI都应该有任务A和B的克隆作为子链接。如何在一次操作中将这些基本任务分配给所有100个PBI,而无需手动复制这些任务并将其分配给所有PBI?

我尝试过从PBI创建一个模板,已经定义了他们的子程序A‘en’,但是这些子链接并没有通过模板传递到另一个现有的PBI。

更倾向于导致积压

代码语言:javascript
复制
FeatureX
  -001
    -A' 
    -B' 
  -002
    -A'
    -B'
  -003
    -A'
    -B'
etc...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-18 02:28:03

如何在一次操作中将这些基本任务分配给所有100个PBI,而无需手动复制这些任务并将其分配给所有PBI?

您可以使用PowerShell脚本创建克隆的工作项,然后将新创建的工作项链接到Product项。

下面是一个PowerShell示例:

代码语言:javascript
复制
$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:工作项目-更新

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73335298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档