Simular um webhook de push do GitHub

Um mock GET com o formato de um evento de push do GitHub, com um commit em refs/heads/main.

Este modelo retorna um evento de push com formato do GitHub com um commit em refs/heads/main, para que você possa desenvolver um gatilho de CI ou um manipulador de bot sem fazer push para um repositório real. Ele carrega os campos nos quais a maioria dos manipuladores realmente se baseia — ref, after e o nome do repositório — e omite o cabeçalho de assinatura, para exercitar sua análise (parsing) em vez de sua verificação.

Retorna um evento pronto — alimente-o diretamente no seu próprio handler.

Payload de resposta

{
  "ref": "refs/heads/main",
  "before": "a10867b14bb761a232cd80139fbd4c0d33264240",
  "after": "b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9",
  "repository": {
    "full_name": "octocat/quickmock-demo"
  },
  "pusher": {
    "name": "octocat"
  },
  "commits": [
    {
      "id": "b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9",
      "message": "fix: handle empty payload",
      "timestamp": "2024-05-01T12:00:00Z"
    }
  ]
}

Campos que valem a pena conhecer

Campo O que significa
ref A branch que recebeu o push, ex: refs/heads/main.
after O SHA do commit após o push — chamadas subsequentes da API do GitHub o referenciam.
repository.full_name O nome do repositório como dono/repositório; edite para corresponder ao seu repositório de teste.
pusher.name O nome de usuário do GitHub que fez o push.
commits Os commits incluídos neste push — reduzido a um aqui.

Criar o mock

curl -X POST https://quickmock.dev/api/mocks \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "GET",
  "response_status": 200,
  "content_type": "application/json",
  "response_body": "{\"ref\":\"refs/heads/main\",\"before\":\"a10867b14bb761a232cd80139fbd4c0d33264240\",\"after\":\"b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9\",\"repository\":{\"full_name\":\"octocat/quickmock-demo\"},\"pusher\":{\"name\":\"octocat\"},\"commits\":[{\"id\":\"b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9\",\"message\":\"fix: handle empty payload\",\"timestamp\":\"2024-05-01T12:00:00Z\"}]}"
}'

Chame-o

curl https://quickmock.dev/m/<slug>

O que você obtém

GET /m/<slug> -> 200 a GitHub-style push event
one commit on refs/heads/main

Como isso difere do original

Este é um commit estático único em vez do conjunto completo de campos que um evento de push real carrega — sem cabeçalho X-Hub-Signature-256, sem sender ou head_commit, sem URL de comparação (compare URL).

Fontes

FAQ

Este é um webhook real do GitHub?
Não. É um commit estático único servido da sua URL de mock, sem o cabeçalho X-Hub-Signature-256, sender, head_commit ou URL de comparação que um evento de push real carrega.
Como eu testo um push para uma branch diferente?
Altere ref no corpo da resposta — por exemplo, para refs/heads/release. O filtro de branch é a parte de lógica mais comum em um manipulador de push e a mais fácil de errar.
Posso usá-lo para testar eventos de tag ou exclusão?
Apenas editando o corpo para corresponder a esses payloads, que diferem em formato. Para um manipulador que despacha no tipo de evento, crie um mock por evento para que cada caso tenha sua própria URL estável.

Pronto para usar?

Abrir no construtor de mocks para ajustar primeiro

Combina bem com este guia: Testar um receptor de webhook

Modelos relacionados

← Todos os modelos

Última atualização: 2026-10-17