Сведения о веб-перехватчиках репозитория
Веб-перехватчики репозитория позволяют получать полезные данные HTTP-запроса POST
всякий раз, когда в репозитории происходят определенные события. REST API можно использовать для управления веб-перехватчиками репозитория, организации и приложения. Вы можете перечислить доставку веб-перехватчиков для веб-перехватчика или получить и повторно получить отдельную доставку для веб-перехватчика, которую можно интегрировать во внешнее приложение или службу. Вы также можете использовать REST API для изменения конфигурации веб-перехватчика. Например, можно изменить URL-адрес полезных данных, тип контента, проверку SSL и секрет. Дополнительные сведения см. в разделе:
Если вы хотите настроить один веб-перехватчик для получения событий из всех репозиториев вашей организации, ознакомьтесь с нашей документацией по REST API для веб-перехватчиков организации.
Помимо REST API, GitHub также может служить центром PubSubHubbub для репозиториев.
Получение веб-перехватчиков
Для отправки полезных данных веб-перехватчика из GitHub Enterprise Server требуется доступ к серверу через Интернет. Также настоятельно рекомендуется использовать SSL для передачи зашифрованных полезных данных по протоколу HTTPS.
Заголовки веб-перехватчиков
GitHub Enterprise Server может отправлять несколько разных заголовков 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
Подписка
Конечной точкой GitHub PubSubHubbub является http(s)://HOSTNAME/api/v3/hub
, которая принимает следующие параметры.
Имя | Тип | Обязательно | Описание |
---|---|---|---|
hub.mode | string | subscribe или unsubscribe . | |
hub.topic | string | Универсальный код ресурса (URI) репозитория GitHub для подписки. Этот путь должен иметь следующий формат: /{owner}/{repo}/events/{event} . | |
hub.callback | string | Универсальный код ресурса (URI) для получения обновлений раздела. | |
hub.secret | string | Общий секретный ключ, который создает хэш-подпись исходящего содержимого текста. Вы можете убедиться, что отправка поступила из GitHub, сравнивая необработанный текст запроса с содержимым заголовков X-Hub-Signature или X-Hub-Signature-256 . Дополнительные сведения см. в документации по PubSubHubbub. |
Пример запроса с curl выглядит следующим образом:
curl -u "user" -i \
http(s)://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 можно отправлять несколько раз. Если перехватчик уже существует, он будет изменен в соответствии с запросом.