Перейти к содержимому

Настройка Webhooks

Webhooks позволяют автоматически запускать деплой при каждом пуше в ваш Git репозиторий. Когда вы делаете git push, Git провайдер отправляет уведомление в ONREZA, и платформа автоматически создаёт новый деплой.

  1. Вы настраиваете webhook в вашем Git провайдере (GitVerse или SourceCraft)
  2. При каждом пуше провайдер отправляет HTTP-запрос на ONREZA
  3. ONREZA проверяет подлинность запроса по секретному ключу
  4. Если проверка успешна — создаётся новый деплой
  • Проект создан в ONREZA и подключён к Git репозиторию
  • Доступ к настройкам репозитория в GitVerse или SourceCraft
  • Права на создание webhooks в репозитории
  1. Откройте настройки проекта

    Перейдите в ваш проект → Settings → Git

    Настройки проекта — раздел Git

  2. Включите автоматический деплой

    В секции Incoming Webhooks включите переключатель Автоматический деплой

  3. Сгенерируйте секрет

    Нажмите Сгенерировать секрет. Этот секрет нужен для проверки подлинности запросов от Git провайдера.

  4. Скопируйте данные

    Вам понадобятся:

    • Webhook URL — адрес для отправки уведомлений
    • Webhook Secret — секретный ключ для авторизации

Для проектов из GitHub репозиториев webhooks настраиваются автоматически при установке GitHub App. Никаких дополнительных действий не требуется.

GitHub App использует общий webhook приложения. Его доставки не отображаются в обычном списке Settings → Webhooks отдельного репозитория.

Чтобы проверить доступ ONREZA к репозиторию:

  1. Откройте Workspace → Settings → Git в ONREZA.
  2. Перейдите к управлению установленным GitHub App.
  3. Убедитесь, что нужный репозиторий включён в выбранный набор доступа.
  4. Проверьте настройки автодеплоя и ветки в проекте ONREZA.

Если webhook не работает:

  1. Откройте Workspace → Settings → Git
  2. В карточке GitHub нажмите Manage или Install GitHub App
  3. Выберите “Configure” рядом с вашим аккаунтом
  4. Убедитесь что репозиторий выбран в списке

После настройки сделайте тестовый пуш в репозиторий:

Окно терминала
git commit --allow-empty -m "Test webhook"
git push

Если всё настроено правильно, в ONREZA автоматически создастся новый деплой. Вы увидите его на странице проекта в разделе Deployments.

При получении webhook от Git провайдера, ONREZA выполняет запросы к Git API для получения информации о коммите. Если Git API временно недоступен:

  • Автоматические повторные попытки (до 3 раз)
  • Экспоненциальная задержка между попытками (1с → 2с → 4с)
  • Jitter для предотвращения thundering herd
  • Повторные попытки только для transient ошибок (5xx, 429, таймауты)

Это повышает надёжность деплоя при временных проблемах с Git провайдером.

Несколько проектов из одного репозитория

Заголовок раздела «Несколько проектов из одного репозитория»

ONREZA поддерживает создание нескольких проектов из одного Git репозитория. Это полезно когда:

  • Вы хотите разные настройки сборки для разных окружений
  • В монорепозитории несколько приложений
  • Нужны разные environment variables для разных инстансов

Как настроить:

  1. Создайте несколько проектов в ONREZA из одного репозитория
  2. В каждом проекте сгенерируйте свой секрет
  3. В Git провайдере создайте отдельный webhook для каждого проекта

Если секрет был скомпрометирован или вы хотите его обновить:

  1. Откройте настройки проекта → Git → Incoming Webhooks
  2. Нажмите кнопку перегенерации (иконка обновления) рядом с секретом
  3. Подтвердите действие
  4. Обязательно обновите секрет в настройках webhook в Git провайдере

Для настройки автоматического деплоя через CLI:

Окно терминала
# Аутентифицируйтесь через Device Flow
nrz login
# В браузере откроется страница подтверждения
# Введите код устройства (например: BCD3-7X9P)
# После подтверждения CLI получит API ключ (nrz_xxxxxxxxxxxx)
# Ключ сохраняется локально и используется для всех команд

Преимущества Device Flow:

  • Безопасная аутентификация без передачи пароля через CLI
  • API ключ привязан к workspace
  • Автоматическое обновление сессии
  • Возможность отзыва ключа через веб-интерфейс
  1. Проверьте что автодеплой включён — переключатель в настройках Git должен быть активен
  2. Проверьте секрет — убедитесь что секрет в Git провайдере точно совпадает с секретом в ONREZA
  3. Для GitVerse — секрет должен быть без префикса Bearer
  4. Проверьте URL — убедитесь что Webhook URL скопирован полностью

Деплой создаётся для неправильного проекта

Заголовок раздела «Деплой создаётся для неправильного проекта»

Если у вас несколько проектов из одного репозитория и деплой создаётся не для того проекта:

  1. Убедитесь что для каждого проекта создан отдельный webhook в Git провайдере
  2. Проверьте что секреты не перепутаны между проектами
  3. Перегенерируйте секреты и заново настройте webhooks
  • GitVerse: Проверьте что секрет в поле Authorization указан без Bearer
  • SourceCraft: Убедитесь что секрет указан в поле Secret, а не в URL

Если webhook получен но деплой не создаётся:

  1. Проверьте логи деплоя в ONREZA
  2. Возможны временные проблемы с Git API — retry механизм попытается повторить запросы автоматически
  3. Если проблема persists, проверьте статус Git провайдера