ScriptRunner: Postfunction to check what's going to be attached to an issue

e January 30, 2015

Hello,

I am going to write a postfunction which will remove a file with specific name from the attached files to an issue. 

Would you suggest any API function names, examples? Where should I start from?

 

Thanks. 

1 answer

3 votes
Alejo Villarrubia [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 30, 2015

Hi,

I think you could have a code similar to following one in your post-function:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.exception.RemoveException
import com.atlassian.jira.issue.AttachmentManager
import com.atlassian.jira.issue.Issue
 
def Issue issue = issue

def AttachmentManager attachmentManager = ComponentAccessor.getAttachmentManager();

issue.attachments.each {
    if (it.filename.contains("specificName")) {
        try {
            attachmentManager.deleteAttachment(it)
        } catch (RemoveException e) {
            log.error("Attachment ${it.filename} could not be removed", e)
        }
    }
}
e February 2, 2015

Oh, thank you! This code works just perfectly! Would you be so kind as to specify the criteria I could use? For example - name (contains();), what else? Size? MD5 sum? Thanks!

Alejo Villarrubia [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 3, 2015

As "it" is an instance of the Attachment class, you will be able to retrieve the file size but not the MD5 sum. For more information please check the javadoc of that class: https://developer.atlassian.com/static/javadoc/jira/reference/com/atlassian/jira/issue/attachment/Attachment.html

e February 3, 2015

Hey, Alejo The script works just fine when I create my issues from the JIRA itself. It does not work though when I create issue via email handlers (by sending an email). It seems to me that the issue is not created at the moment. The attachments collection is empty. Any suggestions?

Alejo Villarrubia [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 13, 2015

I tested the issue in a local instance and my guess is that the mail handler are simply firing the post-function too early, meaning that the issue is not ready when the post function is called.

Suggest an answer

Log in or Sign up to answer