Scriptrunner email post-function issue URL

Tom Lister
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 3, 2020

Hi

I want to send an email using Scriptrunner Email Post Function. The email needs to contain the URL of the issue.

Is there a built in method to do this?

or do I have to form the link manually with Base URL / project code etc.

https://blah.com/browse/CSD-14300

 

1 answer

1 accepted

0 votes
Answer accepted
Peter-Dave Sheehan
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 3, 2020

Hi @Tom Lister 

Issues don't have an "url" attribute. If you think about it, it would not be a good idea to store that in the db because the baseUrl and the application context could change.

So yeah, making a URL out of the baseURL and issue key is the only way to go as far as I know.

def baseUrl = ComponentAccessor.getApplicationProperties().getString(APKeys.JIRA_BASEURL)
def link = """<a href=
\"${baseUrl}/browse/${issue.key}\">${issue.key}</a>"""
Tom Lister
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 4, 2020

Hi @Peter-Dave Sheehan 

There are some built in methods for email template e.g. this provides a list of workflow actions in the email.

${getWorkflowButtons.call()}

I was hoping for something similar for other utility functions. Is there a list of available functions.? No sign in the ScriptRunner documentation.

My next issue is how to stop the code snippet showing up in the email from the template as raw text.

And finding the right syntax for displaying the variable value.

I think I can try putting the code into the condition section.

Tom

Capture.JPGCapture1.JPG

Tom Lister
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 4, 2020

PS

this embedded syntax works for me

Capture2.JPG

Like Rolf Lader likes this
Peter-Dave Sheehan
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 4, 2020

Probably a matter of preference, but I like to keep the template simple and put the more complex stuff in the condition where you get better syntax checking.

 

2020-02-04 09_33_20-Listeners.png

Like # people like this
Alexey Studitsky September 8, 2023

@Peter-Dave Sheehan
Thank you a lot, this works perfectly.
 

pasting the code for others (to not manually type from screen):

import com.atlassian.jira.config.properties.APKeys
import com.atlassian.jira.component.ComponentAccessor

def baseUrl = ComponentAccessor.getApplicationProperties().getString(APKeys.JIRA_BASEURL)
def link = """<a href=\"${baseUrl}/browse/${issue.key}\">${issue.key}</a>"""
config.ticketLink = link

Peter-Dave Sheehan
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
September 8, 2023

There is now a simpler way to get the baseUrl.

Rather than fetching the jira application property by key (which requires an extra import), you can get it directly using a designated method:

def baseUrl = ComponentAccessor.applicationProperties.jiraBaseUrl

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events