La protezione del ramo è una parte importante per assicurarsi che incidenti ed errori non si verifichino nel tuo repository GitHub. Applicano regole che devono seguire chiunque voglia inviare commit o unire richieste pull nel tuo repository.
Perché è necessaria la protezione delle filiali? La protezione delle filiali consiste nel prevenire azioni indesiderate. È possibile impostare regole per richiedere revisioni delle richieste pull, richiedere il completamento dei test prima dell’unione o richiedere commit firmati per verificare l’autenticità.
Per impostazione predefinita, la protezione del ramo disabiliterà i push forzati e impedirà l’eliminazione dei rami. Queste sono due cose che in pratica non vorresti mai che accadessero regolarmente, e mai senza il consenso espresso di qualcuno che può fare un’eccezione e disabilitare la protezione del ramo.
Questo è utile per la sicurezza, specialmente nei progetti più grandi o nei repository open source in cui i manutentori desiderano applicare un particolare processo di invio e approvazione per le nuove modifiche. I rami possono anche essere bloccati completamente per i non amministratori, che possono essere utilizzati per applicare un’autorizzazione aggiuntiva ai rami di rilascio/produzione.
La protezione del ramo, per impostazione predefinita, non si applica agli amministratori. Puoi anche dare alle persone un’autorizzazione specifica che consente loro di aggirarlo. Se non vuoi che gli amministratori o chiunque altro sia in grado di aggirare determinate regole, puoi disabilitare questa opzione per ogni regola.
La protezione del ramo è disponibile gratuitamente per i repository pubblicima non è disponibile per i repository privati senza GitHub Team o Enterprise.
Cosa fanno le regole di protezione delle filiali di GitHub? Ci sono alcune impostazioni che puoi abilitare per la protezione del ramo e tutte fanno cose diverse. Ecco alcuni dei più utili:
“Richiedi revisioni delle richieste pull prima dell’unione” non consentirà l’unione di PR in rami protetti fino a quando una o più persone autorizzate non avranno approvato la richiesta. Ciò è particolarmente utile per evitare che una singola persona unisca una PR da sola. “Richiedi risoluzione della conversazione” assicurerà che solo le pubbliche relazioni chiuse e finalizzate possano essere unite. “Richiedi controlli di stato prima dell’unione” si integrerà con la tua pipeline CI per eseguire test sui nuovi commit per verificare che non interrompano nulla. GitHub ha anche un’API di stato di commit che puoi utilizzare per l’integrazione esterna. “Richiedi distribuzioni per avere successo” viene in genere utilizzato per garantire che le build vengano distribuite correttamente negli ambienti di staging prima di essere unite. “Richiedi cronologia lineare” impedisce che i commit di unione vengano inviati al ramo, il che richiede che le unioni siano schiacciate o rebase. La cronologia del commit lineare è preferibile da molti team in quanto rende molto più semplice rintracciare e ripristinare le versioni. “Richiedi commit firmati” imporrà che i commit siano firmati GPG, verificando che siano stati creati con la chiave privata dell’utente e non creati da un utente malintenzionato con accesso a GitHub. Oltre a tutto questo, puoi anche gestire direttamente le autorizzazioni per decidere chi può inviare al ramo. Ad esempio, è tipico che i rami di rilascio abbiano restrizioni aggiuntive in modo che qualsiasi stagista casuale non possa passare accidentalmente alla produzione.
Puoi anche bloccare completamente i rami, come nel caso dei rami a monte che non dovrebbero cambiare.
Inoltre, mentre gli amministratori hanno la possibilità di ignorare queste regole per impostazione predefinita, puoi anche disattivarlo, assicurandoti che nessuno nel tuo repository possa violare le regole senza che le regole vengano disabilitate.
Le regole di protezione del ramo sono impostate nelle impostazioni del repository. Fai clic sul pulsante delle impostazioni per il tuo repository, quindi fai clic su “Protezione ramo”.
È necessario impostare un filtro per la regola di protezione del ramo. Puoi semplicemente impostarlo sul nome di un ramo specifico, ad esempio “principale”, oppure puoi utilizzare i caratteri jolly per scegliere come target più rami contemporaneamente.
Un carattere jolly illimitato “*” verrà applicato a tutti i rami e più regole di protezione dei rami possono essere impilate l’una sull’altra. Tuttavia, non è possibile avere due regole con lo stesso filtro.
Successivamente, avrai la possibilità di configurare ogni impostazione di protezione del ramo. Per impostazione predefinita, solo i push forzati e le eliminazioni sono disabilitati, ma puoi abilitare una qualsiasi delle caselle di controllo qui per attivare altre cose che desideri.
Una cosa che vorrai attivare la maggior parte delle volte è la regola che impedisce agli amministratori di ignorare le regole.
Quindi, puoi abilitare la regola, anche se dovrai eseguire nuovamente l’autenticazione con l’app mobile GitHub poiché la modifica delle regole di protezione del ramo è un’azione limitata. Puoi verificare se è abilitato tentando di forzare il push: il tuo client Git dovrebbe mostrare un errore.
How-To Geek è dove ti rivolgi quando vuoi che gli esperti spieghino la tecnologia. Dal nostro lancio nel 2006, i nostri articoli sono stati letti miliardi di volte. Voglio sapere di più?