Работа со связанными задачами

В реальном мире задача Jira редко существует изолированно. Задачи могут быть связаны между собой разными способами:

  • Ссылки на задачи (относится к, блокирует, дублирует)
  • Родитель -> Подзадачи
  • Эпик -> Истории
  • Похожие значения полей
  • ... и многое другое!

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

  • Условие связанных задач - для проверки состояния связанных задач. Например, все ли связанные задачи закрыты?
  • Действие правила ветвления - применение действий к связанным задачам. Например, передать все подзадачи.

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

 

Связанные задачи в разных проектах

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

Состояние связанных задач

С помощью условия «Задачи, связанные с Automation for Jira» вы можете проверить состояние взаимосвязей перед тем, как продвигать правило.

Мы предоставляем несколько встроенных взаимосвязей: подзадачи, родительские, эпические, истории, связанные задачи, задачи в спринте / версии. В качестве альтернативы, если отношения можно описать в терминах JQL, мы также позволяем вам это делать.

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

Это позволяет использовать широкий спектр вариантов использования, в том числе: 

  • Связаны ли с этой проблемой какие-либо связанные задачи типа X?
  • Продолжайте, только если задача связана с родителем или эпиком ("Epic")
  • Не назначены ли какие-либо задачи в спринте / версии?
  • Все ли истории в этой эпике разрешены?
  • Убедитесь, что для решенных подзадач типа «QA» задано значение «Примечания к тестированию» ("Testing notes") ...

Разветвление по связанным задачам

Также возможно выполнять действия против связанных задач - это называется «Ветвление» ("Branching"). Это относится к правилу, которое больше не выполняется линейно, но распространяется на несколько путей.

Когда правило разветвляется на задачу или список задач, подветвь правила выполняется для каждой задачи. Все действия и ссылки на {{issue}} указывают на связанную задачу, а не на триггер.

Примечание. Вы по-прежнему можете ссылаться на задачу с триггером, используя вместо этого {{triggerIssue}}.

У вас также есть возможность обрабатывать эти задачи массово.

Вот несколько примеров использования ветвления:

  • Синхронизируйте все подзадачи, скопировав значение из родительского в поле X
  • Переместите эпос в «В процессе» ("In progress"), когда история переместится в «В процессе» ("In progress").
  • Комментируйте связанные проблемы, связанные с "заблокировано" ("is blocked by"), после того, как задача будет решена.

Ветви  изолированы

Любые изменения, происходящие в ветке, не будут видны ни основной, ни другим ветвям.

Ограничения ветвления

В настоящее время Automation for Jira не поддерживает вложение веток и не позволяет использовать блоки If / Else внутри ветки.

Заказ ветвей исполнения

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

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

Филиалы по отдельным задачам запускаются встроенными (для повышения производительности). Следовательно, основная ветвь не продолжит выполнение, пока не завершится подчиненная ветвь.

Доступ к созданным задачам

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

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

Вот пример правила для решения этой задачи:

Вы также можете выбрать задачу «Последние созданные» ("Most recently created") в условии «Связанные задачи» ("Related Issues"), если это единственная задача, которую вам нужно предпринять.

 

Разветвление по потоку?

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

Наше новое условие If / else сделало эту опцию почти лишней.

Доступ к задаче триггера

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

Пример: синхронизация родительских задач и подзадач

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

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

По материалам Automation for Jira - Server:Working with related issues