业内很多公司都会使用到的一个项目管理工具是JIRA,JIRA可以用来管理项目、流程、需求、版本、需求、缺陷等,JIRA包含了详细的字段信息,并且根据用户需要,支持自定义一些字段。

虽然JIRA本身有一些报表下载和统计的功能,但是也可以使用python对jira进行快捷的查询和分析。

JIRA官方有非常详细的API文档介绍,可以用来参考。

https://docs.atlassian.com/DAC/rest/jira/6.1.html

https://jira.readthedocs.io/en/latest/

安装JIRA依赖库

python调用Jira API,首先要安装第三方库,可以

直接: easy_install  jira

或者:pip3 install jira

安装成功后,直接命令行里导入jira,或者Pycharm中使用 from jira import JIRA,没有报错则说明安装成功了。

登录JIRA

JIRA都有访问限制,在访问Jira项目时首先要进行认证,Jira Python库提供了3种认证方式:

  • 通过Cookis方式认证(用户名,密码)
  • 通过Basic Auth方式认证(用户名,密码)
  • 通过OAuth方式认证

因为公司习惯是使用Google OAuth 方式登录的,所以一开始尝试使用Google OAuth的方式登录,但是折腾了一下午始终没成功。后来发现了更简单的Cookies方式认证。

from jira import JIRA
# 通过jira域名和账户密码登录
jira = JIRA('https://jira.xxx.xxx/', basic_auth=('auth_name', 'password'))

查询JIRA的project信息

#查询project信息
print (jira.projects())  #获取所有的projetsproject =jira.project('SPDGT')  #获取projet为SPDGT的信息
print (project.key)  #获取项目的Key
print (project.name)  #获取项目名称
print (project.lead)  #获取项目负责人
print (project.description)  #项目描述
print (project.components)  #获取项目组件
print (project.raw)  #获取项目的原始API数据
print (project.projectCategory)  #获取项目分类

查询JIRA的issue信息

可以查询到信息有:

  • 所属项目
  • 问题类型和状态
  • 标题和描述
  • 干系人
  • 时间点
  • 附件和评论等
# coding:utf-8
issue = jira.issue('JIRA-999')print (issue)  #JiraID
print (issue.id)  #internalID
print (issue.fields.project)  #所属项目print (issue.fields.issuetype)  #问题类型
print (issue.fields.status)  #问题状态
print (issue.fields.subtasks)  #关联的sub-task
print (issue.fields.issuelinks)  #关联的blockissuesprint (issue.fields.creator)  #创建人
print (issue.fields.reporter)  #报告人
print (issue.fields.assignee)  #指派人
print (issue.fields.customfield_10307)  #developer(自定义字段)
print (issue.fields.created)  #创建日期
print (issue.fields.updated)  #修改日期
print (issue.fields.lastViewed)  #最后查看时间
print (issue.fields.summary)  #主题
print (issue.fields.description)  #描述
print (issue.fields.attachment)  #附件信息
print (issue.fields.comment.comments)  #评论print (issue.fields.issuetype.avatarId)  #类型ID
print (issue.fields.components)  #所属模块
print (issue.fields.priority)  #优先级
print (issue.fields.versions)  #影响版本
print (issue.fields.fixVersions)  #解决版本
print (issue.fields.resolution)  #解决结果
print (issue.fields.resolutiondate)  #解决时间

运行下就会发现出结果了。

假设拿到的是internalID,需要转化为jira ID,可以怎么办呢?

#假设issue的jira_ID为 JIRA-999,internal_ID为817416issue = jira.issue('JIRA-999')
print (issue)issue = jira.issue(817416)
print (issue)

两种运行的结果是一样的:

JIRA-999JIRA-999

但是有个地方我疑惑的是,如下几种情况效果等同,但我还没来及看API文档了解到具体用法,欢迎高人指点。

查询所属项目时:

  • print (issue.fields.project)
  • print (issue.fields.project.key)

查询问题类型时:

  • print (issue.fields.issuetype)
  • print (issue.fields.issuetype.name)

查询报告人时:

  • print (issue.fields.reporter)
  • print (issue.fields.reporter.displayName)

但在有一个地方存在差异,假设实现API,将获取到的issue信息作为json格式返回时,reporter不带displayname的做法会报错。

搜索Jira issue
Jira有一套专门的搜索语言,称为JQL(Jira Query Language),Jira的Python库便是基于JQL语法进行搜索的,返回的是搜索到的问题列表。使用语句为:

jira.search_issues('JQL语句')

默认最大结果数为1000,可以通过maxResults参数配置,参数为-1时不限制数量,返回所有搜索结果。

#查询姓名为devname的产生的bug总数并输出
issues=jira.search_issues('status=done and developer = "devname"', maxResults=-1)
print('共产生bug数:',issues.total)
print(issues)#查询项目为ABC,issuetype为subtask,并且按照subtask排序,输出搜索结果的前10个
issues=jira.search_issues('project = ABC and issuetype = Sub-task ORDER BY subtasks ASC', maxResults=10)
for issue in issues:print(issue.key, issue.fields.summary, issue.fields.status, issue.fields.customfield_10100)

Python查询Jira issue信息相关推荐

  1. Python查询12306车次信息

    代码采用python3编写,本来用PyQt5做了一个方便的查询界面,不过这篇文章主要来介绍爬取功能,就不把Qt代码贴出来了,可以先看一下效果.运行后只需输入起始站.终点站和日期就可以看到如下效果,和火 ...

  2. BaoStock:使用python的baostock接口,查询除权除息信息

    证券宝www.baostock.com是一个免费.开源的证券数据平台. 提供大量准确.完整的证券历史行情数据.上市公司财务数据.实时证券行情推送服务等.         通过python API获取证 ...

  3. python做系统查人的往来的信息_L01-04:python查询员工信息表练习

    #decoding=utf-8 ''' 编写可供用户查询的员工信息表! 1|用户认证 ID Name department phone 查询关键字:姓名 '''import linecache inp ...

  4. (二)、Python查询12306余票:联网查询余票信息并解析

    前一篇–>实现始发站.终点站和出发日期的合法性检验 以下如果有的变量不明白说明在前面的文章已经介绍了,切记! 首先我们来看看每查询一条信息12306网站返回的信息: 请求链接: https:// ...

  5. python字典输入学生信息_用Python创建一个学生字典并可以查询其中信息

    展开全部 你可以试试这个---------------------------------------------------------- # -*- coding:UTF-8 -*- studen ...

  6. python用户输入列表有缺陷_利用Python对Jira缺陷进行管理操作

    转自:51testing 1.1.概要 本文主要内容是教大家学习如何利用Python对Jira缺陷进行管理操作. 在平时的测试中,大家对于缺陷管理平台一定不陌生,平时的缺陷都要去平台进行操作.今天我们 ...

  7. python学生管理系统界面-Python实现GUI学生信息管理系统

    本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...

  8. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...

  9. Python操作Jira提交BUG

    Jira提供了完善的RESTful API,如果不想直接请求API接口可以使用Python的Jira库来操作Jira jira Python文档https://jira.readthedocs.io/ ...

最新文章

  1. android事件处理概括
  2. C++多继承(多重继承)详解(二)命名冲突
  3. Bluetooth GAP介绍
  4. jboss fuse 教程_IDC关于使用JBoss Fuse的商业价值的报告(与Apache Camel一起使用)
  5. 白裤子变粉裤子怎么办_使用裤子构建构建数据科学的monorepo
  6. 设计模式(六)建造者(创建型)
  7. win10下装黑苹果双系统_预算5000的黑苹果/WIN双系统台式电脑组装建议
  8. 卸载360后残余文件无法删除
  9. ImageJ批量操作时常见报错及其原因
  10. 第九讲 函数间接展开成幂级数
  11. 13. Zigbee应用程序框架开发指南 - 多网络支持
  12. Fabric Block区块结构解析
  13. 用鼠标模拟视线跟踪技术
  14. 微信公众平台 微接口 接口100 API100 接口大全
  15. R语言ggplot2可视化为轴标签添加下标实战:符号下标、百分比下标、带括号的下标
  16. nginx 模糊匹配location写法
  17. 这款开源工具绝了!!!
  18. Chrome源代码结构
  19. web期末大作业 用HTML+CSS做一个漂亮简单的节日网页【传日文化节日中秋节】
  20. (错误都已改正)AS608指纹+STM32串口通信录入或删除指纹

热门文章

  1. mysql查询表里的重复数据方法:
  2. java模拟文件上传并正则匹配返回路径
  3. 什么是亚马逊僵尸Listing?对卖家有什么用
  4. POJ1222熄灯问题(枚举练习题)
  5. vue单页面应用的原理
  6. 压力测试程序编写C语言,用C++ AMP写一个GPU压力测试程序
  7. 公司邮箱怎么登陆?域名邮箱怎么登陆?手机如何登陆企业邮箱?
  8. 制作一个播放器(一)
  9. 神经网络图谱研究进展论文,图神经网络研究方向
  10. 微服务:架构体系的深度治理