jira-api使用(下)

2021-07-05 14:31:49 浏览数 (2)

三.具体查询

查询JIRA的project信息

代码语言:javascript复制
#查询project信息
print (jira.projects())  #获取所有的projets
 
project =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信息

可以查询到信息有:

  • 所属项目
  • 问题类型和状态
  • 标题和描述
  • 干系人
  • 时间点
  • 附件和评论等
代码语言:javascript复制
# coding:utf-8
issue = jira.issue('JIRA-999')
print (issue)  #JiraID
print (issue.id)  #缺陷ID
print (issue.fields.project)  #所属项目
print (issue.fields.issuetype)  #问题类型
print (issue.fields.status)  #问题状态
print (issue.fields.subtasks)  #关联的sub-task
print (issue.fields.issuelinks)  #关联的blockissues
print (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)  #解决时间

如下几种情况效果等同 查询所属项目时:

  • 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语法进行搜索的,返回的是搜索到的问题列表。使用语句为:

代码语言:javascript复制
jira.search_issues('JQL语句')

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

代码语言:javascript复制
#查询姓名为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)

0 人点赞