Режим webhook GitLab и Bitbucket
Событийная интеграция для сред, где OAuth нежелателен.
Webhook-режим рекомендован для сред, где OAuth нежелателен или запрещён политикой безопасности.
Как это работает
- Регистрируете один webhook в проекте или группе.
- GitLab шлёт
Pipeline eventsиJob eventsнаhttps://api.exlogare.net/webhook/gitlab. - Exlogare проверяет общий секрет (заголовок
X-Gitlab-Token) и ставит пайплайн в очередь. - На падении Exlogare асинхронно подтягивает логи через API GitLab и прогоняет RCA. Сам лог обрабатывается в памяти и удаляется — мы храним только итоговый разбор и метаданные маршрутизации.
Настройка
Быстрый путь — через панель Exlogare:
- Откройте Integrations → GitLab → New webhook.
- Скопируйте URL и секрет, которые покажет мастер.
- В GitLab: Settings → Webhooks в нужном проекте (или Group → Hooks для всей группы).
- Вставьте URL, положите секрет в поле Secret token, отметьте чекбоксы Pipeline events и Job events.
- Сохраните — GitLab сразу отправит тестовый ping.
Если подключаете проект через OAuth или передаёте Personal Access Token (PAT) в мастере, webhook регистрируется автоматически: шаги 3–5 делать не нужно.
Какие события нужны
- Pipeline events — даёт сам факт падения и ссылку на pipeline.
- Job events — нужны для точной ссылки на упавший job и извлечения логов.
Merge Request events, Push events и прочие отмечать не нужно — они только добавляют шум на вашем GitLab.
Проверка доставки
В GitLab на странице хука есть Recent deliveries: там видно статусы доставок, заголовки и тело ответа. Успешный приём — 202 Accepted. 404 обычно означает, что проект не привязан к коннектору в Exlogare — откройте Integrations → GitLab и убедитесь, что проект в списке активных.
Bitbucket Data Center / Server (только webhook) {#bitbucket-dc}
В Bitbucket Data Center / Server OAuth не поддерживается, поэтому он всегда работает в webhook-режиме. Сценарий зеркалит GitLab:
- Откройте Integrations → Bitbucket → New connection и выберите Self-hosted. Укажите базовый URL, project key и repo slug — мастер вернёт webhook URL (
https://api.exlogare.net/webhook/bitbucket) и свежесгенерированный секрет. - В Bitbucket: Repository settings → Webhooks → Create webhook. Вставьте URL в поле URL, секрет — в Secret, отметьте Repository events → Build status updated, оставьте Active, сохраните.
- Bitbucket подписывает тело HMAC-SHA256 и кладёт в
X-Hub-Signature: sha256=…. Exlogare проверяет подпись, парсит событиеrepo:build_status_updatedи ставит упавший ран в очередь анализа. Успешная доставка —202 Accepted.
Событие repo:build_status_updated генерирует ваш внешний CI (Jenkins / Bamboo / TeamCity), когда публикует статус билда в Bitbucket через Build Status REST API. Ссылка на pipeline в комментарии указывает на job-страницу этого внешнего CI (мы сами не подтягиваем логи на DC).
Важно: DC < 7.4 не отправляет событие Build status updated. Обновите DC до 7.4+ или используйте ручной endpoint
POST /api/analyze.
Если у вас под рукой PAT с правами Project admin — вставьте его в мастер, и мы зарегистрируем webhook через DC REST API. Иначе используйте чек-лист выше.
Bitbucket Cloud в режиме webhook {#bitbucket-cloud}
Bitbucket Cloud также поддерживает webhook-only, хотя OAuth удобнее. Настройка такая же, как для DC, кроме:
- Событие —
repo:commit_status_updated(вместоrepo:build_status_updated). - Регистрация в Repository settings → Webhooks в Bitbucket Cloud.
- HMAC по-прежнему
X-Hub-Signature(SHA-256).