Активация функции Azure с помощью события GitHub

Завершено

Событие GitHub Gollum позволяет ожидать передачи обновлений вики-сайта. При возникновении этого события ваша функция Azure HttpTrigger активируется и вы можете выполнить анализ полезных данных для получения и обработки отправленных данных.

Вы продемонстрировали ИТ-отделу, что можете прослушивать события Gollum в репозитории GitHub вашей компании, настроив веб-перехватчик. Вы также показали, как с помощью приложений Функций Azure можно выполнять код, когда функция получает запрос веб-перехватчика.

В этом уроке мы изучим полезные данные события Gollum, чтобы затем изменить нашу функцию для их правильного анализа.

Полезные данные события Gollum

Полезные данные для события Gollum содержат следующие элементы:

  • стр. было обновлено. Каждая страница содержит следующие сведения:
    • page_name Имя страницы.
    • title Заголовок текущей страницы.
    • action Действие, которое было выполнено на странице , создано или изменено.
    • html_url Вики-страница HTML.
  • сведения о репозитории , содержащем вики-страницу, в том числе:
    • name Имя репозитория.
    • owner Сведения о владельце репозитория.
    • html_url Адрес репозитория.
  • sender Сведения о пользователе, вызвавшем событие, из-за которого сработал веб-перехватчик.

Например, полезные данные могут выглядеть как нижеприведенный код.

"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": "..."
    ...
}

Эти сведения передаются в виде текста HTTP-запроса POST. Нам потребуется изменить логику функции, чтобы эти сведения правильно анализировались и обрабатывались.

Анализ сведений из события Gollum

Вспомним, что веб-перехватчик срабатывает при возникновении определенного события. Затем веб-перехватчик отправляет запрос на URL-адрес, в котором ваш Функции Azure код настроен для прослушивания, используя URL-адрес для функции. Полезные данные передаются в функцию Azure. Функция может проанализировать текст запроса, чтобы извлечь поля из полезных данных и предпринять соответствующие действия.

В следующем примере из полезных данных извлекается имя репозитория. Тип события доступен в заголовке запроса x-github-event. Эти данные выводятся в ответе функции.

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

В следующем упражнении мы обновим код функции, чтобы иметь возможность обрабатывать входящее событие Gollum .