Block a transition if some issues under an epic are not in a certain status

Use case

Block the transition of an issue of Epic issue type if some of issues under it, differentiated by issue type, are not in a certain status.

🛠️ Configuration

Jira expressions*

All selected

Bash
!issue.isEpic || issue.stories.filter(story => story.issueType.name == "Issue type of the issue").every(story=>story.status.name == "Selected status")

All of the issues with a certain issue type are in the selected status.

You can modify the expression to cater your requirements in many ways. Here you can find some more examples.

At least one selected

Bash
!issue.isEpic || issue.stories.filter(i => i.issueType.name == "Issue type of the issue" && i.status.name == "Selected status").length >= 1

At least one issue with a certain issue type in the selected status.

None selected

Bash
!issue.isEpic || issue.stories.filter(i => i.issueType.name == "Issue type of the issue" && ["Status 01", "Status 02"].includes(i.status.name)).length == 0

None of the issues with a certain issue type are in any of the selected statuses.

Use case Workflow function Use case description
Block a transition based on the day of the week

Jira expression condition

Jira expression validator

Block transitions on weekends or any other day of the week.

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.

Check whether an attachment was added during the transition.

Jira expression condition

Jira expression validator

Make sure that the current user has uploaded a attachment during the transition. 

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.

Evaluate worklogs in sub-tasks

Jira expression condition

Jira expression validator

Evaluate if work has been logged in a sub-task to prevent transitioning the parent issue when no work has been logged.

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.

Check if an attachment was added recently

Jira expression condition

Jira expression validator

Make sure that the current user has uploaded a attachment during a definite period of time.

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.

Block a transition if some issues under an epic are not in a certain status

Jira expression condition

Jira expression validator

Check whether an epic has all issues under it in a certain status.

This is particularly important if you want to block an epic as long as work is still being done on related sub-tasks.

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.

Block a transition if a predefined field value has not been changed

Jira expression condition

Jira expression validator

Update fields

Evaluate a Date Picker field and block the transition if it has not been updated.

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.

Block a transition based on issue links

Jira expression condition

Jira expression validator

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.

Validate worklogs

Jira expression condition

Jira expression validator

Evaluate if a user has logged more than a certain amount of time in the latest worklog.


Check current issue status

Jira expression condition

Jira expression validator

Check whether the current issue is in a particular status.

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.

Evaluate the Parent field

Jira expression condition

Jira expression validator

Evaluate different values of the issue in the Parent Link field of the transitioned issue.

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.

Validate an issue only if a comment is written during the transition

Jira expression validator

Evaluate the comments and block transitions based on the outcome.

This use case is only valid for validators as it involves making changes during a transition. An additional error message can be added.

Block a transition based on sprint information

Jira expression condition

Jira expression validator

Make sure that an issue is not in an active sprint.

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.

Check the number of times that a field has changed

Jira expression condition

Jira expression validator

Check the number of times that a field has changed.

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.

Check parent issue type

Jira expression condition

Jira expression validator

Check whether the parent of the current issue is of a certain issue type.

This is particularly important if you want to reuse a workflow for multiple sub-task issue types but only want a transition to be available if the sub-task belongs to a certain user story or a bug.

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.

Check for unresolved sub-tasks

Jira expression condition

Jira expression validator

Check whether the current issue has any unresolved sub-tasks.

This is particularly important if you want to block a parent issue as long as work is still being done on related sub-tasks.

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.