背景描述
最近有个需求是获取某些符合条件的jira数据,在统计后使用echarts可视化度量出来。后端代码打算用 Python实现
问题解决
这里着重说下后台获取jira数据的代码。python有一个非常好用的jira操作库jira-python。这里有其非常友好的文档说明。下面权当是对文档的摘抄复述吧!
安装
如果Python环境中集成了pip的话,可以直接使用如下命令安装:
pip install jira
或者直接下载其离线包安装(注意,jira包在安装的时候可能有其他依赖包。其他依赖包也需要安装)这种安装比较麻烦,更推荐上面pip命令安装。
使用
我们知道jira里有相应的project、project下是对应的一些issues(我是这样理解的,一个jira是一个issue,issue也分类,project是同一类issues的统称。不知道这样说对不对,_)。要想获取jira对应的project或者issues,就得先建立一个jira的链接对象。即:
from jira import JIRA
# 即通过jira的主网址、一个jira网站的用户名和密码即可获取该jira网站的链接对象
test_jira = JIRA('https://jirahost.com.cn', basic_auth=('username', 'password'))
下面就可以调用它来查询jira对应的projet与issues了。
查询projet
# 获取所有的projets
projects = test_jira.projects()
# 获取指定的project, JRA
test_proj = test_jira.project('JRA')
查询issues
获取或查询指定条件的issues一般是用的最多也是最常用的。一般我们需要获取到issue,并对issue的数据进行统计度量。这里主要用到了这个包的search_issues()方法(该方法返回的是一个列表,里面都是符合对应条件的issue对象),这个方法的参数是jira的JQL语句。JQL语句是一种用来查询jira数据的查询语句,类似于数据库的sql语句(例如mySQL的查询语句),但它不是数据库查询语句。jira官网文档有更加详尽的说明。比如要查询名为“TEST”的project的issues,则其JQL语句为:
project = "TEST"
要查询指派人为“小明”,并且project名为“TEST”的issues,则其JQL语句为:
project = "TEST" AND assignee = "小明"
上面两句对应的Python代码分别为:
search_str = 'project = "TEST"'
issues = test_jira.search_issues(search_str)
search_str = 'project = "TEST" AND assignee = "小明"'
issues = test_jira.search_issues(search_str)
可以看到,要获取指定的jira或