issues-tg-bot
Описание
Бот необходим для автоматизации процесса обработки сообщений в массиве Telegram групп.
При добавлении бота в группу, он отправляет welcome-сообщение, и начинает обрабатывать сообщения в группе. В случае, если был упомянут бот или любой сотрудник из списка, определенного в config.yaml
,бот отправляет сообщение в целевой telegram канал, обозначенный в config.yaml
.
Зависимости
- python 3.9+
- python-telegram-bot
- pyyaml
- jinja2
Обращение будет создано и в случае отправки личного сообщения боту.
Пример сообщения в целевом канале:
Новое обращение
ID: 1
Автор: @Username
Группа: Имя группы
Сообщение:
@YourBot не работает деплой на ифт01
Обработка сообщений в целевом канале
Доступны кнопки:
- Взять в работу
Данное действие покажет в исходном и целевом канале, что обращение взято в работу и кем. - Проблемы с инфраструктурой
При нажатии обращение будет закрыто, а создатель обращения получит уведомление о рекомендуемых действиях. - Закрыть обращение
При нажатии обращение будет закрыто, о чем все будут уведомлены.
Массовая рассылка сообщения
Для списка участников, определенных в config.yaml
, доступна возможность отправки сообщения сразу во все группы. Данная кнопка будет доступна в ЛС бота, после того как вы нажмете Начать
.
Инструкция по использованию
- При обычной отправке сообщения боту, он создает обращение, поэтому для рассылки необходимо нажать кнопку
Отправить сообщение для всех групп
. - После ответа бота “Введите сообщение для рассылки:”, отправьте ему сообщение, которое необходимо отправить во все группы.
- После отправки сообщения, бот отправит его во все группы, и вам придет уведомление об успешной отправке.
Установка
-
Клонируем себе репозиторий, например в
/home/scripts/issues-tg-bot
и переходим в директорию.git clone git@gitflic.ru:devops-tools/issues-tg-bot.git /home/scripts/issues-tg-bot cd /home/scripts/issues-tg-bot
-
Установка зависимостей
pip3 install -r requirements.txt
или
poetry install
-
В
issues_tg_bot.service.example
находимExecStart
и меняем на свою команду запуска. Также меняемWorkingDirectory
на директорию, где лежит скрипт.
Пример:ExecStart=/usr/bin/python3 /home/scripts/issues-tg-bot/main.py WorkingDirectory=/home/scripts/issues-tg-bot
-
Переименовываем
issues_tg_bot.service.example
вissues_tg_bot.service
и копируем в/etc/systemd/system/
sudo cp issues_tg_bot.service.example /etc/systemd/system/issues_tg_bot.service
- Переименовываем
config.yaml.example
вconfig.yaml
и заполняем необходимые поля.token
: токен ботаtargetChatId
: ID канала, в который будут отправляться обращенияteam
: список участников, которые будут упоминаться в обращениях.
У каждого участника:name
: Имя участникаlogin
: Логин участника (c @)id
: ID участника. Можно получить, используя бота@username_to_id_bot
Исключение: в список также нужно добавить вашего бота, чтобы его тоже можно было упомянуть и триггер сработал. Для него нужен толькоlogin
.
Секцию ui
оставляем как есть или смотрел раздел Кастомизация
Кастомизация
В файле config.yaml
есть секция ui
, которая позволяет настроить весь визуальный текст, используемый ботом, кроме сообщений об отладке.
Вы можете изменить содержание текста на свой вкус, однако обратите внимание, что в некоторых переменных используется Jinja шаблонизатор. Данные переменные в шаблонах можно удалить или менять положение.
Для каждого шаблона поддерживаются только те переменные, которые описаны в этом шаблоне в config.yaml.default
.
Описание
Бот для создания обращений в отдельном канале при упоминании участников команды