Acerca de webhooks
Los webhooks permiten suscribirse a eventos que se producen en un sistema de software y recibir automáticamente una entrega de datos al servidor cada vez que se produzcan esos eventos.
Los webhooks suelen recibir datos tal como sucede, en lugar de sondear una API (llamar a una API de forma intermitente) para ver si los datos están disponibles. Con los webhooks, solo tiene que expresar interés en un evento una vez, al crear el webhook.
Los webhooks se usan en una amplia gama de escenarios, entre los que se incluyen:
- Activar flujos de trabajo de CI (integración continua) en un servidor de CI externo. Por ejemplo, para desencadenar CI en Jenkins o CircleCI cuando el código se inserta en una rama.
- Envío de notificaciones sobre eventos en GitHub a plataformas de colaboración. Por ejemplo, enviar una notificación a Discord o Slack cuando hay una revisión en una solicitud de incorporación de cambios.
- Actualizar un rastreador de problemas externos como Jira.
- Realizar una implementación en un servidor de producción.
- Registrar eventos a medida que se producen en GitHub, con fines de auditoría.
Acerca de los webhooks en GitHub
Cuando se crea un webhook, se especifica una dirección URL y se suscribe a eventos que se producen en GitHub. Cuando ocurra un evento al que tu webhook esté suscrito, GitHub enviará una solicitud HTTP con datos sobre el evento a la URL que especificaste. Si el servidor está configurado para escuchar las entregas de webhook en esa dirección URL, puede tomar medidas cuando reciba una.
Por ejemplo, podría suscribir su webhook a eventos que se producen cuando se envía código a un repositorio, se abre una solicitud de incorporación de cambios, se genera un sitio GitHub Pages o se añade un nuevo miembro a un equipo. El servidor podría responder implementando código en producción, desencadenando una canalización de CI, enviando una notificación o creando un GitHub proyecto para el nuevo miembro del equipo.
Debe crear un webhook en un repositorio, una organización, GitHub Enterprise, GitHub Marketplace cuenta, GitHub Sponsors cuenta, o GitHub App. El webhook solo puede acceder a los recursos a los que se puede acceder en el repositorio, la organización, GitHub Enterprise, GitHub Marketplace cuenta, GitHub Sponsors cuenta, o GitHub App donde está instalado. Para más información, consulta Tipos de webhooks.
Para obtener más información sobre la creación de webhooks, consulta Crear webhooks. Para obtener más información sobre los tipos de eventos a los que puedes suscribirte, consulta Eventos y cargas de webhook. Para obtener más información sobre cómo configurar el servidor para realizar una acción en respuesta a una entrega de carga útil, consulta Gestionar las entregas de los webhooks.
Nota:
Los webhooks de GitHub actualmente no son compatibles con IPv6, pero lo serán en el futuro. El punto de conexión de la API REST /meta devuelve intervalos IPv6 para habilitar esa transición.
Elegir entre los webhooks o la API REST
Usar webhooks tiene las siguientes ventajas sobre el uso de las API:
- Los webhooks requieren menos esfuerzo y menos recursos que el sondeo de una API.
- Los webhooks escalan mejor que las llamadas a la API. Si necesitas supervisar muchos recursos, llamar a la API para cada recurso puede hacer que alcances rápidamente la cuota del límite de velocidad de API. En su lugar, puedes suscribirte a varios eventos de webhook y recibir información solo cuando se produce un evento.
- Los webhooks permiten actualizaciones casi en tiempo real, ya que los webhooks se desencadenan cuando se produce un evento.
Si solo necesita información una vez o de manera intermitente, o solo quiere obtener información de un pequeño conjunto de recursos sin planes para escalar verticalmente, puede llamar a la API cuando necesite la información pertinente.
Para obtener información sobre los procedimientos recomendados que se deben seguir al usar webhooks, consulta Procedimientos recomendados para usar webhooks.
Nota:
GitHub Services (a veces denominado Service Hooks) es retirado, en favor de la integración con webhooks. Para obtener más información sobre cómo migrar la integración desde GitHub Services a mediante webhooks, consulte la entrada blog.