2017-06-06 102 views

答えて

0

JIRAはそのREST servicesを公開していると、いくつかのpythonを通じて、あなたは任意の添付ファイルをダウンロードすることができます。

それは、この(あなたは変数を調整する必要があります)のように私のために働いて:あなたは、私がmy blogで、より良い、それを詳細に説明したコードを理解していない場合は

#!/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() 

EDIT: JIRAでは、同じ名前のファイルを多数追加できます。

関連する問題