List all tasks under user stories that are under epic

Olafur Johannsson October 4, 2017

Structure is:

Epic -> user stories -> tasks or bugs 

How can I list all tasks / bugs that belong to 2 or more epics.


3 answers

1 accepted

1 vote
Answer accepted
Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
October 4, 2017

You could either search for all issues that have the epics in question in epic link, but you would have to manually enter the keys for the epics (if you are linking your tasks/bugs to the epic). Another option is to use an app, ScriptRunner and JQL Tricks can be used for nested JQLs.

Olafur Johannsson October 6, 2017

I have scriptrunner but I have never used it.
Can you give me an example?
Lets say I have epic-123 which has 3 user stories and under each user story are 5 tasks. So I need to get a list of those 15 tasks.

Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
October 11, 2017

To do it in ScriptRunner you would have to create a filter that gets the stories associated with the epic, something like this:

issuesInEpics("issuekey = epic-123")

Save that filter (in the example the filter is named Stories in Epic), and then use it in another query:

filter = 'Stories in Epic' or issueFunction in linkedIssuesOf("filter = 'Stories in Epic'")
Like Grant Peaty likes this
4 votes
Ethan Foulkes October 11, 2017

Hi Olafur,

I do not know how in ScriptRunner but if helpful you can do this using the Power Scripts add-on.

There is a video tutorial walking you through in detail here.

The code is simple:

string [] tasks;
string [] stories;
string [] epics = selectIssues("issueType = 'Epic' AND project = " + argv[0]);
for(string e in epics) {
    string [] stry = allLinkedIssues(e, "Epic-Story Link");
    for(string s in stry) {
        string [] tsk = allLinkedIssues(s, "jira_subtask_link", 1);
        tasks += tsk;
    }
    stories += stry;
}
string [] results;
results = arrayUnion(epics, stories);
results = arrayUnion(results, tasks);
return results;

Hope this helps!

0 votes
Nebojsa Ristic March 5, 2019

If epic id is for example "MYPROJECT-1234" you can find all subtasks under that epic using JQL filter query on Jira Advanced Search page:

parentEpic = MYPROJECT-1234

 if you want to filter only issues that are not epics or stories use:

parentEpic = MYPROJECT-1234 and type NOT IN (story, epic)
Jeroen Vandeweghe May 2, 2019

This doesn't work on stock Jira, probably you have ScriptRunner or something installed?

Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 3, 2019

@Jeroen Vandeweghe parentEpic is one of the JQL functions if you are using Jira Cloud, see Advanced searching functions reference. For Jira Server you need an app like Scriptrunner or JQL Tricks. There is a request to have parentEpic added to Jira Server, see JRASERVER-59181. If you would like to see that function added, I would recommend that you go and vote for it and add yourself as a watcher on the issue.

Suggest an answer

Log in or Sign up to answer