Snippets

Adaptavist ScriptRunner for Jira Cloud Set Multi Select List Field

Created by Kristian Walker last modified
/*
* This example script  console script updates a multi select list field on an issue.
* "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 issue = "<IssueKeyHere>"

// Specify the ID of the custcom field below e.g customfield_10012
def MultiSelectField = "<MultiSelectListCustomFieldIdHere>".toString()


// The rest call to update the multi user picker field. 
// Note: This script must be run as the ScriptRunner add on user
def setMultiSelectField = put("/rest/api/2/issue/" + issue)
        .header('Content-Type', 'application/json')
        .queryString("overrideScreenSecurity", Boolean.TRUE)

        .body([
                // Specify the update structure to update the Multi Select list field and its Array List Data Structure that it uses
                update:
                        [
                                (MultiSelectField): [
                                        // Specify the add commands to add each option into the multi select list field as a comma seperated list of the option values to be set.
                                        // Note these option values must be valid option values that can be selected on the edit issue form inside of Jira. 
                                        [add: [value: "<OptionValueHere>"]],
                                        [add: [value: "<OptionValueHere>"]]
                                        // If you want to remove an item then you would do it by adding a line similar to below
                                        //[remove: [value: "<OptionValueHere>"]]
                                ]

                        ]
        ])
        .asString()
        .body

// Note if you are creating a new issue then you do not need the update property and the body to set the field would be similar to below
/*
.body(
[
        fields: [
                (MultiSelectField): [ 
                    [value: "A"],
                    [value: "B"]
                    ],
                // Rest of body here
        ]
])
.asString().body
*/

return "Issue with the key of ${issue} updated with the Multi Select List Field set on it"        

Comments (0)

HTTPS SSH

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