Se vogliamo leggere il contenuto di un file CSV allegato ad una issue possiamo utilizzare queste poche righe di codice sfruttando la libreria già presente in jira “com.mindprod.csv.CSVReader”. Questa libreria contiene anche la parte delle routines di scrittura di un file CSV. In presenza di più files allegati basta aggiungere un “if” che scarti i files con estensione differente o con un nome file predefinito.

import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.util.AttachmentUtils
import com.atlassian.jira.util.PathUtils
import com.mindprod.csv.CSVReader
 
def issueManager = ComponentAccessor.getIssueManager()
MutableIssue issue = issueManager.getIssueObject("FFF-5")
 
def pathManager = ComponentAccessor.getAttachmentPathManager()
def attachmentManager = ComponentAccessor.getAttachmentManager()
 
attachmentManager.getAttachments(issue).each { attachment ->
    def filePath = PathUtils.joinPaths(pathManager.attachmentPath,
        issue.projectObject.key, issue.key, attachment.id.toString())
        log.info(attachment.filename)
    atFile = new File(filePath)
    File atFile = AttachmentUtils.getAttachmentFile(attachment);
    CSVReader reader = new CSVReader(new BufferedReader( new FileReader( atFile ) ));
    try {
        while(true) {
            String[] fields = reader.getAllFieldsInLine();
        }
    } catch ( EOFException e ) {
        reader.close();
    }
}

 

Leave a Comment