您可以使用以下代码片段,在您的 YAML 构建管道中调用此 PowerShell 脚本。该脚本将获取状态为“进行中”和“待办”且分配给当前正在构建的用户的所有工作项。然后,它将根据工作项 ID 构建一个 URL 并将其添加到构建概述中。
- powershell: |
$orgUrl = "$(System.CollectionUri)"
$teamProject = "$(System.TeamProject)"
$buildId = "$(Build.BuildId)"
$user = "$(Build.QueuedBy)"
$buildUrl = "$($orgUrl)$($teamProject)/_build/results?buildId=$($buildId)"
$completeWorkItemsUrl = "$($orgUrl)$($teamProject)/_apis/wit/wiql?api-version=6.1-preview.2"
$body = @{
query = "Select [System.Id] From WorkItems Where [System.State] Not In ('Closed', 'Done', 'Removed', 'Completed') AND [System.AssignedTo] = '$user'"
} | ConvertTo-Json -Depth 10
$response = Invoke-RestMethod -Uri $completeWorkItemsUrl -Method Post -ContentType "application/json" -Body $body -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
$workItems = @($response.workItems | Select-Object -ExpandProperty id)
Write-Verbose "Following work items are linked to this build"
foreach ($item in $workItems) {
Write-Verbose "Work Item: $item"
Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=work item $item;]$($orgUrl)/$($teamProject)/_workitems/edit/$($item)?fullScreen=true"
}
displayName: List Work Items