Adaptavist has a tool called Microscope that Jira admins can use to look into the specifics of various aspects of the system, including workflows. If you’re looking to examine an instance, I recommend using Microscope rather than writing your own script.
However, it was requested that I look into workflows in a very specific way: the requester needed a tool that would take the name of a group and search all of the workflows for any references to that group. In effect, they were searching for dependencies on that group within the workflows.
This script does not do that, but this is the basis upon which that script is built. This script takes a workflow and returns the validator conditions for all of the transitions. This could easily be adjusted to return the conditions for the triggers, etc.
import com.atlassian.jira.workflow.WorkflowManager
import com.atlassian.jira.component.ComponentAccessor
def workflowManager = ComponentAccessor.getComponent(WorkflowManager)
def wf = workflowManager.getWorkflow("<workflow name>")
//wf is the workflow itself
def statuses = wf.getLinkedStatusObjects()
//statuses are the statuses available to that workflow
statuses.each {
status ->
//For each status associated with the workflow
def relatedActions = wf.getLinkedStep(status).getActions()
//relatedActions is the set of actions (transitions) associated with each status
//log.warn("For the status " + status.name + " the available transitions are: " + relatedActions)
relatedActions.each {
it ->
//For each related transition, we need the validators associated with the
def validators = it.properties
validators.validators.each {
valid ->
log.warn(status.name + " has the following validator arguments: " + valid.properties.args)
}
}
}
Leave a Reply