Nello script precedente (#18) qui su dopsitalia.com, abbiamo visto come poter aggiornare lo stato di un work item tramite le REST API così che, ad esempio, possiamo automaticamente mettere stati personalizzati al verificarsi di terminate condizioni (pull request in progress, pull request completata, codice rilasciato e così via). In uno scenario simile, potremmo aver bisogno anche di applicare dei tag per specificare, per esempio, in quale ambiente è stato deployato un work item specifico: i tag, infatti, sono ottimi per poter eseguire delle query in Azure DevOps e, quindi, sono comodi per recuperare informazioni aggregate.
Per aggiungere un tag, possiamo nuovamente utilizzare le REST API di Azure DevOps ed invocare dalle nostre pipeline uno script di PowerShell come il seguente:
function Add-Tag { Param( [Parameter(Mandatory = $true)] [Int]$WorkItemId, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [String]$TagName ) $body = @( @{ op = "add" path = "/fields/System.Tags" value = "$TagName" } ) $data = ConvertTo-Json $body $url = "https://dev.azure.com/$(Organization)/_apis/wit/workitems/$WorkItemId`?api-version=5.1" Invoke-RestMethod $url -Method PATCH -Body $data -Headers @{Authorization=("Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN);} -ContentType "application/json-patch+json" }
Poiché il verb HTTP dell'API specificata è PATCH, ci basterà cambiare l'operation (op) da add a remove per ottenere, invece, l'effetto opposto, ovvero la rimozione di un tag specificato come parametro di input allo script.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Utilizzare QuickGrid di Blazor con Entity Framework
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Evitare la command injection in un workflow di GitHub
Usare una container image come runner di GitHub Actions
Sostituire la GitHub Action di login su private registry
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Generare token per autenicarsi sulle API di GitHub
Reactive form tipizzati con FormBuilder in Angular
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
I più letti di oggi
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare un DataContext specifico per la modalità design time di Blend e Visual Studio nei controlli Silverlight
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione