Quando lavoriamo in ambienti che richiedono un certo livello di automatizzazione, ci può capitare di avere il bisogno di avere codice sorgente sempre sincronizzato con alcune metriche che vengono calcolate a runtime. Facendo un esempio specifico, ad esempio, potrebbe venire comodo aggiornare la versione dell'applicazione una volta che questa è stata rilasciata, magari vogliamo aggiornare un deployment file di Kubernetes se troviamo misconfiguration e così via.
Ci sono alcuni dettagli, soprattutto a livello di security, che potenzialmente devono essere sempre aggiornati e non c'è bisogno che siano verificati da una persona/team ad-hoc. In questi frangenti, infatti, anche se siamo obbligati a creare una pull request poichè abbiamo delle branch policy impostate, vogliamo fare in modo che le change vengano mergiate immediatamente, talvolta bypassando i check impostati.
Come prima cosa, simuliamo lo scenario in cui da un workflow di GitHub creiamo una pull request, dando per assodato che le change siano già in un branch dedicato.
- name: Create pull request
shell: pwsh
run: |
gh pr create --title "PR TITLE" `
--body "PR DESCRIPTION" `
--base "main" `
--head "feature/new-feature" `
--repo "my-repository"La pull request è quindi tecnicamente visibile in GitHub. Tuttavia, non ci serve che qualcuno faccia la review poichè è stata creata dal sistema automatico. Per fare l'auto-merge della pull request ci è sufficiente richiamare la CLI di GitHub:
- name: Merge pull request
shell: pwsh
run: |
gh pr merge `
"feature/new-feature" `
--admin `
--rebase `
--delete-branch `
--repo "my-repository"Con questa modalità e passando il flag --admin, stiamo andando a fare anche il bypass delle branch policy. Se non ci interessa, possiamo mettere il flag --auto, ma chiaramente dipende dalle nostre esigenze e dai permessi del GITHUB_TOKEN che gli viene assegnato durante l'esecuzione del workflow.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Arricchire l'interfaccia di .NET Aspire
Configurare OpenAI in .NET Aspire
Configurare e gestire sidecar container in Azure App Service
Ridurre il reflow ottimizzando il CSS
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Abilitare .NET 10 su Azure App Service e Azure Functions
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Gestire il routing HTTP in Azure Container App
Analizzare il contenuto di una issue con GitHub Models e AI
Importare repository da Bitbucket a GitHub Enterprise Cloud
Testare il failover sulle region in Azure Storage
Le cron expression di un workflow di GitHub
I più letti di oggi
- Inserire le news di Punto Informatico nel proprio sito
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR


