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,skippedeneutral. 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 status | O que deve passar | O que você pode ver |
|---|---|---|
| O commit de teste de mesclagem tem um status | O commit de teste de mesclagem | Showing checks for the merge commit |
| O commit de teste de mesclagem não tem status | O commit head | Verifica o commit head mais recente |
Consulte Endpoints da API REST para solicitações de pull.
Manipulação ignorada, mas verificações necessárias
| Cause | Result | Como corrigir ou verificar |
|---|---|---|
| Um fluxo de trabalho é ignorado pela filtragem de caminho, filtragem de ramificação ou uma mensagem de confirmação | As verificações associadas permanecem em um estado "Pendente" e bloqueiam a mesclagem | Evite exigir fluxos de trabalho que podem ser ignorados. |
| Uma tarefa é ignorada por uma condição | A tarefa indica "Sucesso" | Consulte Usando condições para controlar a execução do trabalho. |
| Uma tarefa depende de uma tarefa com falha | A tarefa dependente é ignorada e não pode bloquear a mesclagem | Use 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.