Skip to main content

Solução de problemas para checagens de status obrigatórias

Resolva erros comuns e desbloqueie a mesclagem ou o envio para ramificações protegidas solucionando problemas nas verificações de status obrigatórias.

Quem pode usar esse recurso?

As ramificações protegidas estão disponíveis em repositórios públicos com GitHub Free e GitHub Free para organizações. As ramificações protegidas também estão disponíveis em repositórios públicos e privados com GitHub Pro, GitHub Team, GitHub Enterprise Cloud e GitHub Enterprise Server.Consulte Planos do GitHub.

Use estas verificações quando uma verificação de status obrigatória bloquear a mesclagem ou o envio para uma ramificação protegida. Consulte Status checks.

  • Uma verificação de status necessária deve ter sido concluída com êxito no repositório escolhido nos últimos sete dias.
  • Se uma verificação e um status de commit tiverem o mesmo nome, ambos devem ser aprovados quando esse nome for obrigatório. Consulte Pontos de extremidade da API REST para verificações.
  • Se a proteção de ramificação exigir que sua ramificação esteja atualizada, faça a mesclagem ou o rebase da ramificação base em sua ramificação. Confira Sobre branches protegidos e Sobre a troca de base do Git.

Se as verificações de status obrigatórias não forem aprovadas, o envio para uma ramificação protegida retornará um erro semelhante a este.

remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: Required status check "ci-build" is failing

Observação

As solicitações de pull que estão atualizadas e são aprovadas nas verificações de status obrigatórias podem ser mescladas localmente e enviadas por push para a ramificação protegida. Você pode fazer isso sem executar verificações de status na própria confirmação de mesclagem.

A verificação necessária precisa ser bem-sucedida em relação ao SHA de confirmação mais recente

Verifique o seguinte se uma verificação necessária ainda está bloqueando uma solicitação de pull.

  • As verificações obrigatórias devem ser aprovadas no SHA do commit mais recente. As verificações de commits anteriores não atendem ao requisito.
  • Os status de verificação bem-sucedidos são success, skippede neutral. Consulte Status checks.

Conflitos entre o título do commit e o commit de merge do teste

Use a caixa de verificações de status do pull request para identificar qual commit deve ser aprovado.

Origem da verificação de statusO que deve passarO que você pode ver
O commit de teste de mesclagem tem um statusO commit de teste de mesclagemShowing checks for the merge commit
O commit de teste de mesclagem não tem statusO commit headVerifica o commit head mais recente

Consulte Endpoints da API REST para solicitações de pull.

Manipulação ignorada, mas verificações necessárias

CauseResultComo corrigir ou verificar
Um fluxo de trabalho é ignorado pela filtragem de caminho, filtragem de ramificação ou uma mensagem de confirmaçãoAs verificações associadas permanecem em um estado "Pendente" e bloqueiam a mesclagemEvite exigir fluxos de trabalho que podem ser ignorados.
Uma tarefa é ignorada por uma condiçãoA tarefa indica "Sucesso"Consulte Usando condições para controlar a execução do trabalho.
Uma tarefa depende de uma tarefa com falhaA tarefa dependente é ignorada e não pode bloquear a mesclagemUse always() com needs para verificações obrigatórias que dependem de outras tarefas. Consulte Usando tarefas em um fluxo de trabalho.

Example

Esse fluxo de trabalho requer uma execução bem-sucedida de build, mas é executado somente quando uma pull request altera arquivos em scripts.

name: ci
on:
  pull_request:
    paths:
      - 'scripts/**'
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]
    steps:
    - uses: actions/checkout@v6
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

Uma solicitação de pull que altera apenas um arquivo na raiz do repositório não disparará esse fluxo de trabalho. Se build for necessário, a pull request é bloqueada com "Aguardando o status ser relatado".

Verificações de status com GitHub Actions e uma fila de mesclagem

Se uma fila de mesclagem exigir uma verificação GitHub Actions, acione o fluxo de trabalho com o evento merge_group.

Observação

Se o seu repositório usa o GitHub Actions para realizar verificações necessárias em solicitações pull em seu repositório, é necessário atualizar os fluxos de trabalho para incluir o evento merge_group como um gatilho adicional. Caso contrário, as verificações de status não serão disparadas quando você adicionar uma solicitação de pull a uma fila de mesclagem. A mesclagem falhará, pois o verificação de status obrigatória não será relatada. O evento merge_group é separado dos eventos pull_request e push.

Configuração de gatilho de exemplo:

on:
  pull_request:
  merge_group:

Consulte Eventos que disparam fluxos de trabalho.

Verificações obrigatórias de status de fontes inesperadas

Uma ramificação protegida também pode exigir uma verificação de status de uma GitHub App específica. Se você vir uma mensagem semelhante à seguinte, verifique se a marcação listada na caixa de mesclagem foi feita pelo aplicativo esperado.

Required status check "build" was not set by the expected GitHub App.