Nello script precedente abbiamo visto come poter impostare l'auto-complete di una pull request. Tra i vari parametri impostabili c'è anche la possibilità di specificare il cambio di stato di un work item associato alla pull request stessa: in questo caso, però, verrà impostato il primo stato utile nella categoria "Completed" che, spesso, è rappresentato da "Done".
Tuttavia, in base ai processi che abbiamo, potrebbe essere necessario dover impostare uno stato personalizzato. Questo non è fattibile direttamente dall'auto-complete e dalle PR in generale, ma possiamo comunque preparare un semplice script da integrare nelle pipeline per applicare lo stato che ci interessa:
function Change-PBI-State { Param( [parameter(Mandatory = $true)] [int]$Id ) $body = @( @{ op = "add" path = "/fields/System.State" value = "Done" } ) $data = ConvertTo-Json $body $url = "https://dev.azure.com/$(Organization)/$(Project)/_apis/wit/workitems/$Id`?api-version=5.1" Invoke-RestMethod $url -Method PATCH -Body $data -Headers @{Authorization=("Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN);} -ContentType "application/json-patch+json" }
Il cambio di stato viene fatto direttamente tramite le API REST di Azure DevOps, con una chiamata PATCH a cui dobbiamo specificare il campo "System.State". Naturalmente, così è stato reso parametrico l'identificativo del work item da aggiornare, possiamo rendere parametrico anche lo stato da applicare. Una volta integrato lo script nella pipeline, allora tutti i work item passati in ingresso verranno cambiati di stato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare la command injection in un workflow di GitHub
Implementare il throttling in ASP.NET Core
Sfruttare al massimo i topic space di Event Grid MQTT
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Gestione degli environment per il deploy con un workflow di GitHub
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Gestire domini wildcard in Azure Container Apps
Sostituire la GitHub Action di login su private registry
Utilizzare politiche di resiliency con Azure Container App
Effettuare delete massive con Entity Framework Core 7
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core