Import attachments after initial import

Ryan d'Eon November 20, 2013

About a month ago I imported a bunch of issues to a 5.2.11 Jira using CSV. It turns out that there were attachments that should have come with those issues. So I am now hoping to update all the imported issues, adding the appropriate attachments.

Things I can do/have done:

-Put all the attachments in <JIRA HOME>/import/attachments/

- Set up the CSV file so that each issue has a line including issuekey, summary, list of attachments in format "date;user;file://filename_on_disk" (as described in https://confluence.atlassian.com/display/JIRA/How+to+import+attachment+using+CSV)

However, it says here (https://confluence.atlassian.com/display/JIRA/Importing+Data+From+CSV#ImportingDatafromCSV-Updatingexistingissues) that this will blow away all other fields of the issues. Is this really true? It doesn't/I can't tell it to leave other fields as-is?

Do I have to dump all the existing data for these issues, include it all in my CSV, and re-import it all? That seems crazy. Is there a way to make these kind of bulk updates?

I'd appreciate any help! Thanks

3 answers

1 accepted

1 vote
Answer accepted
Ryan d'Eon November 21, 2013

Ok, Thanks for the suggestions, but it turns out the Jira REST API can do this, which avoids:

-having to dump and entire project, fiddle with the data, and reimport (which is super prone to errors)

-buying a third-party plugin


Here's the page that describes it:
https://confluence.atlassian.com/display/JIRA/How+to+attach+an+attachment+in+a+JIRA+issue+using+REST+API

After creating a .csv file that matched up the issues with the attachments I wanted in each, I wrote a simple bash script that ran through the file and called that curl command for each line, of the form:

inputFile="$1"
while IFS="," read filename issuekey
    do 
	curl -D- -u user:password -X POST -H "X-Atlassian-Token: nocheck" -F "file=@path/to/local/$filename" http://JIRA_BASE_URL:8080/rest/api/2/issue/$issuekey/attachments
done &lt; $inputFile
echo "done"

Hopefully that helps anyone looking to do this in the future...

Like Balavinayagamoorthi likes this
0 votes
Bob Swift OSS (Bob Swift Atlassian Apps)
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.
November 20, 2013

Another option is to just add the attachments to the existing issues. Especially better if you have active users as this can be done while active. You could create a file (with actions) with the specific attachment details and use the run action or use runFromCsv explained here: How to use runFromCsv . In either case, the critical action you need is addAttachment .

0 votes
Rahul Aich [Nagra]
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.
November 20, 2013

Hi Ryan

Re-importing a csv on the same project will wipe off all existing data.

What i suggest you is take export of existing data in a csv, add the attachment information and import it back on a separate project.

Rahul

Tim Evans
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 16, 2015

In this case Ryan is not importing data from a CSV file. The CSV contains the filenames and issuekeys and is used by the script to add attachments to existing issues using the REST API.

Suggest an answer

Log in or Sign up to answer