Skip to main content

Plugin for Sentry which allows sending notifications to Bitrix24 chat.

Project description

sentry-bitrix24

Плагин для self-hosted Sentry, который отправляет уведомления об ошибках в чат Bitrix24 через метод imbot.message.add.

Протестирован с Sentry 23.9.1.

Возможности

  • Отправка уведомлений от имени чат-бота Bitrix24
  • Отдельная настройка для каждого проекта Sentry — разные проекты могут слать в разные чаты
  • Несколько чатов на один проект (по одному DIALOG_ID на строку)
  • Настраиваемый шаблон сообщения с BB-кодами Bitrix24

Установка

1. Скопировать плагин в папку sentry

При сборке Docker-образа Sentry в контейнер попадает только содержимое папки sentry/ из репозитория self-hosted. Скопируйте весь репозиторий плагина (корень, где лежит setup.py) в эту папку:

# из корня репозитория self-hosted
cp -r /path/to/sentry-bitrix24 sentry/sentry_bitrix24

Итоговая структура:

self-hosted/
└── sentry/
    ├── Dockerfile
    ├── enhance-image.sh
    ├── sentry_bitrix24/      ← скопированный плагин
    │   ├── setup.py
    │   └── sentry_bitrix24/
    │       ├── __init__.py
    │       └── plugin.py
    └── ...

Важно: путь в pip install указывает на корень с setup.py, а не на plugin.py.

2. Добавить установку в enhance-image.sh

cp sentry/enhance-image.example.sh sentry/enhance-image.sh

В sentry/enhance-image.sh:

#!/bin/bash
set -euo pipefail

pip install /usr/src/sentry/sentry_bitrix24

3. Пересобрать образ и запустить Sentry

./install.sh
docker compose up -d

Проверка:

docker compose exec web pip show sentry-bitrix24

Установка без пересборки образа

Если плагин уже скопирован в sentry/sentry_bitrix24/ на хосте (папка смонтирована в контейнер как /etc/sentry/):

docker compose exec web pip install /etc/sentry/sentry_bitrix24
docker compose restart web worker post-process-forwarder-errors

После обновления кода плагина:

docker compose exec web pip install --force-reinstall /etc/sentry/sentry_bitrix24
docker compose restart web worker post-process-forwarder-errors

Установка из PyPI

Если пакет опубликован на pypi.org, в enhance-image.sh достаточно:

pip install sentry-bitrix24

Настройка Bitrix24

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

В Bitrix24: Разработчикам → Другое → Входящий вебхук.

Выдайте права «Создание и управление чат-ботами (imbot)».

Скопируйте базовый URL:

https://example.bitrix24.ru/rest/1/your-webhook-token/

2. Регистрация чат-бота

После регистрации бота Bitrix24 выдаёт:

Параметр Поле в плагине Пример
BOT_ID Bot ID 123
CLIENT_ID (код бота) Client ID your-bot-client-id

3. Добавьте бота в чат

Бот должен быть участником чата. Для группового чата используйте chat{id}, например chat12345.

Проверка вебхука

Рабочий запрос (GET):

https://example.bitrix24.ru/rest/1/your-webhook-token/imbot.message.add.json?BOT_ID=123&CLIENT_ID=your-bot-client-id&DIALOG_ID=chat12345&MESSAGE=Привет!

Или POST (так отправляет плагин):

curl -X POST 'https://example.bitrix24.ru/rest/1/your-webhook-token/imbot.message.add' \
  -H 'Content-Type: application/json' \
  -d '{
    "BOT_ID": "123",
    "CLIENT_ID": "your-bot-client-id",
    "DIALOG_ID": "chat12345",
    "MESSAGE": "Тест из Sentry"
  }'

Настройка плагина в Sentry

Плагин настраивается отдельно для каждого проекта:

  1. Откройте Settings нужного проекта.
  2. Перейдите в Legacy Integrations.
  3. Включите Bitrix24 Notifications.
  4. На странице Configure plugin заполните поля:
Поле Пример
Bitrix24 webhook URL https://example.bitrix24.ru/rest/1/your-webhook-token/
Bot ID 123
Client ID your-bot-client-id
Dialog IDs chat12345
Message Template (см. ниже)

Для другого проекта Sentry повторите шаги 1–4 с другим Dialog IDs.

Плейсхолдеры шаблона

Плейсхолдер Описание
{project_name} Название проекта
{url} Ссылка на issue в Sentry
{title} Заголовок issue
{message} Текст ошибки
{culprit} Culprit
{tag[level]} Значение тега

Шаблон по умолчанию

[B][Sentry][/B] {project_name} {tag[level]}: [B]{title}[/B]
[CODE]{message}[/CODE]
[URL={url}]{url}[/URL]

Примечания

  • Используется метод imbot.message.add (не imbot.v2), так как Bitrix24 выдаёт BOT_ID + CLIENT_ID, а не botToken.
  • Один бот и один вебхук могут обслуживать все проекты — меняется только Dialog IDs в настройках каждого проекта.
  • Плагин использует legacy plugin API Sentry. Для Sentry 23.9.1 это должно работать.

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sentry_bitrix24-0.3.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sentry_bitrix24-0.3.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file sentry_bitrix24-0.3.0.tar.gz.

File metadata

  • Download URL: sentry_bitrix24-0.3.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for sentry_bitrix24-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1c94840217785e69dab869c5e4474fe109ba90ad4dca8b4299a72f918c7ec953
MD5 f551ff6b878fb9329f16d9da65b141d3
BLAKE2b-256 439ff58537d0ac6dff83152753124fb94973eb431d72a1d82d5fd99197a8a969

See more details on using hashes here.

File details

Details for the file sentry_bitrix24-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sentry_bitrix24-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f640fc979895079c74015bf1a50eb0c38eb7cfc8e424b0c25f1a77326e2a7f2
MD5 6a0c990dabbb91a5174e5d2a8d71e2dd
BLAKE2b-256 7e97ba83ec374a51d45027c5cc17e20c8bcf21dcb2ce7cf85ceb848cf87b620c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page