From 62663382da72507b557071f7157e421bc887cb32 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 14 Nov 2025 12:53:43 -0800 Subject: [PATCH] Check user exists before assigning (#6828) Co-authored-by: Wes Haggard --- .../Helpers/DevOps-WorkItem-Helpers.ps1 | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 b/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 index 41c6fc0ee..0c442a16c 100644 --- a/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 +++ b/eng/common/scripts/Helpers/DevOps-WorkItem-Helpers.ps1 @@ -71,7 +71,13 @@ function Invoke-AzBoardsCmd($subCmd, $parameters, $output = $true) if ($output) { Write-Host $azCmdStr } - return Invoke-Expression "$azCmdStr" | ConvertFrom-Json -AsHashTable + $response = Invoke-Expression "$azCmdStr" | ConvertFrom-Json -AsHashtable + + if ($LASTEXITCODE -ne 0) { + Write-Host "ERROR command failed: $azCmdStr" + } + + return $response } function Invoke-Query($fields, $wiql, $output = $true) @@ -359,6 +365,18 @@ function CreateWorkItemParent($id, $parentId, $oldParentId, $outputCommand = $tr Invoke-AzBoardsCmd "work-item relation add" $parameters $outputCommand | Out-Null } +function CheckUser($user) +{ + $azCmdStr = "az devops user show --user ${user} $($ReleaseDevOpsCommonParameters -join ' ')" + Invoke-Expression "$azCmdStr" | Out-Null + + if ($LASTEXITCODE -ne 0) { + return $false + } + + return $true +} + function CreateWorkItem($title, $type, $iteration, $area, $fields, $assignedTo, $parentId, $relatedId = $null, $outputCommand = $true, $tag = $null) { $parameters = $ReleaseDevOpsCommonParametersWithProject @@ -366,7 +384,7 @@ function CreateWorkItem($title, $type, $iteration, $area, $fields, $assignedTo, $parameters += "--type", "`"${type}`"" $parameters += "--iteration", "`"${iteration}`"" $parameters += "--area", "`"${area}`"" - if ($assignedTo) { + if ($assignedTo -and (CheckUser $assignedTo)) { $parameters += "--assigned-to", "`"${assignedTo}`"" } if ($tag) @@ -388,7 +406,6 @@ function CreateWorkItem($title, $type, $iteration, $area, $fields, $assignedTo, Write-Host "Creating work item" $workItem = Invoke-AzBoardsCmd "work-item create" $parameters $outputCommand - Write-Host $workItem $workItemId = $workItem.id Write-Host "Created work item [$workItemId]." if ($parentId) @@ -424,7 +441,7 @@ function UpdateWorkItem($id, $fields, $title, $state, $assignedTo, $outputComman if ($state) { $parameters += "--state", "`"${state}`"" } - if ($assignedTo) { + if ($assignedTo -and (CheckUser $assignedTo)) { $parameters += "--assigned-to", "`"${assignedTo}`"" } if ($fields) {