It is possible to customize the status a JIRA issue passes through, but they are always assigned one out of three status categories. JIRA has no easy solution to report how many issues are currently in a state associated with the category "To Do", "In Progress" or "Done", so if you have a complex workflow it might be tricky to get the big picture. Many of our customers struggle with this. With PocketQuery for Confluence it is easy to post-process results from the Jira REST API and display the result in a Confluence page.

Most of the work (e.g. grouping by status category) will be done within the Converter, while we will be using a basic JQL query to retrieve all issues of a project. The result in the Confluence page will look like this:

Datasource

Datasource type

REST Application Link

Application Link

Your Company Jira

Datasource Test URL

/rest/api/2/search

Query

Fetches issues for a given Jira project.

Query URL

/rest/api/2/search?jql=project%3D%22:project%22
CODE

Converter

Groups the Jira issues that were returned from the Query by category.

function convert(json) {
  var statusCategories = [];
  var issues = JSON.parse(json); // parse json string
    
  // iterate through issues and count occurences of statusCategories
  var index;
  for (index in issues) {   // iterate over all issues
    var currStatusCategory = issues[index].fields.status.statusCategory;
      
    if(statusCategories[currStatusCategory.name]) {   // category is already listed, increase counter
      statusCategories[currStatusCategory.name]++;
    } else {   // category is new, add it to our collection
      statusCategories[currStatusCategory.name] = 1;
    }
  }
    
  // build simple result for template
  var result = [];
  for (name in statusCategories) {
    result.push({
      'Category': name,
      'Number of Issues': statusCategories[name]
    });
  }
    
  result.sort(function(a,b) {     
    return a.Category < b.Category ? 1 : -1;   
  });
    
  return result;
}
JS

Template

Renders the converted Query result as a chart.

<script>
  PocketQuery.chart('ColumnChart', {
    width: 500,
    height: 500,
    bar: {groupWidth: "30%"},
    legend: {position: 'none'}
  });
</script>
HTML