乐趣区

关于python:使用Python的jira库操作jira数据的API介绍

1. Python 的 jira 库概述

Jira 是 Atlassian 公司出品的一款事务管理软件。该软件会提供网页界面给用户。在工作中,有时须要一些批量的解决操作,在网页上无奈进行。这个时候,应用 Python 来操作 Jira 就是一个很好的抉择。
上面 link 是一个十分敌对的 python jira 库,可按如下操作装置:
https://pypi.org/project/jira/

pip install jira

2 Python 的 jira 库 API 介绍

2.1. JIRA 对象

JIRA 类的定义请见如下 link:
https://github.com/pycontribs…

  1. 可通过如下形式来生成 JIRA 对象:

    form jira import JIRA
    jira = JIRA('http://jira.***.com/', auth=(username, password))
  2. 通过 JIRA 对象搜寻
    搜寻应用的 API 是 search_issues(),其参数 maxResults 为 - 1 示意返回所有 issue 对象。
    如果搜寻的内容比拟多,服务器可能会因而而断掉连贯,须要分页搜寻:

     def paging_search_jira_issues(self, search_str):
         all_issues = self.jira.search_issues(search_str, startAt=0, maxResults=50)
         start = 0
         while True:
             issues = self.jira.search_issues(search_str, startAt=start, maxResults=50)
             if(len(issues)==0):
                 break
             all_issues = all_issues + issues
         return all_issues
  3. 通过 issue key 获取 issue 对象:

    issue = jira.issue(issue_key)
  4. 转移 issue 给 new assignee:

    jira.assign_issue(issue, new_assignee)
  5. 扭转 issue 的状态:

    jira.transition_issue(issue, 'Accept')
    jira.transition_issue(issue, 'Deliver')
  6. 给 issue 增加 comment:

    jira.add_comment(issue, 'Please handle it. Thanks.')
  7. 返回 project 列表:

    jira.projects()
  8. 获取 groups 以及获取一个 group 的成员:

    jira.groups()
    # 获取 group 的成员个别须要受权
    jira.group_members('System Team')

    2.2. Issue 对象:

    Issue 类的定义请参考如下 link:
    https://github.com/pycontribs…

  9. 批改 issue 的局部字段,比方 customfield_1 和 customfield_2 字段:

    issue.update({'customfield_1':{'value':'Yes'}, 'customfield_2':'Platform Default Support'})
  10. 获取 issue key:

    issue.key
  11. 获取 created time,该工夫戳格局可转为 iso format,不便后续解决:

    from datetime import datetime
    
    issue.fields.created
    # 2021-12-10T10:45:12.000+0800 -> 2021-12-10 10:45:12.000+08:00
    issue_created_isoformat = (issue.fields.created[0:-2] + ':' + issue.fields.created[-2:]).replace('T', ' ')
    dt = datetime.fromisoformat(issue_created_isoformat)
    dt.timestamp()
  12. issue.fields
    fields 蕴含了 issue 的所有字段。在 jira 网站,关上一个 issue,而后查看网页源代码,能够获取到这些字段 field 的名称。依据这些 field 的名称,通过 dir()等形式获取到其属性,从属性中能够猜出哪些是须要的。

3. 参考文档

Python 操作 Jira
https://www.cnblogs.com/super…
Jira 入门教程 麻利开发治理(一)
https://www.jianshu.com/p/145…
Python Jira
https://jira.readthedocs.io/
Jira 官网材料
https://support.atlassian.com…

退出移动版