[本文出自天外歸雲的博客園]
通過python中的jira類我們可以方便的操作jira,獲取一些我們想要再加工的信息。
一些通過JIRA的JTL查詢語句不方便直接搜索的過濾條件可以通過JIRA的python api來完成。
在產品上線之前,要統計本期產品尚未解決的bugs。
前提:產品未解決的故障類型jira都關聯到產品的需求類型jira上。
代碼如下:
# -*- coding: utf-8 -*- from jira import JIRA import sys,os #登錄jira def login_jira(username,password): jira = JIRA("http://jira.ms.netease.com",basic_auth=(username,password)) return jira def add_into_bugs(bugs,bug): status = bug.fields.status.name if status != "已解決" and status != "已關閉": key = bug.key jira_base_url = "http://jira.ms.netease.com/browse/" bug_info = { "summary":bug.fields.summary, "url":jira_base_url+key, "status":status, "reporter":bug.fields } bugs.append(bug_info) return bugs if __name__ == '__main__': username = os.environ.get("JIRA_USERNAME") password = os.environ.get("JIRA_PASSWORD") jira = login_jira(username,password) issue = jira.issue("ZWW-2") bugs = [] for issue_link in issue.fields.issuelinks: #找關聯jira——外聯和內聯兩種,都統計為bug if hasattr(issue_link, "outwardIssue"): outwardIssue = issue_link.outwardIssue bugs = add_into_bugs(bugs,outwardIssue) if hasattr(issue_link, "inwardIssue"): inwardIssue = issue_link.inwardIssue bugs = add_into_bugs(bugs,inwardIssue) print("待解決bugs數量:"+str(len(bugs))) infos = ["<a href='"+bug["url"]+"' target='_blank'>"+bug["summary"]+"</a><br>" for bug in bugs] with open("bug_infos.html","w") as f: for info in infos: f.write(info)
其中用戶名和密碼儲存在系統變量中並從中讀取。
本例的功能是打印待解決bugs數量並將詳細jira列表信息保存到本地bug_infos.html文件。