You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
We get a good amount of Jira tickets and replies from company e-mail accounts that include a large amount of set boilerplate legal language on the bottom of them. The e-mail parser we use (Enhanced Mail Handler) filters out the reply strings, but not the footer language.
Is it possible to remove a certain string (or one fitting a regular expression) whenever an issue description is created or when a comment is posted?
Yes it is, however it would add quite a bit of load to your server if I am not mistaken. Basically you would set up a script listener that triggers on Issue Commented event and on IssueCreated event.
The listeners shuold parse the description in case of the IssueCreated event. And in case of the IssueCommented they would have to parse the commented text.
Do you need pointers as to how to do that or does this suffice?
Thanks for your reply! I'm new to Groovy scripting, but I started with something like this:
import com.atlassian.jira.issue.Issue def issue = event.issue as Issue issue.description.replaceAll("This email was sent by a company .*", "")
My intention here was, on create or update, to remove all the text after the boilerplate language (hence the .*). But I don't think I'm using the Jira-relevant syntax just right here.
That doesn't have to do with JIRA. What you need to use there(first argument of the function "replaceAll") is a regular expression. I myself am not an expert, but I can recomend this article, that will teach you how to use that "...description.replaceAll(...)"
If you find anymore trouble, please do respond, and I'll spend some time crafting an example for you.
I wasn't suggesting that this had to do with Jira per se, just that the syntax I was using the access the Jira issue might be incorrect. The first argument I supply above is actually a regular expression, taking the occurrence of zero more more chracters following that string and replacing it with the empty string. I'm just not versed in how I write the Jira issue with that, which seems not to be working. There seem to be a variety of ways to bring the issue in scope, but none of the syntax guides I've seen are clear on what will work in this case.
Ow okay. Now I get you.
First of all I don't think groovy regular expressions accept asterisk expansion, but if you say that works for you, I might be wrong.
If your code above does filter the right string, then:
You need to fetch the MutableIssue from that Issue.
That issue has a method called setDescription.
I believe this would work:
import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.MutableIssue def issue = event.issue as mutableIssue def newDesc = issue.description.replaceAll("This email was sent by a company .*", "") issue.setDescription(newDesc) issue.store()
Let me know if this works.