Public/Update-JiraIssue.ps1
|
function Update-JiraIssue { <# .SYNOPSIS Aktualisiert ein bestehendes Jira-Issue. .PARAMETER IssueKey Key oder ID des zu aktualisierenden Issues, z.B. "PROJ-123". .PARAMETER Summary Neuer Titel (optional). .PARAMETER Description Neue Beschreibung als reiner Text (optional). Wird automatisch ins Atlassian Document Format (ADF) umgewandelt. .PARAMETER Fields Zusätzliche/überschreibende Felder als Hashtable, z.B. @{ priority = @{ name = "Low" } }. .EXAMPLE Update-JiraIssue -IssueKey "PROJ-123" -Summary "Neuer Titel" .EXAMPLE Update-JiraIssue -IssueKey "PROJ-123" -Fields @{ labels = @("dringend") } #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string] $IssueKey, [Parameter(Mandatory = $false)] [string] $Summary, [Parameter(Mandatory = $false)] [string] $Description, [Parameter(Mandatory = $false)] [hashtable] $Fields = @{} ) begin { $ErrorActionPreference = "Stop" $FieldPayload = @{} if ($Summary) { $FieldPayload.summary = $Summary } if ($Description) { $FieldPayload.description = ConvertTo-JiraADF -InputText $Description } foreach ($Key in $Fields.Keys) { $FieldPayload[$Key] = $Fields[$Key] } if ($FieldPayload.Count -eq 0) { Throw "Mindestens einer von -Summary, -Description oder -Fields muss angegeben werden." } $Payload = @{ fields = $FieldPayload } } process { Invoke-JiraApi -Method Put -Path "/rest/api/3/issue/$IssueKey" -Body $Payload | Out-Null } end { return Get-JiraIssue -IssueKey $IssueKey } } |