I am using ScriptRunner for JIra Cloud. I setup the script listener (example) that is not running the script (see below for detail). I am new to ScriptRunner (just downloaded Trial version). It seems the Webhook is not triggering when the issue is updated.
Can someone guide me.
Identified by:9CF705F2-96B3-4C2E-AE4F-3469B1AA89A9
Enabled
On these events:Issue UpdatedIn these projects:LSCC Build (LSCCB)
(Only applies to issue, project, issuelink (source issue), version and comment related events)
-----------------------------------------------------------------
def customFields = get("/rest/api/2/field")
.asObject(List)
.body
.findAll { (it as Map).custom } as List<Map>
def input1CfId = customFields.find { it.name == 'Custom Field 1' }?.id
def input2CfId = customFields.find { it.name == 'Custom Field 2' }?.id
def outputCfId = customFields.find { it.name == 'Output Custom Field' }?.id
def projectKey = "TP"
if (issue == null || issue.fields.project.key != projectKey) { (1)
logger.info("Wrong Project ${issue.fields.project.key}")
return
}
def input1 = issue.fields[input1CfId] as Integer
def input2 = issue.fields[input2CfId] as Integer
if (input1 == null || input2 == null) {
logger.info("Calculation using ${input1} and ${input2} was not possible")
return
}
def output = input1 + input2
Kabir,
Thanks for your prompt response.
Please see below the complete code (copy of example I used). Can you specify what is missing?
def customFields = get("/rest/api/2/field")
.asObject(List)
.body
.findAll { (it as Map).custom } as List<Map>
def input1CfId = customFields.find { it.name == 'Custom Field 1' }?.id
def input2CfId = customFields.find { it.name == 'Custom Field 2' }?.id
def outputCfId = customFields.find { it.name == 'Output Custom Field' }?.id
def projectKey = "TP"
if (issue == null || issue.fields.project.key != projectKey) { (1)
logger.info("Wrong Project ${issue.fields.project.key}")
return
}
def input1 = issue.fields[input1CfId] as Integer
def input2 = issue.fields[input2CfId] as Integer
if (input1 == null || input2 == null) {
logger.info("Calculation using ${input1} and ${input2} was not possible")
return
}
def output = input1 + input2
if (output == (issue.fields[outputCfId] as Integer)) {
logger.info("already been updated")
return
}
put("/rest/api/2/issue/${issue.key}")
//.queryString("overrideScreenSecurity", Boolean.TRUE)
.header("Content-Type", "application/json")
.body([
fields:[
(outputCfId): output
]
])
.asString()
Hi PJ
I have replied to the support ticket that you have created with us with the explanation. I hope it helps.
Thank you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi PJ Singh
Thank you for the question.
Unfortunately, the script that you have provided is incorrectly configured. You did not make a REST call to set a field from your listener. You may kindly refer to the link here as a reference guide for you to create the script that you required.
Thank you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.