Proseguiamo la mini-serie riguardante come costruire le note di rilascio a partire da due tag segnati sul codice sorgente. Per recuperare le informazioni necessarie in seguito come, ad esempio, le pull request che sono state chiuse, avremo bisogno di identificare il repository di riferimento. Solitamente noi referenziamo il repository per nome, considerando quello che Azure DevOps ci fa vedere sia a livello di UI che a livello di URL però, come qualsiasi altra risorsa, anche il repository è rappresentato da un ID univico.
Per recuperare il repository, dato il suo nome, facciamo ancora una volta riferimento alle REST API:
function Get-Repo-By-Name { Param( [Parameter(Mandatory = $true)] [String]$repositoryName ) $url = "https://dev.azure.com/$(OrganizationName)/$(TeamProject)/_apis/git/repositories?api-version=6.0" $repos = Invoke-RestMethod $url -Method GET -Headers @{Authorization=("Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN)} if ($repos.count -lt 1) { Write-Host "##[error]Couldn't find any repository." throw } $repo = $repos | Where-Object { $_.name -eq $repositoryName } Write-Host "Found $repositoryName repository." return $repo }
La funzione che abbiamo costruito prende in ingresso il nome del repository, che è la risorsa che conosciamo, quindi effettua una chiamata all'API dedicata di Azure DevOps per recuperare tutta la lista dei repository creati (e visibili all'utenza che li richiede, in questo caso la pipeline stessa che eseguirà questo script di PowerShell). Una volta ottenuta la risposta, ci assicuriamo che sia stato trovato almeno un repository, quindi filtriamo l'array e recuperiamo l'oggetto che ci interessa tramite il suo nome. Ci salviamo la variabile contenente tutto il repository perchè la useremo nel prossimo script.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Estensione del markdown in GitHub
Introduzione a Azure Container Apps
Scoprire cosa succede in un layer di un Dockerfile
Continuous Deployment tramite GitOps
Serializzare e deserializzare un tipo TimeOnly con System.Text.Json
Blazor + .NET 6 = .NET ovunque
Comprimere le immagini contenute in un repository con una GitHub Action
Eseguire task temporizzati tramite hosted service in ASP.NET Core
Sviluppare applicazioni serverless con Azure Container Apps
Esecuzione a matrici nei workflow di GitHub Action
Retry automatico di un task di una pipeline di Azure DevOps
Gestire errori temporanei in una comunicazione gRPC con ASP.NET Core 6
I più letti di oggi
- Semplificare la gestione delle eccezioni per parametri non nullable in C#
- devConf 2022 - Online
- Impostare un default custom per i metodi LINQ che tornano il valore di default
- Impostare il tema light o dark utilizzando i CSS
- Utilizzare il metodo reduce in JavaScript
- Gestire eventi di serializzazione e deserializzazione in .NET con System.Text.Json
- Recuperare la data di creazione e ultima modifica di un record con Entity Framework Core e le temporal table di SQL Server
- Usare domini personalizzati con Azure Container App
- Utilizzare l'API del browser fetch