通过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文件。
, ,