Активация функции 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 .