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...
可通过如下形式来生成JIRA对象:
form jira import JIRAjira = JIRA('http://jira.***.com/', auth=(username, password))
通过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
通过issue key获取issue对象:
issue = jira.issue(issue_key)
转移issue给new assignee:
jira.assign_issue(issue, new_assignee)
扭转issue的状态:
jira.transition_issue(issue, 'Accept')jira.transition_issue(issue, 'Deliver')
给issue增加comment:
jira.add_comment(issue, 'Please handle it. Thanks.')
返回project列表:
jira.projects()
获取groups以及获取一个group的成员:
jira.groups()# 获取group的成员个别须要受权jira.group_members('System Team')
2.2. Issue对象:
Issue类的定义请参考如下link:
https://github.com/pycontribs...批改issue的局部字段,比方customfield_1和customfield_2字段:
issue.update({'customfield_1':{'value':'Yes'}, 'customfield_2':'Platform Default Support'})
获取issue key:
issue.key
获取created time,该工夫戳格局可转为iso format,不便后续解决:
from datetime import datetimeissue.fields.created# 2021-12-10T10:45:12.000+0800 -> 2021-12-10 10:45:12.000+08:00issue_created_isoformat = (issue.fields.created[0:-2] + ':' + issue.fields.created[-2:]).replace('T', ' ')dt = datetime.fromisoformat(issue_created_isoformat)dt.timestamp()
- 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...