Интеграция redmine и telegram

Обновлено: 19.09.2024

Плагин предназначен для рассылки уведомлений пользователям Redmine через Telegram или E-mail.

Пожалуйста, помогите нам сделать этот плагин лучше, сообщая во вкладке Issues обо всех проблемах, с которыми Вы столкнётесь при его использовании. Мы готовы ответить на Все ваши вопросы, касающиеся этого плагина.

  • Ruby 2.4+
  • Redmine 3.1+
  • Настроенный redmine_telegram_common
  • У Вас должен быть бот в Telegram
  • Установите Redis 2.8 или выше. Запустите Redis и добавьте его запуск в автозагрузку.
  • Установите плагин redmine_sidekiq.
  • Настройте Sidekiq на обработку очереди default и telegram . Пример конфига - разместите его в папке redmine/config (Можно скопировать из plugins/redmine_intouch/extras/sidekiq.yml в config/sidekiq.yml).
  • Плагин устанавливается стандартно:

Примеры конфигурационного файла и скрипта для init.d находятся в папке extras

Обновление с 1.0.2 до 1.1.0+

Начиная с версии 1.1.0 redmine_intouch (так же, как и другие telegram-плагины от Southbridge) использует бота из redmine_telegram_common. Чтобы произвести миграцию для использования единого бота, нужно выполнить команду bundle exec rake telegram_common:migrate_to_single_bot . Token бота будет взят из одного из установленных плагинов от Southbridge в следующем приоритете:

  • redmine_chat_telegram
  • redmine_intouch
  • redmine_2fa

Также потребуется переинициализировать бота на странице настроек redmine_telegram_common. Обратите внимание, что необходимо вручную заменить бота на нового в групповых чатах

Обновление с 0.3 на 1.0.0+

Начиная с версии 1.0.0 этот плагин использует redmine_telegram_common версии 0.1.0, в которой ушли от зависимости от Telegram CLI. Обратите внимание на новые зависимости.

Обновление с 0.2 на 0.3+

Перед обновлением установите этот плагин.

После обновления запустите bundle exec rake intouch:common:migrate RAILS_ENV=production для миграции пользоватльских данных в новую таблицу.

В версии 0.4 модель TelegramUser будет упразднена, в месте с ней будет удалена старая таблица telegram_users .

В секции "Протоколы" указываются требуемые протоколы уведомлений. В настоящий момент доступны - telegram и email.

В секции "Рабочие дни" указываются:

  • время начала и завершения рабочего дня
  • какие дни недели являются рабочими

В секции "Срочные задачи" указываются приоритеты задач, для которых необходимо всегда отправлять уведомления, независимо от времени суток и дня недели

Плагин содержит функционал периодических уведомлений о задачах "В работе" или со статусом "Обратная связь". Для правильной интерпретации этих статусов плагином, укажите их в соответствующих секциях.

Перед запуском бота на странице настройки плагина нужно указать:

  • рабочее время - в это время отправляются уведомления по не срочным задачам
  • указать какие приоритеты считать срочными
  • указать какие статусы считать в работе и обратной связью
  • сохранить настройки

Добавление аккаунта Telegram к пользователю

После выполнения команды пользователь получит письмо со ссылкой. Переход по ссылке свяжет аккаунты пользователя и он сможет получать одноразовые пароли от бота.

Если бота обновили

Если у вас поменялся бот, то каждому пользователю нужно с ним лично поздороваться.

То есть через поиск найти @YourTelegramBot и написать ему /start

Добавление группы Telegram

Группы добавятся в Redmine автоматически, если в них будет добавлен бот.

Название группы сохраняется сразу при добавлении. Если, какое-то время спустя, вы изменили название группы и хотите, чтобы в Redmine название также обновилось - выполните команду /rename в групповом чате.

В чате с ботом

В групповом чате

  • /update - обновить название группы (если переименовали группу в Telegram)

Подсказки для команд бота

Чтобы добавить подсказки команд для бота, используйте команду /setcommands в беседе с @BotFather. Нужно написать боту список команд с описанием:

Шаблоны настроек позволяют один раз задать все требуемые настройки для проектов, а потом в каждом проекте выбрать нужный шаблон. Подробней о настройках плагина внутри проекта читайте ниже.

Расписание регулярных уведомлений

В плагине предусмотрены

  • Уведомления о задачах со статусом "В работе"
  • Уведомления о задачах со статусом "Обратная связь"
  • Уведомления о неназначенных задачах
  • Уведомления о просроченных задачах

Периодичность и получатели этих уведомлений, настраиваются в каждом проекте индивидуально, либо с использованием шаблонов.

Расписание регулярных уведомлений настраивается на странице настройки плагина, на вкладке Расписание периодических задач.

При первой установке плагина, нужно инициализировать периодические задачи.

Для этого нужно нажать ссылку Инициализировать периодические задачи на вкладке Расписание периодических задач в настройках плагина.

После этого можно настроить удобное вам расписание периодических уведомлений.

Расписание настраивается используя синтаксис CRON.

Настройка модуля внутри проекта

В настройках проекта на вкладке "Модули" нужно выбрать модуль Intouch. В результате в настройках появится вкладка "Intouch".

На этой вкладке есть три секции:

  • Мгновенные уведомления при смене статуса/приоритета задачи
  • Периодические уведомления
  • Группы исполнителей - уведомления, адресованные Исполнителю, будут отправлены только, если Исполнитель входит в одну из отмеченных в этой секции групп.

Мгновенные уведомления при смене статуса/приоритета задачи

В этой секции настраиваются мгновенные уведомления для следующих получателей:

  • автор
  • исполнитель - уведомления, адресованные Исполнителю, будут отправлены только, если Исполнитель входит в одну из групп отмеченных в секции "Группы исполнителей".
  • наблюдатели за задачей
  • группы Telegram

В общих настройках указываются интервалы периодических уведомлений для различных приоритетов.

В работе / Обратная связь

На этих вкладках указываются получатели периодических уведомлений о задачах со статусами "В работе" и "Обратная связь"

Неназначенные / Назначенные на группу

На этой вкладке указываются получатели периодических уведомлений о задачах

  • без назначенного исполнителя
  • назначенные на группу

Просроченные / Без даты завершения

На этой вкладке указываются получатели периодических уведомлений о задачах

  • дата завершения которых находится в прошлом
  • с неуказанной датой завершения

Возможно у вас не инициализировано Расписание периодических задач.

В настройках плагина зайдите на вкладку Расписание периодических задач и нажмите ссылку Инициализировать периодические задачи.

Некоторое время назад я рассказал от том «Как хранить сложную иерархию настроек в проектах Redmine». Рассказ этот базировался на опыте разработки плагина redmine_intouch. В этой публикации расскажу о самом плагине и том, чем он может быть полезен для вас.

Наша компания растёт, полагаться на человеческий фактор всё сложнее и сложнее, а многочисленные клиенты ожидают мгновенной реакции на свои заявки.

В связи с этим мы стараемся максимально автоматизировать все возможные процессы, напоминать администраторам о необходимости вовремя написать статус по открытым задачам клиентам…

Так появилась идея создать плагин, который будет отправлять уведомления широкому кругу лиц — исполнителю, автору, наблюдателям за задачей, а также в специализированные групповые чаты.

image



Также важно было настроить периодические напоминания о задачах, в которых давно не было комментариев и обновления статуса, либо не назначили исполнителя.

image

image

Общие настройки

В общих настройках плагина вы можете указать, какие дни считать рабочими и какое время. В соответсвии с этими настройками отправляются уведомления о не срочных задачах.

Приоритеты срочных задач указываются дополнительно. Уведомления об этих задачах будут отправляться круглосуточно и без выходных.

В настоящий момент плагин осуществляет отправку уведомление через почту и Telegram. Но если вы желаете использовать только один из этих протоколов, вы можете отключить ненужный в настройках плагина.

Мгновенные уведомления

  • автор задачи
  • исполнитель
  • наблюдатели
  • групповые чаты Telegram

Группы исполнителей

Часто бывает ситуация, когда клиент забыл переключить задачу на администратора, но написал нужный комментарий.

Чтобы администраторы получали своевременно уведомления о подобных изменениях, в плагин добавлен функционал групп исполнителей.

Только участники выбранных групп, считаются исполнителями и получают уведомления. Если в задаче участвует несколько исполнителей, исполнителем считается тот из них, кто последний оставлял комментарий или вносил какие-то изменения в задачу.

Периодические уведомления

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

image

Для исправления таких ситуация служит функционал периодических уведомлений.

  • со статусом «В работе» или «Обратная связь»
  • не назначенные или назначенные на группы
  • просроченные или без указанной даты завершения

Например, Аварию стоит обновлять хотя бы раз в час, задачу с приоритетом Высокий — раз в 4 часа, а низкоприоритетную можно и вовсе не комментировать.

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

В этой публикации я не буду рассказывать о тонкостях настройки плагина, т.к. довольно детально это сделал в файле README.

Если возникнут какие-то вопросы, с радостью отвечу на них в комментариях.

  • обновление программного обеспечения
  • мониторинг доступности ресурса 24x7
  • оптимизацию настроек для нагруженных проектов
  • аппаратный мониторинг
  • помощь в отражении DDoS-атак
  • сбор статистики по нагрузке на сервер
  • удаленное резервное копирование
  • поддержку нагруженных проектов

UPD 3.12.2015: Плагин работает с Redmine версии 3.1.2 или выше

Но прогресс не стоит на месте, мы развиваемся, и не только с профильной стороны, но и сточки зрения сервиса. За последние 2 года численность пользователей смартфонов для повседневных задач и работы выросла в несколько раз. Конечно, мы начали получать все больше запросов от клиентов на возможность коммуницировать через мобильные мессенджеры. Мы не могли уже противостоять этому, и стали искать какой из популярных мессенджеров официально интегрировать в нашу инфраструктуру. На тот момент наш выбор пал на Telegram, потому что у него предельно удобный веб-клиент и мобильное приложение, и нет лишних тяжелых обвесов, как у мессенджера ВК, например.

Давайте заглянем на наш чат-бот для Telegram поближе, разберемся на что он способен и как им пользоваться.

Авторизируемся

Для работы с чат-ботом необходимо иметь Redmine-аккаунт.

Сначала придумываем себе username и прописываем в настройках Telegram.

Данный username также прописываем в настройках Redmine.

Находим в Telegram чат-бота @nixys_support_bot и пишем “Start”.

Ставим задачи

Если надо создать новую задачу, бот предложит дополнительные настройки.

Можно выбрать проект.

Указать приоритет задачи.

Также есть возможность проскочить все настройки и сразу нажать «Создать задачу», бот создаст задачу с автонастройками (базовыми).

Затем бот уведомляет о создании соответствующего тикета в Redmine, c кликабельной ссылкой.

В Redmine поставленная задача будет выглядеть следующим образом:

Если нажали «Выбрать задачу», бот предложит список открытых на текущий момент задач, в которые можно добавить комментарий.

При этом мы имеем возможность взаимодействовать только с теми проектами, к которым мы подключены в Redmine.

Ведем переписку по задачам

Как только что-то происходит в задаче, бот об этом сообщает. Например, администратор отписывается о проделанной работе.

В Telegram приходит данный комментарий с указание задачи, статуса и отправителя.

Прикрепляем файлы

Мы можем в ответ так же прикрепить необходимые файлы, которые аналогичным образом прикрепятся к задаче в Redmine.

Темой данной статьи является плагин redmine_intouch и польза, которую он может принести.

К сожалению, не всегда можно полагаться на человеческий фактор, особенно в ситуациях, когда сотни клиентов ждут сиюминутной реакции на поданные ими заявки.


Целесообразной является максимальная автоматизация всех процессов, например таких, как рассылка администраторам напоминаний о необходимости своевременных изменений статусов открытых задач пользователей.

Было принято решение создать новый плагин Telegram для Redmine. После его интеграции, Redmine отправляет оповещения большому количеству людей, среди которых:

  • наблюдатели;
  • авторы;
  • специальные чаты;
  • исполнители.

Уведомления redmine в телеграмм

Напоминание о назначении исполнителя

Если вдруг кто-то примется за выполнение какой-либо задачи в Redmine, его друзья увидят оповещения Телеграмм, в которых будет указан статус «в работе».

Оповещение друзей о назначении исполнителя

Общие настройки

В них можно указать время и дни, которые следует считать рабочими. Отправляемые в Redmine Телеграмм уведомления будут формироваться исходя из этих данных.

Приоритетность задач устанавливается дополнительными настройками. Уведомления о срочных заданиях в Redmine рассылаются ежедневно 24 часа в сутки.

Настройка уведомлений в redmine

Моментальные оповещения

Довольно часто возникает необходимость сделать так, чтобы Telegram оповещения рассылались сразу после изменения:

  • статуса;
  • приоритета определенного задания;
  • любого выбранного поля.
  • автор задания;
  • его исполнитель;
  • наблюдатель;
  • групповой чат.


Объединения исполнителей

Иногда клиенты, написав нужный комментарий, просто забывают переключить задание на администратора. Но он может вовремя получить оповещение в Telegram о подобном случае. Для этого в плагине предусмотрен функционал объединений пользователей.

Участники указанных в настройках групп будут считаться исполнителями и смогут получать соответствующие Telegram уведомления.

Если участвовала группа пользователей, им будет являться тот, кто:

  • последним внесет какие-либо изменения в задание;
  • оставит последний комментарий.

Регулярные уведомления


Иногда исполнители настолько погружаются в выполнение задач, что забывают в нужное время написать комментарий или обновить статус.

  • не назначенных на какие-либо группы;
  • назначенных;
  • со статусом «Обратная связь», «В работе»;
  • просроченных;
  • без установленной даты окончания.

Задачам может быть присвоен разный приоритет, поэтому интервалы между уведомлениями можно для них настраивать разные.

О том, как настроит для telegram redmine, достаточно подробно написано в файле readme.

Читайте также: