Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Создание веб-перехватчиков

Узнайте, как создать веб-перехватчик, выбрав события, которые веб-перехватчик будет прослушивать в GitHub, и как настроить сервер для получения полезных данных веб-перехватчика и управления ими.

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

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

REST API можно использовать для управления веб-перехватчиками репозитория, организации и приложения. Вы можете перечислить доставку веб-перехватчиков для веб-перехватчика или получить и повторно получить отдельную доставку для веб-перехватчика, которую можно интегрировать во внешнее приложение или службу. Вы также можете использовать REST API для изменения конфигурации веб-перехватчика. Например, можно изменить URL-адрес полезных данных, тип контента, проверку SSL и секрет. Дополнительные сведения см. в разделе:

Предоставление локального узла в Интернете

В рамках этого руководства мы будем использовать локальный сервер для получения событий веб-перехватчика от GitHub.

Прежде всего, необходимо предоставить локальную среду разработки в Интернете, чтобы GitHub доставить события. Мы будем использовать ngrok для этого.

ngrok предоставляется бесплатно для всех основных операционных систем. Дополнительные сведения см. на ngrokстранице загрузки.

После установки ngrok вы можете предоставить локальный узел, выполнив команду ./ngrok http 4567 в командной строке. 4567 — номер порта, по которому наш сервер будет ожидать передачи сообщений. Должна появиться строка, которая выглядит примерно так:

$ Forwarding  http://7e9ea9dc.ngrok.io -> 127.0.0.1:4567

Запишите URL-адрес *.ngrok.io. Мы будем использовать его для настройки веб-перехватчика.

Настройка веб-перехватчика

Веб-перехватчики можно установить в организации или в определенном репозитории.

Чтобы настроить веб-перехватчик, перейдите на страницу параметров репозитория или организации. После этого щелкните Веб-перехватчики, а затем выберите Добавить веб-перехватчик.

Кроме того, можно создать веб-перехватчик и управлять им с помощью API веб-перехватчиков.

Прежде чем веб-перехватчики можно будет использовать, в них требуется настроить несколько параметров конфигурации. Мы разберем каждый из этих параметров ниже.

URL-адрес полезных данных

Примечание. Веб-перехватчики GitHub в настоящее время не поддерживают протокол IPv6, но будут доступны в будущем. Конечная /meta точка REST API возвращает диапазоны IPv6, чтобы обеспечить этот переход.

URL-адрес полезных данных — это URL-адрес сервера, который будет получать запросы POST веб-перехватчика.

Так как мы выполняем разработку локально для нашего руководства, мы настроим его на URL-адрес *.ngrok.io, а затем /payload. Например, http://7e9ea9dc.ngrok.io/payload.

Тип содержимого

Веб-перехватчики могут доставляться с помощью разных типов содержимого:

  • Тип содержимого application/json предоставляет полезные данные JSON непосредственно в виде текста запроса POST.
  • Тип содержимого application/x-www-form-urlencoded отправляет полезные данные JSON как параметр формы с именем payload.

Выбирайте ту, что наилучшим образом подходит под ваши нужды. В рамках этого учебника достаточно выбрать тип содержимого по умолчанию application/json.

Секрет

Настройка секрета веб-перехватчика позволяет гарантировать, что запросы POST, отправленные на URL-адрес полезных данных, поступают из GitHub Enterprise Server. При установке секрета вы будете получать заголовки X-Hub-Signature и X-Hub-Signature-256 в запросе POST веб-перехватчика. Дополнительные сведения об использовании секрета с заголовком подписи для защиты полезных данных веб-перехватчика см. в разделе Защита веб-перехватчиков.

Проверка SSL

Если "URL-адрес полезных данных" является защищенным сайтом (HTTPS), можно настроить параметры проверки SSL. Если "URL-адрес полезных данных" не является защищенным (HTTP), GitHub не отображает этот параметр. По умолчанию GitHub проверяет SSL-сертификат веб-сайта при доставке полезных данных веб-перехватчика. Проверка SSL помогает обеспечить безопасную доставку полезных данных веб-перехватчиков в конечную точку URL-адреса. Вы можете отключить SSL, однако параметр Включить проверку SSL рекомендуется всегда устанавливать.

Активен

По умолчанию доставки веб-перехватчика имеют статус "Активно". Вы можете отключить доставку полезных данных веб-перехватчика, отменив выбор статуса "Активный".

События

События — центральный компонент веб-перехватчиков. Эти веб-перехватчики запускаются всякий раз, когда определенное действие выполняется для репозитория, который URL-адрес полезных данных вашего сервера перехватывает и реагирует на него.

Полный список событий веб-перехватчика и условия, при которых они могут срабатывать, можно найти в справочнике по API веб-перехватчика.

Так как наш веб-перехватчик работает с проблемами в репозитории, мы нажмем кнопку Разрешить мне выбрать отдельные события, а затем Проблемы. Обязательно установите флажок Активен, чтобы получать события проблем для активированных веб-перехватчиков. Кроме того, можно выбрать все события с помощью команды по умолчанию.

После этого нажмите кнопку Добавить веб-перехватчик.

После создания веб-перехватчика пора настроить локальный сервер для тестирования веб-перехватчика. Перейдите к разделу Настройка сервера, чтобы узнать, как это сделать.

Событие с подстановочными знаками

Чтобы настроить веб-перехватчик для всех событий, используйте подстановочный знак (*) для указания событий веб-перехватчика. При добавлении события с подстановочными знаками мы заменим все настроенные существующие события, на события с подстановочными знаками, и отправим полезные данные для всех поддерживаемых событий. Вы также автоматически будете получать новые события, добавляемые в будущем.