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
Proteggere le risorse Azure con private link e private endpoints
Escludere alcuni file da GitHub Secret Scanning
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Usare le navigation property in QuickGrid di Blazor
Creare un webhook in Azure DevOps
Generare una User Delegation SAS in .NET per Azure Blob Storage
Cancellare una run di un workflow di GitHub
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Migliorare la sicurezza dei prompt con Azure AI Studio
I più letti di oggi
- Parallelizzare le chiamate HTTP con async/await e le Promise in JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- a #RealCodeConf4 il 25 maggio a Firenze parleremo di #silverlight4. iscrizioni gratis su http://u.aspitalia.com/g9
- Eseguire una chiamata AJAX per inviare dati al server in Angular 2
- Comporre la pagina HTML con i nuovi tag semantici di HTML5