Quando si inizia ad avere un sistema piuttosto complesso da dover manutenere in produzione, è bene assicurarsi che ci sia una buona tracciabilità di tutte le modifiche che vengono applicate ad esso.
La prima accortenzza la possiamo applicare fin dal momento iniziale di sviluppo: si possono, infatti, collegare i git commit a specifici work item all'interno del backlog di Azure Boards semplicemente aggiungendo "#{id}" al messaggio di commit, dove {id} rappresenta il numero identificativo del work item. Se apriamo il work item nella board a commit (e push) effettuato, noteremo come si sarà aggiornato collegandosi ad un branch e ad un commit specifico.
Allo stesso modo, ogni pipeline (che sia Build o Release management), è associata ad un certo numero di commit e, di conseguenza, può essere agganciata a determinati work item. Tuttavia, questa volta il collegamento è automatico a livello di UI, ma se abbiamo bisogno di recuperare questi stessi work item automaticamente, dobbiamo ricorrere, come abbiamo già visto, alle REST API.
$uri = "https://dev.azure.com/$(Organization)/$(Project)/_apis/build/builds/$env:BUILD_BUILDID/workitems?api-version=5.0" $workItems = Invoke-RestMethod $uri -Method GET -Headers @{Authorization=("Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN)}
Questa prima chiamata HTTP ci restituirà l'elenco dei work item collegati alla build corrente, identificata dalla variabile d'ambiente Build.BuildId. A questo punto sappiamo già tutti gli ID dei work item, ma non avremo i loro dettagli. Per recuperare tutte le informazioni necessarie come, ad esempio, il titolo, dobbiamo effettuare una nuova chiamata all'endpoint dedicato ai work items:
$ids = [string]::Join(',', $workItems.value.id) $uri = "https://dev.azure.com/$(Organization)/$(Project)/_apis/wit/workitems?ids=$ids&api-version=5.0" $workItems = Invoke-RestMethod $uri -Method GET -Headers @{Authorization=("Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN)} # Print work items in the output window Write-Host "Found $($result.count) associated to the current build:" foreach ($item in $result.value) { Write-Host "#$($item.id) - $($item.fields.'System.Title')" }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Utilizzare Tailwind CSS all'interno di React: primi componenti
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Installare le Web App site extension tramite una pipeline di Azure DevOps
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Copiare automaticamente le secret tra più repository di GitHub
Utilizzare gli snapshot con Azure File shares
Eseguire attività pianificate con Azure Container Jobs
Usare un KeyedService di default in ASP.NET Core 8
Determinare lo stato di un pod in Kubernetes
Utilizzare la libreria Benchmark.NET per misurare le performance
I più letti di oggi
- Salvare una classe .NET su file con la serializzazione
- Abilitare il Session State su SQL Server
- Forzare il download di un documento da una pagina ASP.NET
- Utilizzare Themes e Skin di ASP.NET 2.0 nel rispetto degli standard
- il 12 nov a Roma c'è #FutureDecodedIT https://aspit.co/FutureDecodedIT con @gisardo, @erichgamma, @AmirNetz e @CommunityDaysIT