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

We've recently moved some of the REST API documentation. If you can't find what you're looking for, you might try the new Branches, Collaborators, Commits, Deploy Keys, Deployments, GitHub Pages, Releases, Metrics, Webhooks REST API pages.

Веб-перехватчики репозитория

Используйте REST API для создания веб-перехватчиков для репозиториев и управления ими.

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

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

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

Помимо REST API, GitHub также может служить центром PubSubHubbub для репозиториев.

Получение веб-перехватчиков

Для отправки полезных данных веб-перехватчика из GitHub AE требуется доступ к серверу через Интернет. Также настоятельно рекомендуется использовать SSL для передачи зашифрованных полезных данных по протоколу HTTPS.

Заголовки веб-перехватчиков

GitHub AE может отправлять несколько разных заголовков HTTP, которые позволяют различать типы событий и идентификаторы полезных данных. Дополнительные сведения см. разделе Заголовки веб-перехватчика.

PubSubHubbub

GitHub также может служить центром PubSubHubbub для всех репозиториев. PSHB — это простой протокол публикации и подписки, который позволяет серверам регистрироваться для получения обновлений при обновлении раздела. Обновления отправляются с HTTP-запросом POST на URL-адрес обратного вызова. URL-адреса разделов для отправок GitHub репозитория представлены в следующем формате:

https://github.com/{owner}/{repo}/events/{event}

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

Формат ответа

Формат по умолчанию — это то, что должны ожидать существующие перехватчики после получения: текста JSON, отправленного в качестве параметра payload в POST. Можно также указать получение необработанного текста JSON с заголовком Accept или расширением .json.

Accept: application/json
https://github.com/{owner}/{repo}/events/push.json

URL-адреса обратных вызовов

URL-адреса обратного вызова могут использовать протокол HTTP.

# Send updates to a PostBin bin
https://www.toptal.com/developers/postbin/123

Подписка

Конечная точка PubSubHubbub GitHub: https://HOSTNAME/api/v3/hub. Успешный запрос с curl выглядит следующим образом:

curl -u "user" -i \
  https://HOSTNAME/api/v3/hub \
  -F "hub.mode=subscribe" \
  -F "hub.topic=https://github.com/{owner}/{repo}/events/push" \
  -F "hub.callback=https://www.toptal.com/developers/postbin/123"

Запросы PubSubHubbub можно отправлять несколько раз. Если перехватчик уже существует, он будет изменен в соответствии с запросом.

Параметры
ИмяТипОписание
hub.modestringОбязательно. subscribe или unsubscribe.
hub.topicstringОбязательно. Универсальный код ресурса (URI) репозитория GitHub для подписки. Этот путь должен иметь следующий формат: /{owner}/{repo}/events/{event}.
hub.callbackstringУниверсальный код ресурса (URI) для получения обновлений раздела.
hub.secretstringОбщий секретный ключ, который создает хэш-подпись исходящего содержимого текста. Вы можете убедиться, что отправка поступила из GitHub, сравнивая необработанный текст запроса с содержимым заголовка X-Hub-Signature-256. Дополнительные сведения см. в документации по PubSubHubbub.