Python操作Jira库常用方法解析
作者:临渊 发布时间:2022-02-06 01:56:11
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: 项目的Key
name: 项目名称
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: 问题的id
key: 问题的Key
permalink(): 获取问题连接
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)
关注者/评论/附件
jira.watchers(): 问题的关注者
jira.add_watcher(): 添加关注者
jira.remove_watcher(): 移除关注者
jira.comments(): 问题的所有评论
jira.comment(): 某条评论
jira.add_comment():添加评论
comment.update()/delete(): 更新/删除评论
jira.add_attachment(): 添加附件
示例如下:
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') # 添加附件
创建/分配/转换问题
jira.create_issue(): 创建问题
jira.create_issues(): 批量创建问题
jira.assign_issue(): 分配问题
jira.transitions(): 获取问题的工作流
jira.transition_issue(): 转换问题
示例如下:
# 创建问题
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)
来源:https://www.cnblogs.com/superhin/p/11693280.html
猜你喜欢
- 这几天在QQ群里知道了几个比较好的优化方面的站,感觉看高手的文章简直就是一种享受。和很多现在正在阅读这篇文章的站长一样,我即将毕业,但是还没
- 1、问题现象:有个网站是通过session验证的,前端时间访问正常,但近期后台session老是失效很快,根本没法操作,我设置timeout
- Yahoo和Google都有自己的建设高性能网站最佳实践, 我不做赘述, 需要了解的自行查阅资料:Yahoo的: Best Practice
- 如何用表单在线建立目录?很简单,两个文件就搞定了:creatfolder.htm' 表单文件<form n
- 人生苦短,菜鸟学Python!今天,我们会一次性分享6个堪称神仙的内置函数。在很多计算机书籍中,它们也通常作为高阶函数来介绍。而我自己在日常
- div和span、relative和absolute、display和visibility是很容易混淆和弄错的HTML标签与CSS属性,简单
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门) 2.彻底弄懂CSS盒子模式二(导航栏实例) 3.彻底弄懂CSS盒子模式三(浮动的表演和清
- 新上的一台服务器出现了一个现象:ASP程序中,调用函数Now(),显示的时间总是形如“2009-07-12 上午 08:12:56”这样的,
- 实现一个AuditLog的功能,是B/S结构专案。 每个用户可以登录系统,在程序中操作数据(添加,更新和删除)需要实现记录操作跟踪。是谁添加
- 本文实例讲述了python类和继承定义与用法。分享给大家供大家参考。具体如下:class Employee: passlee =
- 在学会了SELECT语句的构造和用途之后你就该学习如何使用它了。在你所掌握的数据库工具下,这可能意味着你得按下某个写着“执行”字样的按钮。在
- 前言都说抖音有毒,一刷就停不下来了。看来抖音这款产品紧紧抓住了人们内心深处的某些需求。当然今天不是来探讨抖音这款产品的啊。今天我们来学习如何
- 只有mdf文件的数据库附加失败的修复 附加时报如下错误: 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 '
- 如何准确地获得一个整数?当然可以,Format就是做这个的“专家”:function NumbersOnlyNoDecimals(
- 本文实例讲述了Python基于pandas实现json格式转换成dataframe的方法。分享给大家供大家参考,具体如下:# -*- cod
- 如何修改NT的登录密码? 代码见下:<%Sub ChangeUserPassword(C
- 将纸的材质融为设计元素现已成为当今网页设计最热门最流行的设计趋势之一。网页设计师可以使用纸屑、硬纸板纹理材质、笔记本和记事薄构成有趣而复杂的
- 字体设计是人类商业活动的需求,它随着时代和科学技术的进步而不断地变化着。被广泛应用于网络生活的各个方面。现代字体设计在计算机技术的应用中已经
- 可及,通俗的说是“可以达到”,加上主语和宾语,在“交互设计”这个大的语境下,含义应该是“用户可以达到自己的操作目标”,这不是和“有效性—用户
- 最近在研究Hacker News API时遇到一个HTTPS问题。因为所有的Hacker News API都是通过加密的HTTPS协议访问的