scripts/ADOUpdateFeature.ps1 (24 lines of code) (raw):

param( [string]$organization, [string]$project, [string]$pat, [string]$workItemId, [string]$newState ) # Map the GitHub issue state to an ADO work item state $adoState = if ($newState -eq "open") { "New" } elseif ($newState -eq "closed") { "Done" } else { Write-Host "Unknown GitHub issue state: $($newState)" exit 0 } $B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("`:$pat")) $headers = @{ "Authorization" = "Basic $B64Pat" } $body = @( [ordered] @{ op = 'add'; path = '/fields/System.State'; value = "$adoState" } ) # Convert the body to JSON $bodyJson = ConvertTo-Json -InputObject $body Invoke-RestMethod -Uri "https://dev.azure.com/$organization/$project/_apis/wit/workitems/$($workItemId)?api-version=7.1" -Method Patch -Body $bodyJson -ContentType "application/json-patch+json" -Headers $headers