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.
Описание
Бот для создания обращений в отдельном канале при упоминании участников команды