Сведения о веб-перехватчиках и GitHub Apps
Веб-перехватчики позволяют GitHub App получать уведомления в режиме реального времени, когда события происходят в GitHub, например когда кто-то отправляет фиксацию или открывает запрос на вытягивание в репозитории, к которому может получить доступ ваше приложение. Дополнительные сведения о веб-перехватчиках см. в разделе Сведения о веб-перехватчиках. Руководство по использованию веб-перехватчиков с GitHub App см. в разделе Создание Приложение GitHub, реагирующей на события веб-перехватчика.
Вы можете настроить GitHub App для получения веб-перехватчиков для определенных событий в GitHub и автоматически выполнять с ними действия. Дополнительные сведения о типах веб-перехватчиков, которые можно получить, см. в разделе События и полезные данные веб-перехватчика.
Чтобы получать события веб-перехватчика в GitHub App, необходимо активировать веб-перехватчики в параметрах приложения и указать URL-адрес веб-перехватчика, по которому GitHub будет отправлять полезные данные веб-перехватчика. Дополнительные сведения о создании и настройке GitHub App см. в разделе Создание приложения GitHub.
Если приложению не нужно реагировать на веб-перехватчики или оно будет использоваться только для проверки подлинности, вы можете отключить функцию веб-перехватчика в параметрах приложения. Url-адрес веб-перехватчика указывать не нужно. Дополнительные сведения см. в разделе Создание приложения GitHub.
Сведения об изменении веб-перехватчиков, на которые подписывается 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.
Выбор URL-адреса веб-перехватчика для рабочей среды
Для приложения в рабочей среде, получающего небольшой объем трафика веб-перехватчика, его можно разместить на любом динамическом сервере приложений. Серверный код для обработки веб-перехватчика может получать событие, десериализовать его полезные данные JSON и решать, какое действие следует предпринять, например сохранение данных в базе данных или вызов API GitHub.
Чтобы обрабатывать больший объем трафика веб-перехватчиков для большого приложения в рабочей среде, рассмотрите возможность использования асинхронной обработки веб-перехватчиков на выделенном сервере. Для этого можно использовать очередь, в которой обработчик веб-перехватчика отправляет данные в очередь, а отдельные процессы выполняют последующие действия на основе событий. Кроме того, вы можете использовать облачные функции, такие как Функции Azure, AWS Lambda или Hookdeck, чтобы масштабировать приложение для обработки больших объемов событий веб-перехватчика.
Защита веб-перехватчиков с помощью секрета веб-перехватчика
После настройки сервера для получения полезных данных он будет прослушивать все полезные данные, отправленные на сервер. По соображениям безопасности следует ограничить входящие запросы только теми, которые исходят из GitHub. Это можно сделать, создав секрет веб-перехватчика для приложения.
Чтобы создать секрет веб-перехватчика для Приложение GitHub, введите маркер секрета в параметрах приложения в разделе "Секрет веб-перехватчика". Следует выбрать случайную строку текста с высокой энтропией. Дополнительные сведения о создании секрета веб-перехватчика в параметрах приложения см. в разделе Создание приложения GitHub.
После создания секрета веб-перехватчика для приложения необходимо настроить сервер для безопасного хранения и проверки маркера секрета веб-перехватчика. Дополнительные сведения см. в разделе Защита веб-перехватчиков.
Подписка на события веб-перехватчика
Вы можете подписаться на GitHub App для получения полезных данных веб-перехватчика для определенных событий. The specific webhook events that you can select in your app settings are determined by the type of permissions you selected for your app. You will first need to select the permissions you would like your app to have, and then you can subscribe your app to webhook events that are related to that set of permissions. Дополнительные сведения см. в разделе Выбор разрешений для Приложение GitHub.
Например, если вы хотите, чтобы приложение получало полезные данные события веб-перехватчика при каждом открытии новой проблемы в репозитории, сначала необходимо предоставить приложению разрешение на доступ к разделу "Проблемы" в разделе "Разрешения репозитория". Затем в разделе "Подписка на события" можно выбрать "Проблемы".
Дополнительные сведения о разрешениях, необходимых для каждого события веб-перехватчика, см. в разделе События и полезные данные веб-перехватчика.