Example scripts
To homepage
Jira

Remove Unused Screen Schemes from Instance
App in script

ScriptRunner For Jira
by Adaptavist
Compatibility

Jira (8.0 - 8.19)

ScriptRunner For Jira (7.10.0)
Language |
groovy
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.scriptrunner.canned.util.OutputFormatter
def fieldScreenSchemeManager = ComponentAccessor.getFieldScreenSchemeManager()
def issueTypeScreenSchemeManager = ComponentAccessor.getIssueTypeScreenSchemeManager()
def deletedScreenSchemes = []
def errorScreenSchemes = [:]
fieldScreenSchemeManager.getFieldScreenSchemes().each { fieldScreenScheme ->
try {
def issueTypeScreenSchemeCollection = issueTypeScreenSchemeManager.getIssueTypeScreenSchemes(fieldScreenScheme)
// Screen Scheme is classed as unused if it has no associated issue type screen schemes
def isUnusedScreenScheme = issueTypeScreenSchemeCollection.isEmpty()
if (isUnusedScreenScheme) {
// Remove association to any screens
fieldScreenSchemeManager.removeFieldSchemeItems(fieldScreenScheme)
// Remove field screen scheme
fieldScreenSchemeManager.removeFieldScreenScheme(fieldScreenScheme)
deletedScreenSchemes.add(fieldScreenScheme.name)
}
} catch (Exception e) {
errorScreenSchemes.put(fieldScreenScheme.name, e.getMessage())
}
}
OutputFormatter.markupBuilder {
h2('Screen Schemes Report')
!deletedScreenSchemes && !errorScreenSchemes && p('No unused screen schemes found')
if (deletedScreenSchemes) {
h3('Deleted Screen Schemes:')
ul {
deletedScreenSchemes.each {
li(it)
}
}
}
if (errorScreenSchemes) {
h3('Errors:')
table(class: 'aui') {
thead {
tr {
th('Screen Scheme Name')
th('Error')
}
}
tbody {
errorScreenSchemes.each { screenScheme, error ->
tr {
td(screenScheme)
td(error)
}
}
}
}
}
}
Having an issue with this script?
Report it here