Сведения о веб-перехватчиках и GitHub Apps
Веб-перехватчики позволяют GitHub App получать уведомления в режиме реального времени, когда события происходят в GitHub, например когда кто-то отправляет фиксацию или открывает запрос на вытягивание в репозитории, к которому может получить доступ ваше приложение. Дополнительные сведения о веб-перехватчиках см. в разделе Сведения о веб-перехватчиках. Руководство по использованию веб-перехватчиков с GitHub App см. в разделе Создание Приложение GitHub, реагирующего на события веб-перехватчика.
Вы можете настроить GitHub App для получения веб-перехватчиков для определенных событий в GitHub и автоматически выполнять с ними действия. Дополнительные сведения о типах веб-перехватчиков, которые можно получить, см. в разделе События и полезные данные веб-перехватчика.
Чтобы получать события веб-перехватчика в GitHub App, необходимо включить веб-перехватчики для регистрации GitHub App и указать URL-адрес веб-перехватчика, по которому GitHub будет отправлять полезные данные веб-перехватчика.
Если GitHub App не нужно реагировать на веб-перехватчики или будет использоваться только для проверки подлинности, вы можете отключить функцию веб-перехватчика для регистрации GitHub App. Url-адрес веб-перехватчика указывать не нужно.
Дополнительные сведения о регистрации GitHub App см. в разделе Registering a GitHub App. Дополнительные сведения об изменении веб-перехватчиков, на которые подписана регистрация GitHub App, см. в разделе Изменение регистрации Приложение GitHub.
Выбор URL-адреса веб-перехватчика
При активации веб-перехватчиков для регистрации GitHub App необходимо указать URL-адрес веб-перехватчика. URL-адрес веб-перехватчика — это адрес веб-сервера, который будет получать полезные данные события веб-перехватчика, отправленные в GitHub App. Затем сервер может выполнить действия на основе содержимого полезных данных. Следует выбрать веб-сервер, соответствующий объему трафика веб-перехватчика, который будет находиться в GitHub App.
Выбор URL-адреса веб-перехватчика для разработки и тестирования
При разработке и тестировании приложения вы можете использовать службу доставки полезных данных веб-перехватчика, например Smee , для сбора и пересылки полезных данных веб-перехватчика в локальную среду разработки. Никогда не используйте Smee для приложения в рабочей среде, так как каналы Smee не проходят проверку подлинности и не защищены. Кроме того, можно использовать такое средство, как ngrok, localtunnel или консоль Hookdeck , которое предоставляет локальный компьютер в Интернет для получения полезных данных.
Создание URL-адреса веб-перехватчика с помощью Smee
С помощью Smee можно создать уникальный домен, в котором GitHub может отправлять полезные данные веб-перехватчика, не предоставляя локальную разработку в Интернете. Smee называет этот уникальный домен URL-адресом прокси-перехватчика веб-перехватчика. Url-адрес прокси-сервера веб-перехватчика Smee можно использовать в качестве URL-адреса веб-перехватчика для GitHub App.
- Чтобы использовать Smee для создания уникального домена, перейдите по ссылке https://smee.io и щелкните Запустить новый канал.
- На странице канала Smee следуйте инструкциям в разделе "Использование интерфейса командной строки", чтобы установить и запустить клиент Smee.
- Чтобы подключить URL-адрес веб-перехватчика Smee к GitHub App, введите уникальный домен Smee в поле "URL-адрес веб-перехватчика" на странице регистрации GitHub App. Дополнительные сведения см. в разделах Registering a GitHub App и Изменение регистрации Приложение GitHub.
Выбор URL-адреса веб-перехватчика для рабочей среды
Для приложения в рабочей среде, получающего небольшой объем трафика веб-перехватчика, его можно разместить на любом динамическом сервере приложений. Серверный код для обработки веб-перехватчика может получать событие, десериализовать его полезные данные JSON и решать, какое действие следует предпринять, например сохранение данных в базе данных или вызов API GitHub.
Чтобы обрабатывать больший объем трафика веб-перехватчиков для большого приложения в рабочей среде, рассмотрите возможность использования асинхронной обработки веб-перехватчиков на выделенном сервере. Для этого можно использовать очередь, в которой обработчик веб-перехватчика отправляет данные в очередь, а отдельные процессы выполняют последующие действия на основе событий. Кроме того, вы можете использовать облачные функции, такие как Функции Azure, AWS Lambda или Hookdeck, чтобы масштабировать приложение для обработки больших объемов событий веб-перехватчика.
Защита веб-перехватчиков с помощью секрета веб-перехватчика
После настройки сервера для получения полезных данных он будет прослушивать все полезные данные, отправленные на сервер. По соображениям безопасности следует ограничить входящие запросы только теми, которые исходят из GitHub. Это можно сделать, создав секрет веб-перехватчика для приложения.
Чтобы создать секрет веб-перехватчика для Приложение GitHub, введите маркер секрета в разделе "Секрет веб-перехватчика" на странице регистрации GitHub App. Следует выбрать случайную строку текста с высокой энтропией. Дополнительные сведения см. в разделах Registering a GitHub App и Изменение регистрации Приложение GitHub.
После создания секрета веб-перехватчика для приложения необходимо настроить сервер для безопасного хранения и проверки маркера секрета веб-перехватчика. Дополнительные сведения см. в разделе Защита веб-перехватчиков.
Подписка на события веб-перехватчика
Вы можете подписаться на GitHub App для получения полезных данных веб-перехватчика для определенных событий. Конкретные события веб-перехватчика, которые можно выбрать для регистрации GitHub App, определяются типом разрешений, выбранных для приложения. Сначала необходимо выбрать разрешения, которые должны быть у приложения, а затем подписаться на события веб-перехватчика, связанные с этим набором разрешений. Дополнительные сведения см. в разделе Выбор разрешений для Приложение GitHub.
Например, если вы хотите, чтобы приложение получало полезные данные события веб-перехватчика при каждом открытии новой проблемы в репозитории, сначала необходимо предоставить приложению разрешение на доступ к разделу "Проблемы" в разделе "Разрешения репозитория". Затем в разделе "Подписка на события" можно выбрать "Проблемы".
Дополнительные сведения о разрешениях, необходимых для каждого события веб-перехватчика, см. в разделе События и полезные данные веб-перехватчика.