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
Le cron expression di un workflow di GitHub
Gestione delle issue type con GitHub
Blazor e Static Web Assets in .NET 10
Esporre tool MCP con Azure Functions
Ricerca delle GitHub issue tramite operatori logici
DevSecOps per .NET: dalla teoria alla pratica
Modificare lo stile in una QuickGrid Blazor
Utilizzare i variable font nel CSS
Gestione delle scrollbar dinamiche in HTML e CSS
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Rendere affidabile lo scale out su Azure App Service
Utilizzare WebJobs su Linux con Azure App Service


