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(); } }