Skip to main content

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

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

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

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

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

Веб-перехватчики используются в широком спектре сценариев, в том числе:

  • Активация конвейеров CI (непрерывной интеграции) на внешнем сервере CI. Например, чтобы активировать CI в Jenkins или CircleCI при отправке кода в ветвь.
  • Отправка уведомлений о событиях на GitHub на платформы совместной работы. Например, отправка уведомления в Discord или Slack при наличии проверки по запросу на вытягивание.
  • Обновление средства отслеживания внешних проблем, таких как Jira.
  • Развертывание на рабочем сервере.
  • Ведение журнала событий по мере их выполнения на GitHub, для целей аудита.

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

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

Например, вы можете подписать веб-перехватчик на события, которые происходят при отправке кода в репозиторий, открывается запрос на вытягивание, создается сайт GitHub Pages или новый член добавляется в команду. Сервер может реагировать путем развертывания кода в рабочей среде, активации конвейера CI, отправки уведомления или создания проекта GitHub для нового члена группы.

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

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

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

Выбор веб-перехватчиков или REST API

Использование веб-перехватчиков имеет следующие преимущества по сравнению с использованием API:

  • Веб-перехватчики требуют меньше усилий и меньше ресурсов, чем опрос API.
  • Веб-перехватчики масштабируется лучше, чем вызовы API. Если вам нужно отслеживать множество ресурсов, вызов API для каждого ресурса может привести к быстрому попаданию квоты ограничения скорости API. Вместо этого вы можете подписаться на несколько событий веб-перехватчика и получать сведения только в случае события.
  • Веб-перехватчики позволяют обновляться практически в режиме реального времени, так как веб-перехватчики активируются при возникновении события.

Если требуется только один раз или периодические сведения или требуется получить информацию из небольшого набора ресурсов без планов масштабирования, вы можете вызвать API, если вам нужны соответствующие сведения.

Сведения о рекомендациях по использованию веб-перехватчиков см. в разделе "Рекомендации по использованию веб-перехватчиков".

Примечание. Службы GitHub (иногда называются перехватчиками служб) устарели в 2019 году в пользу интеграции с веб-перехватчиками. Дополнительные сведения о переносе интеграции с помощью служб GitHub на использование веб-перехватчиков см. в записи блога.

Дополнительные материалы