Skip to main content
Book your demo
Example scripts
To homepage
Jira
Cloud icon
Cloud

Get fields, Resolutions, and Work Types from Jira

Created 2 year(s) ago, Updated 14 day(s) ago
App in script
ScriptRunner For Jira
ScriptRunner For Jira
by Adaptavist
Compatibility
compatibility bullet
Jira
Language |
groovy
// Name of the elements for which you want to get the id
def workTypesNames = ['Story']
def fieldNames = ['Summary']
def resolutionNames = ['Done']

// Elements information maps
def workTypesMap = getWorkTypeIdsFromNames(workTypesNames)
def fieldsMap = getFieldIdsFromNames(fieldNames)
def resolutionsMap = getResolutionsFromNames(resolutionNames)

"WorkTypes: ${workTypesMap} - Fields: ${fieldsMap} - Resolutions: ${resolutionsMap}"

Map<String, String> getWorkTypeIdsFromNames(Collection<String> workTypesNames) {
    def result = workTypesNames.collectEntries { workTypeName ->
        def workTypeObject = get('/rest/api/2/issuetype')
                .asObject(List)
                .body.find {
            (it as Map).name == workTypeName
        } as Map

        workTypeObject ? [(workTypeName.toString()): workTypeObject.id] : [:]
    }
    result as Map<String, String>
}

Map<String, String> getFieldIdsFromNames(Collection<String> fieldNames) {
    def result = fieldNames.collectEntries { fieldName ->
        def customFieldObject = get('/rest/api/2/field')
                .asObject(List)
                .body.find {
            (it as Map).name == fieldName
        } as Map

        customFieldObject ? [(fieldName.toString()): customFieldObject.id] : [:]
    }
    result as Map<String, String>
}

Map<String, String> getResolutionsFromNames(Collection<String> resolutionNames) {
    def result = resolutionNames.collectEntries { resolutionName ->
        def resolutionObject = get('/rest/api/2/resolution')
                .asObject(List)
                .body.find {
            (it as Map).name == resolutionName
        } as Map

        resolutionObject ? [(resolutionName.toString()): resolutionObject.id] : [:]
    }
    result as Map<String, String>
}
Having an issue with this script?
Report it here