Skip to main content

APIs e webhooks de solicitações de pull empilhadas

Leia e gerencie solicitações de pull empilhadas programaticamente com as GitHub APIs REST e GraphQL e webhooks.

Neste artigo

Observação

Esse recurso está em versão prévia pública e está sujeito a alterações.

As GitHub APIs REST e GraphQL expõem solicitações de pull empilhadas. A API REST dá suporte à leitura e ao gerenciamento de pilhas, enquanto a API do GraphQL dá suporte a consultas somente leitura.

Use a API para ler a associação de pilha de uma solicitação pull ou criar sua própria automação e integrações para solicitações de pull empilhadas.

API REST

A API REST expõe solicitações de pull empilhadas de duas maneiras:

  • O stack objeto em recursos de solicitação de pull. Quando uma solicitação de pull pertence a uma pilha, seu recurso REST inclui um stack objeto. Isso permite que você leia a associação de pilha da solicitação de pull, incluindo o número e o tamanho da pilha e a posição e a base da solicitação de pull, diretamente da solicitação de pull.
  • A API stacks. Um conjunto dedicado de pontos de extremidade para listar, ler, criar, estender e dissolver pilhas. Essa é a superfície para criar e modificar pilhas.

Para pontos de extremidade, parâmetros e esquemas, consulte Endpoints da API REST para solicitações de pull.

Importante

Se você mesclar por meio da API e quiser usar solicitações de pull empilhadas, deverá usar a nova API de mesclagem assíncrona.

API de mesclagem

Ao mesclar uma solicitação de pull empilhada por meio da API, você deve usar o ponto de extremidade de mesclagem assíncrono.

Uma pilha não pode ser mesclada com os pontos de extremidade ou mutações síncronas herdados. Quando você mescla uma solicitação de pull empilhada, cada solicitação de pull na pilha até e incluindo a que você solicita é mesclada ou enfileirada para mesclar no branch base. A mesclagem de uma pilha de solicitações de pull pode envolver várias solicitações de pull que podem levar alguns minutos para serem mescladas. Por isso, a mesclagem é executada em segundo plano quando você envia uma solicitação de mesclagem e, em seguida, pode sondar o resultado.

Somente o estado básico da solicitação de pull é verificado quando você envia uma PR aberta. As regras de proteção de branch e repositório são avaliadas posteriormente, quando a mesclagem realmente é executada e uma falha de regra é relatada como um resultado com falha durante a sondagem. Uma solicitação de mesclagem de pilha é atômica, o que significa que todo o grupo de solicitações de pull se mescla ou é adicionado à fila de mesclagem ou nenhum deles é.

Para obter detalhes, consulte Endpoints da API REST para solicitações de pull.

API GraphQL

A API do GraphQL expõe a associação de pilha de uma solicitação de pull por meio de somente stack leitura e stackEntry campos no PullRequest tipo. Use esses campos para consultar a pilha à qual uma solicitação de pull pertence e sua posição dentro dela.

A API do GraphQL é somente leitura para pilhas; não há mutações de pilha. Para criar ou modificar pilhas, use a API REST.

Para campos, objetos e esquemas, consulte Solicitações de pull.

Webhooks

Quando uma solicitação de pull pertence a uma pilha, GitHub adiciona uma stack propriedade ao pull_request objeto em cargas de eventos de webhook. Isso permite que aplicativos e integrações inspecionem o branch de destino da pilha, não apenas o branch pai direto da solicitação de pull.

O stack objeto é incluído no conteúdo do pull_request webhook para eventos de ciclo de vida de solicitação de pull que ocorrem enquanto a solicitação de pull faz parte de uma pilha.

Consulte Eventos e cargas de webhook.

Leitura adicional