In JIRA Cloud, I have a Script Listener set up for Issue Updates. I'm trying to update a select list field through the Rest API using ScriptRunner. I'll paste my script below, but basically if a issue has a Label of 'OnHold' then the custom field PMO Sprint Status is set to 'On Hold.'
def projectKey = 'TRAIN'
if (issue.fields.project.key != projectKey) {
return
}
def pmoSprintStatus = ""
if (issue.fields.labels.contains("OnHold")) {
if (issue.fields.customfield_10747 != "OnHold") {
pmoSprintStatus = "OnHold"
}
} else {
if (issue.fields.customfield_10747 == "OnHold") {
pmoSprintStatus = "Active"
}
}
if (pmoSprintStatus != "") {
put("/rest/api/2/issue/${issue.key}")
.queryString("overrideScreenSecurity", true)
.header('Content-Type', 'application/json')
.body([
fields: [
customfield_10747 : { value: pmoSprintStatus}
]
])
.asString()
}
The part in bold seems to be where the problem is. No matter how I format that line, I always get the following error.
2017-10-10 06:48:38.926 WARN - PUT request to /rest/api/2/issue/TRAIN-8 returned an error code: status: 400 - Bad Request
body: {"errorMessages":[],"errors":{"customfield_10747":"Could not find valid 'id' or 'value' in the Parent Option object."}}
2017-10-10 06:48:38.929 INFO - PUT /rest/api/2/issue/TRAIN-8 asString Request Duration: 620msAny thoughts on what I"m missing/doing wrong? This is JIRA Cloud, updating a select list single choice field via REST API. Thanks!