[На главную страницу сайта Teamlead] ->>

Вложенные страницы
  • Автоматизация переходов workflow в JIRA по определенным событиям
Перейти к концу метаданных
Переход к началу метаданных

Большим преимуществом использования JIRA для поддержки является то, что можно постоянно отслеживать статус запроса (в отличие от таких инструментов, как e-mail). Таким образом, всегда известно, от кого ждать ответа в текущий момент, и не возникает сомнения, когда запрос является закрытым.

Задача

Необходимо, чтобы JIRA изменяла статус запроса при определенном действии клиента (или специалиста поддержки):

  • Клиент вносит изменения в запрос (например, вкладывает скриншот)
  • Клиент комментирует запрос, не нажимая при этом кнопку перехода
  • Клиент отправляет письмо на сервисный ящик, тем самым добавляя комментарий

Обычно, изменения и новые комментарии не инициируют workflow-переход.

Решение

  • 7 января 2014 года вышел бесплатный плагин от разработчиков Atlassian JIRA Automation Plugin, который полностью заменяет весь описываемый здесь функционал.
  • Еще одна альтернатива - Really Simple Escalation

 

В JIRA можно настроить специальный слушатель событий (event listener), который будет запускать workflow-переход при наступлении определенного события. Данный тип слушателя называется AutoTransitionListener и является частью JIRA Toolkit Plugin, который необходимо скачать и установить.

Пример

Далее будет рассмотрен пример, как сделать так, чтобы при внесении комментария автором осуществить workflow-переход на нужный этап. Создадим новый слушатель (listener) в соответствующем разделе Администрирования JIRA. В качестве названия укажем понятное название слушателя (например "Customer Commented"), в качестве класса - com.atlassian.jira.toolkit.listener.AutoTransitionListener.

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

  • Event ID - идентификатор действия, на которое слушатель должен отрабатывать слушатель
  • Action ID - идентификатор перехода, который должен осуществляться слушателем
  • Status - статус, в котором должны обрабатываться запросы данным слушателем
  • Project Key - ключ проекта, для которого должен отрабатывать слушатель
  • Only do when current user is the Reporter? - осуществлять ли переход только тогда, когда текущий пользователь является Автором запроса
  • Only do when current user is the Assignee? - осуществлять ли переход только тогда, когда текущий пользователь является Исполнителем запроса

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

В указанном примере слушатель будет осуществлять переход 711 при событии 6 (комментирование запроса) запросов, находящихся в статусе 10026 (Ожидание ответа автора) в проекте SUPPORT только для Автора запроса.

9 Комментариев

  1. Не могу понять, почему возникает ссылка на AutoTransitionListener и как ее убрать..

    1. это сейчас везде по системе...я сам не знаю, по-моему какой-то плагин говнит...

      1. Да, причем реагирует только на определенные слова. Например, MySQL

    2. Ха, это подарок от венгров:

      1. ага, видать интересная тема, почитай на досуге про алгоритм распознавания слов, мож это полезно...

  2. CamelCase - то есть слово состоящие из двух слов слитно написанных с большой буквы (улыбка)

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

    Например:

    Создана корневая задача, от неё создана под-задача(согласование), я привяжу в листнере переход по решению под-задачи. Перевожу под-задачу(согласование) в резолюцию - решено и статус согласовано. И ворк-флоу корневой задачи изменяется на другой (установленный заранее мной)?

    Спасибо за ответ!

    1. Можно двигаться, взяв за основу следующее:

    • Клиент отправляет письмо на сервисный ящик, тем самым добавляя комментарий - Вот это не работает через JIRA Automation Plugin. Когда в самой задаче добавляю комментарий то задаче переоткрывается, а когда через почтовое письмо добавляю комментария, то не переоткрывается.