Block a transition based on issue links

Evaluate issue links and hide transitions based on the outcome.

This use case is valid for both conditions and validators. The only difference is that you can specify an additional error message when using a validator.


issue.links.filter(link => link.type.name == "Blocks").length == 0

The current issue must not have a link of type "Blocks". This includes both link directions: "blocks" and "is blocked by".

You can easily modify this use case to include / exclude additional parameters.

issue.links.filter(link => link.type.name == "Blocks")
           .every(link => link.direction != "outward")

The current issue must not block any other issue.

issue.links.filter(link => link.type.name == "Blocks" && link.direction == "inward")
           .every(link => link.linkedIssue.resolution != null)

The current issue must not be linked to any unresolved blocking issue.

issue.links.every(link => link.linkedIssue.status.name == "Done")

All linked issues must be in the status done

issue.links.every(link => link.linkedIssue.issueType.name == "Bug" && link.linkedIssue.resolution != null)

All linked issues must be bugs and must be resolved.