Входящие вебхуки

Вебхук — адрес, на который ваша система отправляет запрос, а Kontext превращает его в сообщение в канале. Сборки, деплой, мониторинг, платежи, формы.

Создать

  1. Откройте настройки пространства → вкладка «Приглашения» → раздел «Входящие вебхуки». Раздел доступен администраторам.
  2. Задайте название — оно будет видно в каждом сообщении — и выберите канал.
  3. Скопируйте адрес. Он показывается один раз: сохраните его в настройках системы, которая будет отправлять сообщения.

Потеряли адрес — отзовите вебхук и заведите новый.

Формат запроса

Метод POST. Kontext принимает любой из вариантов:

  • JSON с полем text: {"text": "Сборка #412 упала"}
  • JSON с полем body или message — так отправляют многие системы по умолчанию;
  • просто текст в теле запроса.

Текст поддерживает то же форматирование, что и обычные сообщения, включая блоки кода.

Примеры

curl

curl -X POST "$KONTEXT_WEBHOOK" \
  -H "Content-Type: application/json" \
  -d '{"text": "Деплой на прод завершён"}'

GitHub Actions

- name: Сообщить в Kontext
  if: failure()
  run: |
    curl -X POST "${{ secrets.KONTEXT_WEBHOOK }}" \
      -H "Content-Type: application/json" \
      -d "{\"text\": \"Сборка упала: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID\"}"

GitLab CI

notify:
  stage: .post
  when: on_failure
  script:
    - 'curl -X POST "$KONTEXT_WEBHOOK" -H "Content-Type: application/json" -d "{\"text\": \"Пайплайн упал: $CI_PIPELINE_URL\"}"'

Как это работает

  • Автор сообщений — тот, кто завёл вебхук; название вебхука стоит в самом сообщении.
  • Ограничение — 30 сообщений в минуту на вебхук: хватает на пачку упавших сборок и защищает канал от заливки.
  • Отозванный вебхук отвечает ошибкой 404 — ваша система узнает, что её больше не слушают.
  • Деактивировали автора — вебхук перестаёт работать: писать от имени человека без доступа нельзя.
  • Адрес — это ключ. Храните его в секретах CI, а не в коде репозитория.