Page tree

You are viewing documentation for Structure Server and Data Center version 5.5 and patch releases. For other versions, see Version Index or [Structure Cloud].

Skip to end of metadata
Go to start of metadata

This script will show you the list of structures on the instance and the number of items added to each structure manually. These manual items include Generators.


import com.almworks.jira.structure.api.StructureComponents
import com.almworks.jira.structure.api.forest.ForestSpec
import com.almworks.jira.structure.api.permissions.PermissionLevel
import com.almworks.jira.structure.util.Util
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.scriptrunner.runner.customisers.WithPlugin

@Grab(group = 'com.almworks.jira.structure', module = 'structure-api', version = '16.9.0')
@WithPlugin('com.almworks.jira.structure')

StructureComponents structureComponents = ComponentAccessor.getOSGiComponentInstanceOfType(StructureComponents)
def structureManager = structureComponents.getStructureManager()
def forestService = structureComponents.getForestService()

def structures = structureManager.getAllStructures(PermissionLevel.NONE)
def map = structures.collectEntries {
  def fs = forestService.getForestSource(ForestSpec.skeleton(it.id))
  [(it.name + ' (#' + it.id + ')'): fs.getLatest().getForest().size()]
}

map = map.sort {-it.value}

'<table><tr><th>Structure Name (ID)</th><th>Number of manually added rows</th></tr>' +
map.collect {'<tr><td>' + Util.htmlEncode(it.key as String) + '</td><td>' + it.value + '</td></tr>'}.join('')  +
  '</table>'



This script can be adopted to show the count of dynamically generated items by replacing ForestSpec.skeleton() with ForestSpec.structure(). However, running this script will trigger all the structures and their generators, which can cause a performance impact. Be careful when running this in a production environment.

  • No labels