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

Настройка Webhooks

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

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

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

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

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

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

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

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

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

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

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

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

Если хотите убедиться что webhook настроен:

  1. Откройте настройки репозитория

    Перейдите в ваш репозиторий на GitHub → SettingsWebhooks

  2. Проверьте наличие webhook

    Вы должны увидеть webhook от “ONREZA GitHub App”

  3. Проверьте события

    Webhook настроен на события:

    • Push — для деплоя при пуше коммитов
    • Pull Request — для preview деплоев

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

  1. Откройте Account → Settings → Authentication
  2. Найдите GitHub и нажмите 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. Откройте настройки проекта → GitIncoming 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 провайдера