JIRA python篇之统计产品尚未解决的bugs

时间:2021-09-04 23:14:36

[本文出自天外归云的博客园]

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