Skip to main content

Использование веб-перехватчиков с приложениями GitHub

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

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

Веб-перехватчики позволяют GitHub App получать уведомления в режиме реального времени, когда события происходят на GitHub, например при отправке фиксации или открытии запроса на вытягивание в репозитории, к которому может получить доступ ваше приложение. Дополнительные сведения о веб-перехватчиках см. в разделе "Сведения о веб-перехватчиках". Учебник, демонстрирующий использование веб-перехватчиков с GitHub App, см. в разделе "Создание приложения GitHub, реагирующего на события веб-перехватчика".

Вы можете настроить GitHub App для получения веб-перехватчиков для определенных событий на GitHub и автоматически принимать меры по ним. Дополнительные сведения о типах веб-перехватчиков, которые можно получить, см. в разделе "События и полезные данные веб-перехватчика".

Чтобы получать события веб-перехватчика в GitHub App, необходимо включить веб-перехватчики для регистрации GitHub App и указать URL-адрес веб-перехватчика, где GitHub отправит полезные данные веб-перехватчика.

Если GitHub App не требует ответа на веб-перехватчики или будет использоваться только для проверки подлинности, вы можете отключить функцию веб-перехватчика для регистрации GitHub App . Вам не нужно указывать URL-адрес веб-перехватчика.

Дополнительные сведения о регистрации GitHub Appсм. в разделе "Регистрация приложения 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.

  1. Чтобы использовать Smee для создания уникального домена, перейдите https://smee.io к разделу и нажмите кнопку " Пуск нового канала".
  2. На странице канала Smee следуйте инструкциям в разделе "Использование интерфейса командной строки" для установки и запуска клиента Smee.
  3. Чтобы подключить URL-адрес веб-перехватчика Smee к вашим GitHub App, введите уникальный домен Smee в поле "URL-адрес веб-перехватчика" на странице регистрации GitHub App . Дополнительные сведения см. в разделе "[AUTOTITLE" и "Регистрация приложения GitHub](/apps/maintaining-github-apps/modifying-a-github-app)".

Выбор URL-адреса веб-перехватчика для рабочей среды

Для приложения в рабочей среде, получающего низкий объем трафика веб-перехватчика, его можно разместить на любом динамическом сервере приложений. Код на стороне сервера для обработки веб-перехватчика может получать событие, десериализировать полезные данные JSON и решать, какие действия следует предпринять, например хранение данных в базе данных или вызов API GitHub .

Чтобы обрабатывать более высокий объем трафика веб-перехватчика для большого приложения в рабочей среде, рекомендуется использовать асинхронную обработку веб-перехватчика на выделенном сервере. Это можно сделать, используя очередь, где обработчик веб-перехватчика отправляет данные в очередь, а отдельные процессы выполняют последующие действия на основе событий. Кроме того, вы можете использовать облачные функции, такие как Функции Azure, AWS Lambda или Hookdeck для масштабирования приложения для обработки больших объемов событий веб-перехватчика.

Защита веб-перехватчиков с помощью секрета веб-перехватчика

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

Чтобы создать секрет веб-перехватчика для приложения GitHub, введите секретный маркер в разделе "Секрет веб-перехватчика" на странице регистрации GitHub App. Следует выбрать случайную строку текста с высокой энтропией. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Регистрация приложения GitHub](/apps/maintaining-github-apps/modifying-a-github-app)".

После создания секрета веб-перехватчика для приложения необходимо настроить сервер для безопасного хранения и проверки маркера секрета веб-перехватчика. Дополнительные сведения см. в разделе Проверка доставки веб-перехватчика.

Подписка на события веб-перехватчика

Вы можете подписаться на GitHub App для получения полезных данных веб-перехватчика для определенных событий. Определенные события веб-перехватчика, которые можно выбрать для регистрации GitHub App, определяются типом разрешений, выбранных для вашего приложения. Сначала необходимо выбрать разрешения, которые требуется приложению, а затем подписаться на события веб-перехватчика, связанные с этим набором разрешений. Дополнительные сведения см. в разделе "Выбор разрешений для приложения GitHub".

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

Дополнительные сведения о разрешениях, необходимых для каждого события веб-перехватчика, см. в разделе "События и полезные данные веб-перехватчика".