Автоматизация Swimlanes на досках Jira

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В досках Kanban и Scrum есть удобный инструмент горизонтальной группировки задач swimlanes (дорожки). С помощью дорожек задачи можно группировать по разным категориям: типам задач, проектам, пользовательским полям и прочему. Многие из вас наверняка уже знакомы с этим инструментом и активно пользуются им.

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

С чего всё началось

Команда разработчиков разрабатывает и поддерживает сразу несколько продуктов. У каждого продукта есть несколько версий, в рамках которых ведутся работы. Один из способов отслеживания задач и их управления — Kanban-доска, на которой помимо фильтров также используются еще и swimlanes для группировки задач по версиям.

Тимлид каждый раз, когда в проекте Jira появляется новая версия по тому или иному продукту, добавляет на доску дорожку, где название дорожки = имя версии, а фильтр дорожки всегда такой: fixVersion = "version_name".

Когда все задачи в рамках конкретной версии решены и закрыты, версию выпускают (в настройках проекта жмут на кнопку «выпустить»), после чего лид снова идет в настройки доски и удаляет уже неактуальную дорожку с одноименным названием.

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

Ладно, ладно, если серьёзно — мы решили помочь.

Что мы сделали

Никто не хотел изобретать велосипед, поэтому мы пошли сразу в гугл и начали искать там всеми любимые гайды. Искали на русском, на английском, а заветных гайдов все равно нет. Тогда мы пошли в официальную доку Atlassian, нас интересовали классы RapidViewService, SwimlaneService, SwimlaneBuilder.

Вооружившись ScriptRunner'ом, мы написали слушатель событий VersionCreateEvent и VersionReleaseEvent.

Когда создана новая версия:

newSwimBuilder.name(version_name) // Задаем имя дорожки

newSwimBuilder.query("'fixVersion' = $version_name") // Фильтр дорожки

newSwimBuilder.position(2 as Integer) // Задаем позицию дорожки

SwimlaneService sls

def view = rapidViewService.getRapidView(user, 1).get() // ID доски

sls.add(user, view, newSwimBuilder.build()) // Собираем и добавляем новую дорожку

Когда версия выпущена:

Пробегаемся по всем дорожкам и если название дорожки совпадает с именем версии, то удаляем дорожку:

sls.delete(user, view, swim.getId(), null)

Что в итоге?

Тимлид стал немного счастливее, а админ Jira немного опытнее. И жили они долго и счастливо! :)

Источник: https://habr.com/ru/companies/sportmaster_lab/articles/770032/


Интересные статьи

Интересные статьи

Алексей Пешик, инженер-эксперт Security VisionМихаил Пименов, аналитик Security VisionС каждым годом методы получения неправомерного доступа к данным компаний и частных лиц становя...
Если вы подыскиваете программнное обеспечение для управления проектами, то Asana или Jira будут отличным выбором. В этой статье обсудим плюсы и минусы каждого из них, чтобы вы смогли выбрать самое под...
Что, если бизнес компании заключается в приеме и обработке платежей во множестве стран в режиме 365/24/7? В этом случае одной из ключевых целей ее сотрудников является доступность сервисов 99,999%. А ...
Меня зовут Дмитрий Макаренко, я Mobile QA Engineer в Badoo и Bumble: занимаюсь тестированием новой функциональности в наших приложениях вручную и покрытием её автотестами...
Добрый день, друзья! В прошлый раз мы провели взаимную интеграцию основных продуктов фабрики безопасности. Пришло время заключительной статьи цикла Fortinet Security Fabr...