Desencadenamiento de función de Azure Functions con un evento de GitHub

Completado

El evento Gollum de GitHub le permite escuchar actualizaciones wiki. Cuando este evento se produce, se activa la función HttpTrigger de Azure, y se puede analizar la carga para recuperar y procesar los datos que se han enviado.

Ha mostrado a su departamento de TI que puede escuchar eventos de Gollum en el repositorio de GitHub de su empresa mediante la configuración de un webhook. También ha demostrado cómo las aplicaciones de funciones de Azure permiten ejecutar código cuando una función recibe una solicitud de webhook.

En esta unidad, examinamos la carga del evento Gollum para que podamos actualizar nuestra función para analizarla correctamente.

Carga del evento Gollum

La carga del evento Gollum contiene los siguientes elementos:

  • páginas que se actualizaron. Cada página incluye la siguiente información:
    • page_name: nombre de la página.
    • title: título de página actual.
    • action: acción que se realizó en la página (creada o editada).
    • html_url: página wiki HTML.
  • información del repositorio sobre el repositorio que contiene la página wiki, entre las que se incluyen:
    • name: nombre del repositorio.
    • owner: detalles del propietario del repositorio.
    • html_url: dirección del repositorio.
  • información del remitente sobre el usuario que generó el evento que activó el webhook.

Por ejemplo, una carga podría ser similar al código siguiente.

"pages": [
    {
        "page_name": "Home",
        "title": "Home",
        "summary": null,
        "action": "edited",
        "sha": "562362bc141b9e2db1fb971e1ecb4fd0b7457f68",
        "html_url": "https://github.com/testrepo/Hello-World/wiki/Home"
    }
],
"repository": {
    ...
    "name": "testrepo",
    ...
    "owner": {
        ...
    },
    "html_url": "https://github.com/...",
    ...
},
"sender": {
    "login": "..."
    ...
}

Esta información se pasa como el cuerpo de una solicitud HTTP POST. Es necesario actualizar la lógica de la función para analizar y procesar esta información correctamente.

Análisis de la información del evento Gollum

Recuerde que el webhook se ejecuta cuando se produce un evento específico. A continuación, el webhook envía una solicitud a la dirección URL donde se configura el código de Azure Functions para escuchar mediante la Dirección URL para la función. La carga se pasa a la función de Azure. La función puede analizar el cuerpo de solicitud para extraer los campos de la carga y tomar las medidas adecuadas.

El ejemplo siguiente recupera el nombre del repositorio de la carga. El tipo de evento está disponible en el encabezado de solicitud x-github-event . Estos datos se representan en la respuesta de la función siguiente.

if (req.body.repository.name){
    context.res = {
        body: "Repository is: " + req.body.repository.name + ", Event Type is: " + req.headers['x-github-event']
    };
}

En el ejercicio siguiente, actualizaremos el código de función para poder controlar un evento Gollum entrante.