Removing boilerplate from issue description and comments

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?

1 answer

0 votes

Hello August.

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?

Cheers

DYelamos

Hi Daniel,

  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.

Hi August.

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.

Cheers.

Dyelamos

Hi Daniel,

   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.

Cheers!

DYelamos

Suggest an answer

Log in or Join to answer
Community showcase
Teodora [Botron]
Published Thursday in Marketplace Apps

Jira Inferno: The Nine Circles of Jira Administration Hell

If you spend enough time as a Jira admin - whether you are managing a single, mid-sized instance, a large enterprise one or juggling multiple instances at once - you will eventually find yourself in ...

684 views 4 16
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot