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
Eseguire i pre-commit hook di git con dependabot
Utilizzare Hybrid Cache in .NET 9
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Effettuare un clone parziale di un repository di GitHub
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Effettuare la ricerca di testo nascosto in una pagina web con Javascript
Utilizzare il Null conditional assignment di C# 14
Recuperare gli audit log in Azure DevOps
Integrare modelli AI in un workflow di GitHub
Pubblicare un MCP Server in GitHub MCP Registry
Importare un servizio esterno in .NET Aspire
I più letti di oggi
- Real Code Day 4.0: costruire applicazioni reali - Firenze
- Community Days 2012 Bari - Bari
- Speciale Windows Azure: la piattaforma di Microsoft per il cloud computing
- Presentato il Windows Store: ecco tutte le novità
- Wrox chiude per bancarotta
- Mono 1.0 nel 2004
- Due regali dal Tech-Ed USA 2004: WSE 2.0 e VS 2005 Team System
- .NET Compact Framework beta
- Rilasciata versione 1.1.17 di Mono




