Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,456,632
Community Members
 
Community Events
176
Community Groups

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

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 Sign up to answer
TAGS

Atlassian Community Events