2017-06-06 126 views

回答

0

JIRA公開其REST services,並通過該和一些python,你可以下載任何附件。

它的工作對我來說是這樣的(你需要調整的變量):

#!/usr/bin/python 
# miguel ortiz 
# Requests module: http://docs.python-requests.org/en/latest/ 
# Documentation: <url> 

#----------------------------------------------------------------Modules 
import sys 
import csv, json 
import requests 

#----------------------------------------------------------------Variables 
myTicket= sys.argv[1] # Your ticket: ABC-123 
user = 'miguel'  # JIRA user 
pasw = 'password' # JIRA password 
jiraURL = 'https://yourinstance.jira.com/rest/api/latest/issue/' 
fileName = 'my_attached_file' # In this case we'll be looking for a specific file in the attachments 
attachment_final_url="" # To validate if there are or not attachments 


def main() : 
    print '\n\n [ You are checking ticket: ' + myTicket+ ' ]\n' 
    # Request Json from JIRA API 
    r = requests.get(jiraURL+myTicket, auth=(user, pasw),timeout=5) 

    # status of the request 
    rstatus = r.status_code 

    # If the status isn't 200 we leave 
    if not rstatus == 200 : 
     print 'Error accesing JIRA:' + str(rstatus) 
     exit() 
    else: 
     data = r.json() 

    if not data['fields']['attachment'] :    
     status_attachment = 'ERROR: Nothing attached, attach a file named: ' + fileName 
     attachment_final_url="" 
    else: 
     for i in data['fields']['attachment'] : 
      if i['filename'] == fileName : 
      attachment_final_url = i['content'] 
      status_attachment_name = 'OK: The desired attachment exists: ' + fileName 
      attachment_name = False 
      attachment_amount = False 
      attachment_files = False 
      break 
      else : 
      attachment_files = False 
      status_attachment_name = + 'ERROR: None of the files has the desired name ' 
      attachment_final_url="" 
      attachment_name = True 
      attachment_amount = True 
      continue 

    if attachment_final_url != "" : 
     r = requests.get(attachment_final_url, auth=(user, pasw), stream=True) 
     with open(fileName, "wb") as f: 
      f.write(r.content.decode('iso-8859-1').encode('utf8')) 
     f.close() 
    else: 
     print status_attachment 

if __name__ == "__main__" : 
main() 

如果你不明白我更詳細描述它my blog代碼。

編輯:要小心,在JIRA中,您可以添加許多具有相同名稱的文件。