Configuración de un webhook para un repositorio de GitHub

Completado

En GitHub, se pueden configurar webhooks para una organización o un repositorio específico. Un webhook se desencadena cada vez que se producen uno o más eventos suscritos. Por ejemplo, el evento Gollum permite escuchar actualizaciones de wiki; en concreto, la creación y las actualizaciones de una página de wiki.

En esta unidad, obtendrá información sobre cómo configurar un webhook que escucha un evento de cambio del sitio wiki de GitHub de la empresa.

Configuración de un webhook

La configuración de un webhook es un proceso de dos pasos. En primer lugar, especifique en GitHub cómo desea que se comporte el webhook y qué eventos debe escuchar. Después, configure la función de Azure Functions para recibir y administrar la carga recibida desde el webhook. En el escenario de ejemplo, estamos configurando uno para un repositorio específico.

Para configurar el webhook, en el portal de GitHub, seleccione Configuración en la barra de menús superior. Se abre la página Configuración, con el nombre del repositorio. En el menú de la izquierda, seleccione Webhooks y, luego, Agregar webhook. Un webhook también se puede compilar y administrar a través de la API de Webhooks, que no se aborda en este módulo.

Los webhooks requieren la configuración de un par de opciones antes de utilizarlos. Las veremos a continuación.

Dirección URL de carga

La dirección URL de carga es la dirección URL del servidor que va a recibir las solicitudes POST del webhook.

Cada tipo de evento tiene un formato de carga específico. Esa carga contiene información sobre el evento que ha desencadenado el webhook.

Tipo de contenido

Los webhooks se pueden entregar mediante dos tipos de contenido diferentes:

  • El tipo de contenido application/json entrega la carga JSON directamente como el cuerpo de una solicitud POST.
  • El tipo de contenido application/x-www-form-urlencoded envía la carga JSON como un parámetro de formulario denominado carga.

Nota:

La página de adición de webhook también le permite especificar cómo proteger la información enviada al webhook mediante el uso de un secreto. En este tema se trata más adelante en este módulo.

Eventos

Los eventos se sitúan en el centro de los webhooks. Los eventos se producen cada vez que se realizan acciones en el repositorio. Cuando se produce el evento, el webhook se activa y llama a la dirección URL que especifique, enviando la información de la carga y el evento a la dirección URL. Por ejemplo, para responder cada vez que se produce un problema en un repositorio, seleccione Let me select individual events (Dejarme seleccionar eventos individuales) y, luego, active la casilla Issues (Problemas). Asegúrese de activar la casilla Active (Activo) para recibir eventos de problema para los webhook desencadenados. Tras ello, seleccione Agregar webhook para activar el desencadenador.

Para escuchar las actualizaciones del sitio wiki del repositorio, seleccione el cuadro Wiki; este es el evento Gollum mencionado anteriormente. Seleccione Agregar webhook para guardar todos los eventos individuales seleccionados.

En los eventos de webhooks de GitHub encontrará una lista completa de eventos de webhook, en la que también se especifica cuándo se pueden ejecutar.

En el siguiente ejercicio, le guiaremos a través del proceso de configuración de un webhook para un repositorio de GitHub.