Webhooks

Simulando o Ciclo de Vida de um Pull Request via Webhook do GitHub

Teste sua automação de CI/CD ou bot de review contra a sequência real de eventos de um PR — não só um payload isolado.

Um Pull Request dispara vários eventos, não um só

Um bot de review, uma automação de merge, ou um pipeline de CI reagem a mais de um evento ao longo da vida de um PR: opened, depois cada synchronize (novo commit), e por fim closed (com merged: true ou false). Testar só o payload de abertura deixa boa parte da lógica sem cobertura. Veja a referência de endpoints do GitHub pra um payload isolado.

Modelando com Response Sequences

// Mock Rule: POST / → Response Sequences, mode: last
[
  { "status": 200, "body": "{\"action\":\"opened\",\"number\":42,\"pull_request\":{\"state\":\"open\",\"merged\":false}}" },
  { "status": 200, "body": "{\"action\":\"synchronize\",\"number\":42,\"pull_request\":{\"state\":\"open\",\"merged\":false}}" },
  { "status": 200, "body": "{\"action\":\"closed\",\"number\":42,\"pull_request\":{\"state\":\"closed\",\"merged\":true}}" }
]

Cada chamada sucessiva ao endpoint devolve o próximo evento — sua automação recebe exatamente a sequência opened → synchronize → closed que aconteceria num PR real, sem precisar abrir e mergear um PR de teste no GitHub toda vez.

E a assinatura X-Hub-Signature-256?

🔒
Mesma limitação honesta do artigo do Stripe: o motor de templates do httpdrop não gera HMAC — o header X-Hub-Signature-256 não sai criptograficamente válido do mock. Teste a verificação de assinatura separadamente (o GitHub disponibiliza ferramentas próprias pra isso, como reenviar deliveries reais pelo painel de Webhooks do repositório). O que o httpdrop testa bem é a lógica que reage a cada action do payload.
🚀
Próximo passo: combine com mocks em pipeline de CI/CD pra rodar esses cenários automaticamente a cada build.
Pronto para implementar? Consulte a documentação técnica completa com referência de API, exemplos de código e parâmetros detalhados.
Ver documentação →