On this page



Use case

Avoid the manual work by closing the parent after checking if all sub-tasks are done, let automation do it for you!




Issue transitioned event


Add a Trigger → Issue transitioned event

JQL condition

Add the following expression:

issuetype in subtaskIssueTypes()


Boolean condition

Next to the JQL condition click on Add → Boolean condition


Add the following expression:

%{trigger.issue.status} = "Done" and count(siblingSubtasks()) = count(filterByStatus(siblingSubtasks(), "Done"))


This way the rule execution will only continue, if the current issue was transitioned to Done and if all other sub-tasks under the current parent issue are also in status Done.




Issue selector

Next to the Boolean condition click on Add → Issue selector


Choose Parent issue as the target issue.



Transition issue

Finally, next to the Issue selector click on Add → Action → Transition issue


Set the mode to Transition to status and choose the status Done.







Screencast

No screencast available at the moment.


Import the example

Import the JSON file below to get started in no time.


{
    "name": "Automatically close parent when all sub-tasks are done",
    "description": "",
    "creator": "admin",
    "status": false,
    "triggerData": "",
    "triggerType": "ISSUE_TRANSITIONED_EVENT",
    "configuration": {
        "refs": [
            "issue",
            "system",
            "trigger.issue",
            "trigger.parent"
        ],
        "triggerType": ""
    },
    "children": [
        {
            "sequence": 0,
            "type": "JQL_CONDITION",
            "ruleEntityType": "CONDITION",
            "configuration": {
                "refs": [
                    "issue",
                    "project",
                    "system",
                    "trigger",
                    "trigger.issue",
                    "trigger.parent"
                ],
                "jql": "issuetype in subtaskIssueTypes()",
                "jqlParsingMode": "jql",
                "actingUser": "field_00020"
            },
            "children": [
                {
                    "sequence": 0,
                    "type": "BOOLEAN_CONDITION",
                    "ruleEntityType": "CONDITION",
                    "configuration": {
                        "refs": [
                            "issue",
                            "project",
                            "system",
                            "trigger",
                            "trigger.issue",
                            "trigger.parent"
                        ],
                        "expression": "%{trigger.issue.status} = \"Done\" and count(siblingSubtasks()) = count(filterByStatus(siblingSubtasks(), \"Done\"))",
                        "expressionParsingMode": "logical",
                        "actingUser": "field_00020"
                    },
                    "children": [
                        {
                            "sequence": 0,
                            "type": "ISSUE_SELECTOR",
                            "ruleEntityType": "SELECTOR",
                            "configuration": {
                                "refs": [
                                    "issue",
                                    "project",
                                    "system",
                                    "trigger",
                                    "trigger.issue",
                                    "trigger.parent"
                                ],
                                "option": "parent",
                                "issueListExpressionParsingMode": "issues",
                                "actingUser": "field_00020"
                            },
                            "children": [
                                {
                                    "sequence": 0,
                                    "type": "TRANSITION_ISSUE",
                                    "ruleEntityType": "ACTION",
                                    "configuration": {
                                        "refs": [
                                            "issue",
                                            "issues",
                                            "project",
                                            "selector.issue",
                                            "selector.parent",
                                            "system",
                                            "trigger",
                                            "trigger.issue",
                                            "trigger.parent"
                                        ],
                                        "option": "status",
                                        "status": "10012",
                                        "actingUser": "field_00020"
                                    },
                                    "children": null,
                                    "hasChildren": false
                                }
                            ],
                            "hasChildren": true
                        }
                    ],
                    "hasChildren": true
                }
            ],
            "hasChildren": true
        }
    ],
    "hasChildren": true
}




Related examples




JWT feature

Automated actionTransition issue action
Parser functions

count()

filterByStatus()

siblingSubtasks()

Label






Status
Tech review

Style guide