Observação: atualmente, o recurso de fila de mesclagem da solicitação de pull está em versão beta pública e sujeito a alterações.
Sobre as filas de mesclagem
Uma fila de mesclagem pode aumentar a velocidade na qual as solicitações de pull são mescladas em um branch de destino ocupado, garantindo que todas as verificações de proteção de branch obrigatórias sejam aprovadas.
Depois que uma solicitação de pull tiver sido aprovada por todas as verificações de proteção de branch obrigatórias, um usuário com acesso de gravação no repositório poderá adicionar essa solicitação de pull a uma fila de mesclagem.
Uma fila de mesclagem poderá usar o GitHub Actions. Para obter mais informações, confira "Documentação do GitHub Actions".
A fila de mesclagem cria branches temporários com um prefixo especial para validar as alterações da solicitação de pull. Em seguida, as alterações na solicitação de pull são agrupadas em um merge_group
com a última versão do base_branch
, bem como as alterações à frente dela na fila. O GitHub Enterprise Cloud mesclará todas essas alterações no base_branch
depois que as verificações exigidas pelas proteções de branch do base_branch
forem aprovadas.
Para obter mais informações sobre os métodos de mesclagem, confira "Sobre merges de pull request".
Observações:
- Uma fila de mesclagem não pode ser habilitada com regras de proteção de branch que usam caracteres curinga (
*
) no padrão de nome do branch. - Uma fila de mesclagem aguardará até que as verificações necessárias sejam relatadas antes de prosseguir com a mesclagem. É necessário atualizar sua configuração de CI a fim de disparar e relatar eventos do grupo de mesclagem ao exigir uma fila de mesclagem.
Após o agrupamento de uma solicitação de pull com a última versão do branch de destino e as alterações à frente dela na fila, se houver verificações de status obrigatórias com falha ou conflitos com o branch base, o GitHub Enterprise Cloud removerá a solicitação de pull da fila. A linha do tempo da solicitação de pull exibirá o motivo pelo qual ela foi removida da fila.
Disparando verificações de grupo de mesclagem com GitHub Actions
Você pode usar o evento do merge_group
para disparar o fluxo de trabalho GitHub Actions quando uma solicitação de pull é adicionada a uma fila de mesclagem. Observe que esse é um evento diferente dos eventos de pull_request
e push
.
Observação: se o repositório usa GitHub Actions para executar as verificações necessárias nas solicitações de pull no repositório, atualize 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.
Um fluxo de trabalho que relata uma verificação exigida pelas proteções do branch de destino seria semelhante a este:
on:
pull_request:
merge_group:
Para obter mais informações, confira "Eventos que disparam fluxos de trabalho".
Disparar verificações de grupo de mesclagem com outros provedores de CI
Com outros provedores de CI, talvez seja necessário atualizar sua configuração de CI para ser executada quando um branch que começa com o prefixo gh-readonly-queue/{base_branch}
especial for criado.
Como gerenciar uma fila de mesclagem
Os administradores do repositório podem exigir uma fila de mesclagem habilitando a configuração de proteção de branch "Exigir fila de mesclagem" nas regras de proteção do branch base. Para obter mais informações, confira "Gerenciar uma regra de proteção de branch".
Depois de habilitar "exigir fila de mesclagem", você também poderá acessar as seguintes configurações:
-
Método de mesclagem: selecione qual método usar ao mesclar solicitações de pull enfileiradas: mesclagem, troca de base ou squash.
-
Simultaneidade de build: selecione o número máximo de solicitações de pull a serem compiladas (entre 1 e 100). Essa configuração limita o número de solicitações de pull enfileiradas que podem executar verificações de CI ao mesmo tempo.
-
Limites de mesclagem: selecione o número mínimo e máximo de solicitações de pull a serem mescladas em apenas um grupo (entre 1 e 100) e um tempo limite após o qual a fila deve parar de esperar por mais entradas e mesclar com menos do que o número mínimo de solicitações de pull.
-
Mesclar apenas solicitações de pull sem falha: essa configuração determina como a fila de mesclagem forma grupos de solicitações de pull a serem mescladas.
Se selecionado, somente as solicitações de pull que estão passando as próprias verificações de CI necessárias poderão ser adicionadas a um grupo. Isso pode ser útil se você quiser manter um histórico em que cada commit está em um bom estado ou se você executar diferentes conjuntos de verificações para diferentes solicitações de pull.
Se não estiverem selecionadas, as solicitações de pull que falharam nas verificações necessárias poderão ser adicionadas a um grupo, desde que a última solicitação de pull no grupo tenha passado pelas verificações necessárias. Se a última solicitação de pull no grupo foi aprovada nas verificações necessárias, isso significa que as verificações foram aprovadas para o conjunto combinado de alterações no grupo de mesclagem. Deixar essa caixa de seleção desmarcada poderá ser útil se você tiver falhas intermitentes de teste, mas não quiser que falsos negativos segurem a fila.
-
Tempo limite de verificação de status: escolha por quanto tempo a fila deve aguardar uma resposta da CI antes de assumir que as verificações falharam.