Simular un webhook push de GitHub

Un mock GET con forma de evento push de GitHub, con un commit en refs/heads/main.

Esta plantilla devuelve un evento push con forma de GitHub con un commit en refs/heads/main, para que puedas desarrollar un activador de CI o un controlador de bot sin tener que enviar a un repositorio real. Lleva los campos en los que la mayoría de los controladores realmente se dividen (ref, after y el nombre del repositorio) y omite el encabezado de firma, por lo que ejercita tu análisis en lugar de tu verificación.

Devuelve un evento listo para usar: aliméntalo directamente en tu propio controlador.

Payload de respuesta

{
  "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 vale la pena conocer

Campo Lo que significa
ref La rama a la que se envió, ej. refs/heads/main.
after El SHA de la confirmación después de ser enviada: llamadas posteriores de API de GitHub hacen referencia a él.
repository.full_name El nombre del repositorio como propietario/repositorio; edítalo para que coincida con tu repositorio de prueba.
pusher.name El nombre de usuario de GitHub de quien empujó los cambios.
commits Las confirmaciones incluidas en este envío: aquí se recortan a una.

Crear el 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\"}]}"
}'

Llamarlo

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

Lo que obtienes

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

En qué se diferencia de la realidad

Esta es una única confirmación estática en lugar del conjunto completo de campos que lleva un evento push real: sin encabezado X-Hub-Signature-256, sin remitente o head_commit, sin URL de comparación.

Fuentes

Preguntas frecuentes

¿Es este un webhook real de GitHub?
No. Es un único commit estático servido desde tu URL mock, sin el encabezado X-Hub-Signature-256, el remitente, el head_commit o la URL de comparación que lleva un evento push real.
¿Cómo pruebo un envío a una rama diferente?
Cambia ref en el cuerpo de la respuesta — por ejemplo a refs/heads/release. El filtrado de sucursales es el fragmento de lógica más común en un controlador push y el más fácil de estropear.
¿Puedo usarlo para probar etiquetas o eventos de eliminación?
Solo editando el cuerpo para que coincida con esos payloads, que difieren en forma. Para un manejador que se distribuye según el tipo de evento, crea un mock por evento para que cada caso tenga su propia URL estable.

¿Listo para usarlo?

Ábrelo en el generador de mocks para ajustarlo primero

Combina bien con esta guía: Probar un receptor de webhook

Plantillas relacionadas

← Todas las plantillas

Última actualización: 2026-10-17