The event IssueLinkCreatedEvent is available within the listener "Send a custom email (non-issue events)" but I can't send a notification to the watchers of the link issues.
The event IssueLinkCreatedEvent is not available within the listener "Send a custom email" where I could simply send a notification to related issues watchers.\
I thought about creating a "Custom listener" that would generate a "GenericEvent" on "IssueLinkCreatedEvent". Then, a listener "Send a custom email" would send the email.
Can I create a GenericEvent programatically? What other options do I have?
Thanks
Hi @[deleted] , I didn't test it but IssueLinkCreatedEvent object has method getIssueLink . It returs a com.atlassian.jira.issue.link.IssueLink object and it contains reference to the source and destination issues (getSourceObject(), getDestinationObject()).
So you can get watchers from the linked issues.
The issueLinkCreatedEvent won't have an issue object to act on. So the built-in Send Email script won't know which email to send email to.
Your options are either, use the custom scripted listener to send the email:
import com.atlassian.mail.server.SMTPMailServer
import com.atlassian.mail.server.MailServerManager
import com.atlassian.mail.Email
import com.atlassian.mail.MailException
import com.atlassian.mail.MailFactory
import com.atlassian.mail.queue.SingleMailQueueItem
import com.atlassian.jira.component.ComponentAccessor
def recipients = 'xxx@yyy'
def subject = 'whatever subject you want'
def body = 'contruct your own body'
def plain = true //or false if you want to include html in body
def mailServerManager = ComponentAccessor.mailServerManager
def mailServer = mailServerManager.defaultSMTPMailServer
if (mailServer && !MailFactory.settings.sendingDisabled) {
def email = new Email(recipients)
email.setFrom(mailServer.defaultFrom)
email.setSubject(subject)
if(plain) {
email.setMimeType("text/plain")
} else {
email.setMimeType("text/html")
}
email.setBody(msgBody)
try {
def item = new SingleMailQueueItem(email);
ComponentAccessor.getMailQueue().addItem(item);
Date today = new Date()
return "Success"
} catch (MailException e) {
log.error e.message
}
} else {
log.warn "Sending is disabled"
}
Or, as you suggested, use the custom listener to fire a new event using the isseEventManager
import com.atlassian.jira.component.ComponentAccessor
def issueEventManager = ComponentAccessor.issueEventManager
issueEventManager.dispatchEvent(eventId,issue, user,false)
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.