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
Плагин настраивается отдельно для каждого проекта:
- Откройте Settings нужного проекта.
- Перейдите в Legacy Integrations.
- Включите Bitrix24 Notifications.
- На странице 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c94840217785e69dab869c5e4474fe109ba90ad4dca8b4299a72f918c7ec953
|
|
| MD5 |
f551ff6b878fb9329f16d9da65b141d3
|
|
| BLAKE2b-256 |
439ff58537d0ac6dff83152753124fb94973eb431d72a1d82d5fd99197a8a969
|
File details
Details for the file sentry_bitrix24-0.3.0-py3-none-any.whl.
File metadata
- Download URL: sentry_bitrix24-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f640fc979895079c74015bf1a50eb0c38eb7cfc8e424b0c25f1a77326e2a7f2
|
|
| MD5 |
6a0c990dabbb91a5174e5d2a8d71e2dd
|
|
| BLAKE2b-256 |
7e97ba83ec374a51d45027c5cc17e20c8bcf21dcb2ce7cf85ceb848cf87b620c
|