Snippets

Kate Kabir ScriptRunner for Jira Cloud getComponentLeadAndSetApprover.groovy

Created by Kate Kabir last modified
/*
 * All right, title and interest in this code snippet shall remain the exclusive intellectual property of Adaptavist Group Ltd and its affiliates. Customers with a valid ScriptRunner
 * license shall be granted a  non-exclusive, non-transferable, freely revocable right to use this code snippet only within their own instance of Atlassian products. This licensing notice cannot be removed
 * or amended and must be included in any circumstances where the code snippet is shared by You or a third party."
*/


// Specify the issue key of the issue to update below
def issueKey = "<IssueKeyHere>"

// Get the issue object
def issue
def result = get('/rest/api/2/issue/' + issueKey)
        .header('Content-Type', 'application/json')
        .asObject(Map)
if (result.status == 200){
    issue = result.body.fields
} else {
    return "Failed to find issue: Status: ${result.status} ${result.body}"
}


// Get all the component leads as user object from issue object
def leads = [] 
def components = issue.components

if (components) { 
    
    components.each {
       def url = it.self
       def componentDetails = get(url).asObject(Map).body
       def componentLead = get(componentDetails.lead.self).asObject(Map).body
       leads.add(componentLead)
    } 
   
}

// Update the user objects to Approver field

def updateResult = put('/rest/api/2/issue/' + issueKey)
        .header('Content-Type', 'application/json')
        .body([
            fields:[
                    "<ApproverCustomFieldIdHere>": leads
            ]
        ]).asString() 

if (updateResult.status == 204) {
    return 'Success'
} else {
    return "${result.status}: ${result.body}"
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.