Hey,
I'm trying to send an email to some user with ScriptRunner plugin.
This is my code:
import org.apache.commons.codec.binary.Base64;
import static io.github.openunirest.http.Unirest.post
//Define authorisation credentails
String authString = "USER:PASS"
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
// Add this header into your rest call to specify basic authentication
def resp = post("/rest/api/2/issue/MSD-35/notify")
.header("Authorization", "Basic ${authStringEnc}")
.header("Content-Type", "application/json")
.body([
subject: 'Service desk automation success',
textBody: "Service desk ticket created with script runner automation.",
htmlBody: "test",
to: [
users: [[
name: "neta.elyakim",
active: true
]]
]
])
.asString()
assert resp.status == 204
The problem is it's not working- this is script runner docs on this http://scriptrunner-docs.connect.adaptavist.com/jiracloud/script-listeners.html#_email_notify_on_priority_change
I just want to send the email.
I tried it with/out the authorization and it's still not working
This is the error:
Assertion failed: assert resp.status == 204 | | | | 400 false status: 400 - Bad Request body: <html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> </body> </html> at Script1.run(Script1.groovy:44) at Script1$run.call(Unknown Source) at Script1$run.call(Unknown Source) at com.adaptavist.sr.cloud.workflow.AbstractScript.evaluate(AbstractScript.groovy:30) at com.adaptavist.sr.cloud.workflow.AbstractScript$evaluate$0.callCurrent(Unknown Source) at com.adaptavist.sr.cloud.workflow.AbstractScript$evaluate$0.callCurrent(Unknown Source) at com.adaptavist.sr.cloud.events.ScriptExecution.run(ScriptExecution.groovy:27) at ConsoleScriptExecution2_groovyProxy.run(Unknown Source)
Please advise!
Thanks
With the help of script runner support-
I manage to send the email to a different user:
def resp = post("/rest/api/2/issue/${issueKey}/notify")
.header("Content-Type", "application/json")
.body([
subject: 'Service desk automation success!',
textBody: "Service desk ticket created with script runner automation.",
htmlBody: "<p>Service desk ticket created with script runner automation.</p>",
to: [
//users: [[
/// name: "neta.elyakim",
// active: true
//]]
groups: [[
name: 'some group'
]]
]
])
.asString()
but when I tried to send the request with different user auth (not my auth - different user and to send it to myself) it's didn't work.
In order to send the post request with someone else auth it needs to be done like this:
https://stackoverflow.com/questions/25692515/groovy-built-in-rest-http-client#42664926
Bug with the notify rest:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.