README.md

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, доступна возможность отправки сообщения сразу во все группы. Данная кнопка будет доступна в ЛС бота, после того как вы нажмете Начать.

Инструкция по использованию

  1. При обычной отправке сообщения боту, он создает обращение, поэтому для рассылки необходимо нажать кнопку Отправить сообщение для всех групп.
  2. После ответа бота “Введите сообщение для рассылки:”, отправьте ему сообщение, которое необходимо отправить во все группы.
  3. После отправки сообщения, бот отправит его во все группы, и вам придет уведомление об успешной отправке.

Установка

  1. Клонируем себе репозиторий, например в /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
    
  2. Установка зависимостей

    pip3 install -r requirements.txt
    

    или

    poetry install
    
  3. В issues_tg_bot.service.example находим ExecStart и меняем на свою команду запуска. Также меняем WorkingDirectory на директорию, где лежит скрипт.
    Пример:

    ExecStart=/usr/bin/python3 /home/scripts/issues-tg-bot/main.py
    WorkingDirectory=/home/scripts/issues-tg-bot
    
  4. Переименовываем 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
    
  5. Переименовываем 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.

Описание

Бот для создания обращений в отдельном канале при упоминании участников команды

Конвейеры
0 успешных
0 с ошибкой