O Que É um Branch Protegido?
Um branch protegido tem regras que restringem como o código chega até ele, como exigir pull requests, revisões e checks aprovados antes de qualquer merge.
Um branch protegido é como você protege os branches que importam, normalmente o main. Sem proteção, qualquer pessoa poderia fazer push diretamente e contornar a revisão e os testes. As regras de proteção colocam limites em torno do branch para que apenas código revisado e verificado entre, o que é a espinha dorsal de uma linha main confiável.
O que as regras de proteção fazem
A proteção de branch impõe condições sobre as mudanças em um branch. Regras comuns exigem que as mudanças cheguem via pull request, que um número de revisores aprove, que checks de status específicos passem e que o branch esteja atualizado antes do merge. Pushes diretos e force pushes podem ser bloqueados por completo.
Proteções típicas
- Exigir pull requests em vez de pushes diretos.
- Exigir um número mínimo de revisões aprovadas.
- Exigir que checks de status de CI específicos passem.
- Bloquear force pushes e a exclusão do branch.
Por que isso importa
Branches protegidos tornam as boas práticas obrigatórias em vez de opcionais. Eles evitam um push direto acidental para o código de produção, garantem que toda mudança seja revisada e asseguram que nada sem testes faça merge. O branch main permanece em um estado sabidamente bom porque as regras não permitem o contrário.
Branches protegidos e CI/CD
A proteção de branch é onde os gates de CI se tornam política imposta. Ao marcar seus workflows de teste como checks de status obrigatórios, um branch protegido torna um pipeline verde um pré-requisito rígido para o merge. Esse é o mecanismo que transforma "nós rodamos testes" em "o código não pode ir para produção sem passar nos testes."
Configurando a proteção
- Proteja o main e qualquer branch que faça deploy para produção.
- Marque workflows de CI críticos como checks de status obrigatórios.
- Exija revisões para manter um segundo par de olhos nas mudanças.
- Exija que os branches estejam atualizados para que o CI teste o que faz merge.
Principais conclusões
- Um branch protegido restringe como o código pode chegar até ele.
- As regras podem exigir revisões, checks aprovados e bloquear force pushes.
- Marcar checks de CI como obrigatórios torna um pipeline verde mandatório para o merge.