Python如何操作Jira库
这篇文章主要讲解了Python如何操作Jira库,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
Jira提供了完善的RESTful API,如果不想直接请求API接口可以使用Python的Jira库来操作Jira
Jira Python文档
安装方法
pip install jira
认证
Jira的访问是有权限的,在访问Jira项目时首先要进行认证,Jira Python库提供了3种认证方式:
通过Cookis方式认证(用户名,密码)通过Basic Auth方式认证(用户名,密码)通过OAuth方式认证认证方式只需要选择一种即可,以下代码为使用Cookies方式认证。
form jira import JIRA
jira = JIRA('http://jira.***.com/', auth=('用户名', '登录密码')
返回的jira对象便可以对Jira进行操作。主要的操作包括:
项目问题搜索关注者评论附件项目(Project)
jira.projects(): 查看所有项目列表
jira.project("项目的Key"): 查看单个项目
项目对象的主要属性及方法如下:
key: 项目的Keyname: 项目名称description: 项目描述lead: 项目负责人projectCategory: 项目分类components: 项目组件versions: 项目中的版本raw: 项目的原始API数据示例
print(jira.projects()) # 打印所有你有权限访问的项目列表
project = jira.project('某个项目的Key')
print(project.key, project.name, project.lead)
问题(Issue)
Issue是Jira的核心,Jira中的任务,用户Story,Bug实质上都是一个Issue。
单个问题对象可以通过jira.issue("问题的Key")得到,问题的主要属性和方法如下:
id: 问题的idkey: 问题的Keypermalink(): 获取问题连接fields: 问题的描述,创建时间等所有的配置域raw: 问题的原始API数据配置域(Fields)
一般问题的ields中的属性分为固定属性和自定义属性,自定义属性格式一般为类似customfield_10012这种。常用的问题的Fields有:
assignee:经办人created: 创建时间creator: 创建人labels: 标签priorit: 优先级progress:project: 所示项目reporter: 报告人status: 状态summary: 问题描述worklog: 活动日志updated: 更新时间watches: 关注者comments: 评论resolution: 解决方案subtasks: 子任务issuelinks: 连接问题lastViewed: 最近查看时间attachment示例如下:
issue = jira.issue('JRA-1330')
print(issue.key, issue.fields.summary, issue.fields.status)
关注者/评论/附件
示例如下:
issue = jira.issue('JRA-1330')print(jiaa.watchers(issue)) # 所有关注者jira.add_watcher(issue, 'username') # 添加关注者print(jira.comments(issue)) # 所有评论comment = jira.comment(issue, '10234') # 某条评论jira.add_comment(issue, 'new comment') # 新增评论comment.update(body='update comment') # 更新评论comment.delete() # 删除该评论print(issue.fields.attachment) # 问题附件jira.add_attachment(issue=issue, attachment='/some/path/attachment.txt') # 添加附件
创建/分配/转换问题
示例如下:
# 创建问题issue_dict = { 'project': {'id': 123}, 'summary': 'New issue from jira-python', 'description': 'Look into this one', 'issuetype': {'name': 'Bug'},}new_issue = jira.create_issue(fields=issue_dict)# 批量创建问题issue_list = [{ 'project': {'id': 123}, 'summary': 'First issue of many', 'description': 'Look into this one', 'issuetype': {'name': 'Bug'},},{ 'project': {'key': 'FOO'}, 'summary': 'Second issue', 'description': 'Another one', 'issuetype': {'name': 'Bug'},},{ 'project': {'name': 'Bar'}, 'summary': 'Last issue', 'description': 'Final issue of batch.', 'issuetype': {'name': 'Bug'},}]issues = jira.create_issues(field_list=issue_list)# 分配问题jira.assign_issue(issue, 'newassignee')# 转换问题jira.transition_issue(issue, '5', assignee={'name': 'pm_user'}, resolution={'id': '3'})
搜索
Jira的搜索非常强大,并配有一套专门的搜索语言,称为JQL(Jira Query Language),Jira的Python库便是基于JQL语法进行搜索的,返回的是搜索到的问题列表。
使用语句为
jira.search_issues('JQL语句')
默认最大结果数未1000,可以通过maxResults参数配置,该参数为-1时不限制数量,返回所有搜索结果。
jira.search_issues('project=PROJ and assignee = currentUser()', maxResults=-1)
看完上述内容,是不是对Python如何操作Jira库有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。