Как мы сократили отчёты по Jira с 2 часов до 1 клика: Jira Automation to Telegram

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

Мы добились этого с помощью Jira Automation и Telegram Bot API, полностью избавившись от рутинных отчётов и ускорив работу команды.

Чтобы освободить команду от рутины, я возглавил инициативу по внедрению автоматизации — о её результатах расскажу в этой статье. Стоит сказать, что до этого я был обычным пользователем Jira, без глубокого погружения в её внутренние возможности. Тем интереснее этот кейс оказался для меня!

Егор Наумов, младший менеджер проектов

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

Этот процесс отнимал значительное время: можно было случайно пропустить задачу или перепутать статусы, а за несколько часов до отправки что-то могло измениться. Также у нас было еще несколько мелких проблем, а именно каждый день в 11:00 у нас проходит дейлик, о котором постоянно нужно напоминать, так как обязательно кто-то о нем забудет. Также тестировщики сами мониторили доску/Telegram в поисках задач, готовых к тесту, а назначение исполнителей происходило вручную. В итоге часть задач могла долго висеть готовой к тестированию просто потому, что кто-то не увидел сообщение в телеграмме или был указан неверный исполнитель.

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

Еще один триггер - уведомление тестировщика о том, что задачу можно брать в тест. Изначально разработчик сам писал в чат, когда задача была готова к тестированию, тегал менеджера, который в свою очередь писал тестировщику. Такая цепочка достаточно длинная – взялись за оптимизацию этого процесса:

Как мы сократили отчёты по Jira с 2 часов до 1 клика: Jira Automation to Telegram

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

Как мы сократили отчёты по Jira с 2 часов до 1 клика: Jira Automation to Telegram

Это уже решило половину проблемы и избавило разработчиков от необходимости писать в чат по каждой задаче. Но осталась вторая часть - необходимость передать задачу тестировщику. В этой связи триггер был улучшен: теперь он проверяет человека, который указан в поле “Тестировщик“ в карточке задачи и в зависимости от его значения уведомляет нужного человека. Если же это поле пустое, то уведомление приходит мне, как менеджеру.

В завершение моей дебютной статьи расскажу вам о самом сложном триггере, который я настраивал за последнее время.Недавно у нас изменился формат еженедельного отчёта: теперь нужно не просто перечислить задачи со спринта, а построить структуру «родитель → дочерние», включить в отчёт и родительскую задачу, и все её дочерние, указать их текущие статусы и даты релиза. Раньше такой отчет я бы сел собирать руками и потратил несколько часов, но захотелось попробовать все это максимально автоматизировать. Для этого требовалось использовать набор smart values и вложенных условий, с которыми раньше я практически не сталкивался.

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

Как мы сократили отчёты по Jira с 2 часов до 1 клика: Jira Automation to Telegram
{ "chat_id": "<айди чата>", "message_thread_id": <айди топика>, "parse_mode": "html", "text": "{{#lookupIssues}} 📦<b><a href=\"https://media-life.atlassian.net/browse/{{key}}\">{{key}} - {{summary}} </a></b>\n {{#issuelinks.outwardIssue}} {{#if(not(equals(project.key, "MAD")))}} • {{key}} - {{status.name}} - {{fields.priority.name}} - {{if(dueDate.format("dd.MM.yyyy").isNotEmpty(), dueDate.format("dd.MM.yyyy"), "null")}}{{/}} {{/}}\n {{/}}" }

· {{#lookupIssues}} … {{/lookupIssues}} — внешний цикл, который проходит по списку задач, полученных в предыдущем шаге с помощью блока “Найти задачи“.

· {{key}} - {{summary}} — формирует жирную ссылку на родительскую задачу по её ключу и краткому описанию.

· {{#issuelinks.outwardIssue}} … {{/issuelinks.outwardIssue}} — для каждой родительской задачи проходит ещё один цикл по её «внешним» связям, тк родительская задача связана с дочерними связью is parent of.

Внутри этого цикла:

· not(equals(project.key, "MAD")) — пропускает связанные задачи, если они принадлежат проекту с ключом MAD (тк это доска дизайна и нам не нужна)

· {{key}} - {{status.name}} - {{fields.priority.name}} — выводим ключ задачи, её статус и приоритет.

· {{if(dueDate.format("dd.MM.yyyy").isNotEmpty(), dueDate.format("dd.MM.yyyy"), "null")}} — форматируем поле дедлайна в dd.MM.yyyy; если оно пустое, подставляем строку "null".

В конечном итоге получаем следующий результат:

Как мы сократили отчёты по Jira с 2 часов до 1 клика: Jira Automation to Telegram

На данный момент мы настроили более 10 автоматических триггеров, которые закрывают наши основные потребности и боли — от напоминаний о дейликах до отчётов одним кликом. Так мы сократили время на организационные задачи в пять раз, ускорили переход между этапами и сделали всю работу прозрачной. В следующей статье я подробно расскажу, как создавать и настраивать такие триггеры в Jira Automation, чтобы вы могли повторить наш опыт.

Отдельная благодарность моему руководителю Павлу Шульцу за поддержку и идеи при разработке автоматизаций!

4
Начать дискуссию