Versão do artigo: Enterprise Server 2.17
Sobre verificações de status obrigatórias
As verificações de status obrigatórias garantem que todos os testes de CI sejam aprovados antes que os colaboradores possam fazer alterações em um branch protegido.
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server.
Sobre verificações de status obrigatórias
Se você aplicou proteções de branch no repositório, será possível configurar as verificações de status obrigatórias. Para obter mais informações, consulte "Configurar branches protegidos" e "Habilitar verificações de status obrigatórias". As verificações de status obrigatórias podem ser verificações ou status. Para obter mais informações, consulte "Sobre verificações de status".
Depois de habilitar as verificações de status obrigatórias, todas elas deverão ser aprovadas para que os branches possam passar por merge no branch protegido. After all required status checks pass, any commits must either be pushed to another branch and then merged or pushed directly to the protected branch.
Observação: Qualquer pessoa ou integração com permissões de gravação em um repositório pode configurar o estado de qualquer verificação de status no repositório. O GitHub Enterprise não analisa se o autor de uma verificação está autorizado a criar uma verificação com um determinado nome ou modificar um status existente. Before merging a pull request, you should verify that the author of each status, listed in the merge box, is expected.
Os administradores de um repositório poderão fazer merge de um branch protegido mesmo se as verificações de status obrigatórias tiverem falhado ou estiverem pendentes. Você pode exigir que os administradores estejam sujeitos às verificações de status obrigatórias. For more information, see "Enabling required status checks."
Os administradores também poderão fazer merge de um branch protegido mesmo se o branch não estiver atualizado com o branch base.
Required status checks settings
You can set up either loose or strict status checks, depending on whether you want to require your branch to be up to date with the base branch before merging. For more information, see "Types of required status checks."
Troubleshooting required status checks
If you have a check and a status with the same name and you select that name as a required status check, both the check and the status are required. Para obter mais informações, consulte "Verificações" na documentação do GitHub Developer.
Após configuração das verificações de status obrigatórias, o branch deverá ser atualizado com o branch base antes da ação de merge. Isso garante que o branch foi testado com o código mais recente do branch base. Se o branch estiver desatualizado, você precisará fazer merge do branch base no seu branch.
Note: You can also bring your branch up to date with the base branch using Git rebase. Para obter mais informações, consulte "Rebase no Git".
Não será possível fazer push de alterações locais em um branch protegido enquanto todas as verificações de status obrigatórias não forem aprovadas. Sendo assim, você receberá uma mensagem de erro semelhante a esta:
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Required status check "ci-build" is failing
Observação: as pull requests que são atualizadas e passam nas verificações de status obrigatórias podem sofrer merge localmente e enviadas por push ao branch protegido. Isso pode ser feito sem verificações de status em execução no próprio commit de merge.