Подключение вебхуков
CodeScoring поддерживает систему оповещений на базе вебхуков. При возникновении событий отправляется POST HTTP-запрос на указанный URL.
Добавление нового вебхука
Для добавления нового вебхука на платформе необходимо выполнить следующие действия:
-
Перейти в раздел
Настройки -> Вебхуки. -
Нажать на кнопку Добавить.
-
Заполнить поля в форме:
- Название – название в системе CodeScoring;
- URL – адрес с указанием протокола. Например:
http://webhook.com/; - Проекты - список проектов, для которых будут применяться вебхуки. Если поле пустое, будут учитываться все проекты;
- События – список событий, на которые сработает оповещение;
- Токен – токен, который передается в HTTP-запросе (заголовок
X-CodeScoring-Authentication); - Таймаут соединения (секунды) — время ожидания установки соединения с получателем;
- Таймаут чтения (секунды) — время ожидания данных ответа;
- Таймаут записи (секунды) — время ожидания отправки данных запроса;
- Таймаут пула (секунды) — время ожидания получения соединения из пула HTTP-клиента.
-
Проверить подключение после заполнения данных по кнопке Проверить подключение. При тестировании используется триггер
testс пустым payload.
После создания нового подключения по кнопке Добавить вебхук отобразится в списке раздела с возможностью посмотреть детальную информацию, отредактировать или удалить его.
Каждый таймаут по умолчанию равен 10 секундам и принимает целое число больше нуля. Значения задаются отдельно для каждого вебхука и используются как при отправке событий, так и при проверке подключения.
При редактировании нажмите Сохранить, чтобы применить изменения. Для замены сохранённого токена нажмите Редактировать в поле Токен и введите новое значение.

Структура тела запроса
Механизм отправления запросов
Запросы обрабатываются каждые 5 секунд, согласно периодической задаче, выполняемой системой.
Вебхук обычно отправляет одно событие за запрос. Однако в следующих случаях может быть отправлен массив событий:
- Отправка накопленных событий: если за единицу времени (по умолчанию – 5 секунд) произошло несколько событий, они будут отправлены одним запросом;
- Ретраи (повторные попытки): если сервер не ответил или вернул ошибку на предыдущую попытку, все неуспешные события отправляются повторно единым запросом.
Коды HTTP в диапазоне [200; 299] считаются успешными. Если ответ сервера не входит в этот диапазон, событие считается неуспешным, накапливается и отправляется повторно по следующему расписанию: 1 минута → 5 минут → 30 минут → 3 часа → 12 часов → 24 часа → 48 часов. Если хотя бы один запрос остается безуспешным через 48 часов, вебхук отключается, и события больше не отправляются.
Управление вебхуками через API
Для управления вебхуками предоставляется API по эндпоинту /api/settings/webhooks со следующими командами:
GET /api/settings/webhooks/— получить список всех вебхуков;POST /api/settings/webhooks/— создать новый вебхук;GET /api/settings/webhooks/{id}/— получить информацию по ID;PUT /api/settings/webhooks/{id}/— полностью обновить данные;PATCH /api/settings/webhooks/{id}/— частично обновить данные;DELETE /api/settings/webhooks/{id}/— удалить вебхук по ID;POST /api/settings/webhooks/{id}/refresh_availability_status/— обновить статус доступности;POST /api/settings/webhooks/test/— протестировать подключение;GET /api/settings/webhooks/triggers/— получить список доступных триггеров.
