<# .SYNOPSIS Setzt den Board-Status eines Issues im GitHub Project Board. .DESCRIPTION Ermittelt die Item-ID des Issues im Board und setzt den Status auf den angegebenen Wert (Todo, In Progress, Done). .PARAMETER IssueNumber Die Issue-Nummer (z.B. 68). .PARAMETER Status Der Zielstatus: "Todo", "InProgress" oder "Done". #> param( [Parameter(Mandatory)][int]$IssueNumber, [Parameter(Mandatory)][ValidateSet("Todo","InProgress","Done")][string]$Status ) $projectId = "PVT_kwHOCFqiJ84BWFbQ" $statusFieldId = "PVTSSF_lAHOCFqiJ84BWFbQzhRcfAE" $statusMap = @{ "Todo" = "f75ad846" "InProgress" = "47fc9ee4" "Done" = "98236657" } $optionId = $statusMap[$Status] # Item-ID im Board finden $items = gh project item-list 1 --owner jreinemann-euris --format json --limit 200 | ConvertFrom-Json $item = $items.items | Where-Object { $_.content.number -eq $IssueNumber } | Select-Object -First 1 if (-not $item) { Write-Error "Issue #$IssueNumber nicht im Project Board gefunden." exit 1 } $itemId = $item.id gh project item-edit --project-id $projectId --id $itemId --field-id $statusFieldId --single-select-option-id $optionId 2>&1 | Out-Null if ($LASTEXITCODE -eq 0) { Write-Host "Issue #$IssueNumber → $Status" } else { Write-Error "Fehler beim Setzen des Status für Issue #$IssueNumber." exit 1 }