Validation on linked issues checks up both, previously created issue links, and new issue links created in transition screen. When we want to check issue links created exclusively in transition screen, we should use Boolean validator with math, date-time or text-string terms with a boolean expression with function transitionLinkedIssues()
. Example: Validate only issue links created in transition screen
We are going to use Validation on linked issues to block "Start Progress" transition whenever current issue has an "is blocked by" issue link with an issue in a status different from "Resolved", "Closed" or "Done":
Once configured, "Start Progress" transition looks like this:
The Boolean validator with math, date-time or text-string terms equivalent to this validation is: count(filterByPredicate(linkedIssues("is blocked by"), ^%{00016} not in ["Resolved", "Closed", "Done"])) = 0
Note that:
We want to guarantee that all duplicate issues have been closed before the original issue can be closed. At the same time we want guarantee that, for consistency, all duplicates have the same value in fields "Components", "Affected versions" and "Fixed versions", and that they belong to the same project as main issue:
The boolean expression used for filtering field values is: ^%{00094} = %{00094} AND ^%{00074} = %{00074} AND ^%{00077} = %{00077}
Note that:
Once configured, "Close Issue" transition looks like this:
count(filterByPredicate(linkedIssues("is duplicated by"), ^%{00016} != "Closed" OR ^%{00018} != %{00018} OR ^%{00094} != %{00094} OR ^%{00074} != %{00074} AND ^%{00077} != %{00077})) = 0
Note that:
We want to use Validation on linked issues to forbid the existence of "blocks" and "clones" issue links to "Bug" issue types:
Once configured, the transition looks like this:
The Boolean validator with math, date-time or text-string terms equivalent to this validation is:
count(filterByIssueType(linkedIssues("blocks, clones"), "Bug")) = 0
or count(filterByPredicate(linkedIssues("blocks, clones"), %{00014} = "Bug")) = 0
Note that: