In Azure DevOps, lo sappiamo, non è propriamente possibile avere dei template repository come, invece, è possibile avere in GitHub. Questi repository, infatti, non sono nient'altro che una sorta di placeholder che può essere riutilizzato per quando vogliamo creare un nuovo progetto e partire da una base di codice già esistente. Tuttavia, un comportamento simile è facilmente realizzabile creando qualche pipeline di Azure DevOps che faccia tutto il setup/clone dei repository ed eventuali configurazione (ad esempio permessi per gli utenti, package registry e così via...).
Rimane un punto aperto riguardo le pipeline. Come già sappiamo, ora le pipeline vengono create principalmente come codice YAML che, però, contiene solamente la definizione. Pertanto, rimane necessario poter creare una pipeline a partire da del codice YAML pre-esistente. Tramite le API di Azure DevOps è possibile chiamare l'endpoint seguente:
$url = "https://dev.azure.com/{organization}/{projectName}/_apis/git/repositories?api-version=6.0" Invoke-RestMethod $url -Method GET -Headers @{Authorization=("Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN);}
Leggendo la documentazione, però, ci sono un po' di parti mancanti per quanto riguarda il body da dover passare in ingresso all'API di riferimento che è il seguente:
{ "folder": null, "name": "la-mia-pipeline", "configuration": { "type": "yaml", "path": "/path-to-pipeline-from-root-of-the-repository.yml", "repository": { "id": "guid-of-repo-id", "name": "my-repo", "type": "azureReposGit" } } }
Infatti, oltre a quello specificato nella documentazione ufficiale (https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/pipelines/create?view=azure-devops-rest-6.0), manca completamente la definizione del nodo configuration che non descrive affatto dove si trova la pipeline definition in YAML e in quale repository vive. Seguendo il codice di questo script dovrebbe essere abbastanza intuitivo poter lanciare una chiamata corrispondente e trovarsi, di fatto, la nuova pipeline creata. Eventualmente, è anche possibile specificare una folder di riferimento qualora abbiamo più pipeline raggruppate e ordinate.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire liste di tipi semplici con Entity Framework Core
Code scanning e advanced security con Azure DevOps
Creare un webhook in Azure DevOps
Limitare le richieste lato server con l'interactive routing di Blazor 8
Gestire domini wildcard in Azure Container Apps
Utilizzare gli snapshot con Azure File shares
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Utilizzare politiche di resiliency con Azure Container App
Inizializzare i container in Azure Container Apps
Verificare la provenienza di un commit tramite le GitHub Actions
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
I più letti di oggi
- Microsoft annuncia Windows "TrustBridge"
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Estrarre dati randomici da una lista di oggetti in C#
- Usare il colore CSS per migliorare lo stile della pagina
- Una attached property per accedere a NavigationService da ViewModel in Silverlight 4.0