In Azure DevOps siamo abituati piuttosto bene per quanto riguarda l'uso delle branch policy, in quanto è tutto visuale ed è abbastanza semplice capire quali restrizioni applicare e quali reviewer agganciare ad una pull request, anche in base al contesto. Tuttavia, in GitHub questo concetto è espresso come codice e fa parte della filosofia everything-as-code.
Abbiamo già parlato più volte degli innumerevoli vantaggi di avere tutto definito come codice, tra cui la possibilità di avere versionamento e tracciabilità di come sono cambiate le policy nel tempo, per cui non ci addentreremo oltre.
Vediamo però come si possono configurare in GitHub dei reviewer obbligatori. Per prima cosa, poichè tutto è definito come codice, avremo bisogno di creare un file di testo, chiamato CODEOWNERS, nella root o all'interno della cartella .github che già usiamo per gestire i workflow.
* @matteotumiati *.cs @danieleb docs/* matteot@aspitalia.com
La sintassi di questo file è molto simile al classico .gitattributes o all'.editorconfig. Contiene principalmente due colonne che specificano il percorso e l'owner. Poichè l'ordine in cui queste policy sono definite è importante, nella prima riga abbiamo specificato tramite asterisco * che tutte le pull request devono essere approvate dall'utente matteotumiati. Quando ci sono modifiche ai file CSharp, però, allora è l'utente danieleb ad essere invocato in aggiunta agli utenti di default, poichè stiamo facendo una specifica rispetto al caso precedente. Stesso caso quello successivo, dove l'utente, questa volta identificato tramite indirizzo mail, verrà aggiunto automaticamente come reviewer alle pull request che contengono modifiche alla cartella della documentazione.

Il risultato finale sarà simile all'immagine.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Determinare lo stato di un pod in Kubernetes
Ottenere il riferimento alla finestra che ha aperto un'altra finestra con HTML5 e JavaScript
Limitare lo spazio dei repository di Azure Container Registry con uno script bash e Azure CLI
Pubblicare un pacchetto di NuGet nel feed di GitHub
Sfruttare i tag nell'output cache di ASP.NET Core 7
Linting di un Dockerfile con un workflow di GitHub
Impostare dinamicamente il nome di una run di un workflow di GitHub
Confronto tra moduli in Javascript: ES e commonJS
Generare file PDF da Blazor WebAssembly con iText
Utilizzare gli snapshot con Azure File shares
Leggere i dati di configurazione di ASP.NET Core da Azure Key Vault
Le novità di .NET 7 e C# 11
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core
- Abilitare e gestire il prerendering nelle applicazioni Blazor WebAssembly