O que é branch protection?
Branch protection é um conjunto de regras que restringe como as mudanças podem chegar a uma branch importante, como exigir reviews e verificações que passem antes do merge.
A branch main é aquela da qual todos dependem, então a maioria dos times a tranca. Regras de branch protection impõem os padrões do time automaticamente, garantindo que nada chegue à main sem atender ao critério, não importa quem esteja fazendo push.
O que é
Branch protection é uma configuração numa branch, tipicamente a main, que bloqueia mudanças a menos que certas condições sejam atendidas. Em vez de contar com que todos lembrem das regras, a plataforma as impõe: ela simplesmente se recusará a fazer merge de uma mudança que não esteja em conformidade.
Proteções comuns
- Exigir pull requests; nenhum push direto para a branch.
- Exigir um ou mais reviews de aprovação.
- Exigir que status checks (CI) passem antes do merge.
- Exigir que a branch esteja atualizada com a main.
- Restringir quem pode fazer push e proibir force-pushes.
Um exemplo
Um repositório protege a main de modo que toda mudança deva vir através de um pull request revisado com CI passando. Um desenvolvedor com pressa tenta fazer push direto para a main e é bloqueado; ele precisa abrir um pull request, conseguir um review e deixar as verificações passarem, exatamente a segurança que o time quer.
Por que mantém a main saudável
O ponto central da integração contínua é uma branch main que está sempre em um estado sabidamente bom. Branch protection torna isso inegociável: código não revisado ou não testado fisicamente não pode entrar. Isso protege cada desenvolvedor que constrói sobre a main e sustenta a entrega contínua.
Trabalhando com status checks
Branch protection é o que dá dentes aos status checks. Um status check obrigatório significa que o CI deve reportar sucesso antes que o botão de merge funcione. Combinado com reviews obrigatórios, ele garante que tanto a máquina (os testes passam) quanto um humano (alguém aprovou) deram o aval.
Principais conclusões
- Branch protection impõe regras antes de mudanças chegarem a uma branch.
- Regras comuns exigem reviews e verificações de CI que passem.
- Ela mantém a branch main sempre saudável e confiável.