Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,367,393
Community Members
 
Community Events
168
Community Groups

How to create a custom field which displays the number of issues in an epic?

Hi all,

my request is about the ticket type Epic.

When stories are linked to an epic, they are listed as "Issues in epic".

I would like to display the total number of "Issues in epic" as a number in the epic.

Example: If my list "issues in epic" contains 15 items, I want to show this value as a number in a custom field "Total number of tickets".

I have created a scripted field for this with scriptrunner and would be happy if you could support me with the matching script.

To get all related issues I'm using this script below. When i use a textfield-template, it correctly gives me the linked keys. Now I need a function that sums the number of keys so I can display them with a number-field-template

Thanks,
Alexander

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.fugue.Option
import com.atlassian.jira.issue.Issue

//Method to get the greenhopper bean instance
def getBean(String beanId)
{
 def ghPlugin = ComponentAccessor.getPluginAccessor().getEnabledPlugin("com.pyxis.greenhopper.jira")
 def descriptor = ghPlugin.getModuleDescriptor("greenhopper-launcher")
 def applicationContext = descriptor.getModule().greenHopperCacheManager.applicationContext
 def beanInstance = applicationContext.getBean(beanId)
 return beanInstance;
}

//method to return list of issue keys in an Epic
def getEpicIssueKeys(Issue issue) {
 def epic = (Option)Option.option(issue)
 def epicLinkManagerImpl = getBean("epicLinkManagerImpl");
 issuesInEpic = epicLinkManagerImpl.getIssuesInEpic(issue)
 return issuesInEpic
}

if(issue.issueType.name=="Epic") {
 return getEpicIssueKeys(issue)
}

return null

 

1 answer

1 accepted

1 vote
Answer accepted
Alex Koxaras Community Leader Sep 16, 2022

Hi @Alexander B_ and welcome to the community,

If your result is a list or array, why you don't use the .size to get the number of issues in that list?

Hi @Alex Koxaras 

thank you! That helped. Find my modified script below.

Cheers!

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.fugue.Option
import com.atlassian.jira.issue.Issue

//Method to get the greenhopper bean instance
def getBean(String beanId)
{
 def ghPlugin = ComponentAccessor.getPluginAccessor().getEnabledPlugin("com.pyxis.greenhopper.jira")
 def descriptor = ghPlugin.getModuleDescriptor("greenhopper-launcher")
 def applicationContext = descriptor.getModule().greenHopperCacheManager.applicationContext
 def beanInstance = applicationContext.getBean(beanId)
 return beanInstance;
}

//method to count the number of issue keys in an Epic
def getEpicIssueKeys(Issue issue) {
 def epic = (Option)Option.option(issue)
 def epicLinkManagerImpl = getBean("epicLinkManagerImpl");
 numberOfIssuesInEpic = epicLinkManagerImpl.getIssuesInEpic(issue).size()
 return numberOfIssuesInEpic
}

if(issue.issueType.name=="Epic") {
 return getEpicIssueKeys(issue)
}

return null
Like Alex Koxaras likes this
Alex Koxaras Community Leader Sep 16, 2022

Nice! Good to know that!

Like Alexander B. likes this

Suggest an answer

Log in or Sign up to answer