Introducción
Cuando se crea un webhook, se especifica una dirección URL y se suscribe a los tipos de eventos. Cuando se produce un evento al que se suscribe el webhook, GitHub enviará una solicitud HTTP con datos sobre el evento a la dirección URL especificada. Si el servidor está configurado para escuchar las entregas de webhook en esa dirección URL, puede tomar medidas cuando reciba una.
En este artículo se describe cómo escribir código para permitir que el servidor escuche y responda a las entregas de webhook. Probarás el código mediante el equipo o el espacio de código como servidor local.
Configurar
Para probar el webhook localmente, puedes usar una dirección URL del proxy de webhook para reenviar webhooks de GitHub al equipo o codespace. En este artículo se usa smee.io para proporcionar una dirección URL del proxy de webhook y reenviar webhooks.
Obtención de una dirección URL del proxy de webhook
- Abra el explorador y vaya a https://smee.io/.
- Haz clic en Iniciar un nuevo canal.
- Copia la dirección URL completa en "Dirección URL del proxy de webhook". Usarás esta dirección URL en los próximos pasos de configuración.
Reenviar de webhooks
-
Si aún no tienes instalado smee-client, ejecuta el siguiente comando en el terminal:
Shell npm install --global smee-client
npm install --global smee-client
-
Para recibir webhooks reenviados desde smee.io, ejecuta el siguiente comando en el terminal. Reemplaza
WEBHOOK_PROXY_URL
por la dirección URL del proxy de webhook anterior.Shell smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000
smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000
Deberías ver una salida con el siguiente aspecto, en la que
WEBHOOK_PROXY_URL
es la dirección URL del proxy del webhook.Shell Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook Connected WEBHOOK_PROXY_URL
Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook Connected WEBHOOK_PROXY_URL
Ten en cuenta que la ruta de acceso es
/webhook
y el puerto es3000
. Usarás estos valores más adelante al escribir código para gestionar las entregas de webhook. -
Deja que se ejecute mientras pruebas el webhook. Cuando quieras detener el reenvío de webhooks, escribe Ctrl+C.
Creación de un webhook
-
Crea un webhook con la siguiente configuración: Para más información, consulta Crear webhooks.
- Para la dirección URL, usa la dirección URL del proxy de webhook anterior.
- Si tienes la opción de elegir el tipo de contenido, usa JSON.
Escritura de código para gestionar las entregas de webhook
Para controlar las entregas de webhook, debes escribir código que haga lo siguiente:
- Inicializar el servidor para escuchar las solicitudes a la dirección URL del webhook
- Leer los encabezados HTTP y el cuerpo de la solicitud
- Realizar la acción deseada en respuesta a la solicitud
Puedes usar cualquier lenguaje de programación que se pueda ejecutar en el servidor.
En los ejemplos siguientes se imprime un mensaje cuando se recibe una entrega de webhook. Sin embargo, puedes modificar el código para realizar otra acción, como realizar una solicitud a la API GitHub o enviar un mensaje de Slack.