python的jira库操作

python菜鸟摸索分享

我的环境
系统:win10
python版本:3.9

一、安装jira

pip install jira

二、使用jira

项目对象(Project)的主要属性及方法如下:

  1. key: 项目的Key
  2. name: 项目名称
  3. description: 项目描述
  4. lead: 项目负责人
  5. projectCategory: 项目分类
  6. components: 项目组件
  7. versions: 项目中的版本
  8. raw: 项目的原始API数据
from jira import JIRA

jira = JIRA(server=login_dict['server'], basic_auth=(login_dict['username'], login_dict['password']))
#访问项目列表
jira.projects()  
#访问项目名称,其他项目属性和方法类似
jira.project("YH").name

问题(issue)的主要属性及方法如下:

  1. id: 问题的id
  2. key: 问题的Key
  3. permalink(): 获取问题连接
  4. fields: 问题的描述,创建时间等所有的配置域
  5. raw: 问题的原始API数据
 #问题的id,其他问题属性和方法类似
 jira.issue('YH-101').id

配置域(Fields)
assignee:经办人
created: 创建时间
creator: 创建人
labels: 标签
priority: 优先级
project: 所属项目
status: 状态
summary: 问题描述
worklog: 活动日志
updated: 更新时间
watches: 关注者
comments: 评论
resolution: 解决方案
subtasks: 子任务
issuelinks: 连接问题
lastViewed: 最近查看时间
attachment: 附件

#问题创建人,其他问题字段的属性和方法类似
jira.issue('YH-101').fields.creator

创建问题

issue_dict = {
	'''根据自身需要和问题属性配置内容'''
    'project': {'id': 10000},  #项目ID
    'summary': '测试',    #问题概要
    'description': '创建测试问题',   #问题描述 \n换行
    'issuetype': {'name': '任务'},   #问题类型,具体根据配置即可,比如:Bug、缺陷、任务、需求等
    'assignee':{'name': 'dh'}  #经办人
}
jira.create_issue(fields=issue_dict)
#创建问题成功后会返回问题的key

批量创建问题

issue_list = [issue_dict1,issue_dict2,issue_dict3]
jira.create_issues(issue_list) 

更新问题

issue = jira.issue('YH-101')
issue.update(summary='测试2', description='测试2号')
#其他属性更新方法同上,也可以通过传参方式更新
issue_dict= {
    'summary': 'issue概要',
    'description': 'issue描述\n第二行',
}
issue.update(fields=issue_dict)

查询当前权限下问题流程可操作节点

#获取问题的工作流
transitions = jira.transitions(issue)
#打印该账号当前可操作的流程节点id和名称
print ([(t['id'], t['name']) for t in transitions])

更新问题流程状态

#传入问题,流程节点id,也可以同时传入经办人,修改问题节点及经办人
jira.transition_issue(issue,'2',assignee={'name': '007'})

问题的关注、评论、附件

#获取问题
issue = jira.issue('YH-101')
# 问题的所有关注者
jiaa.watchers(issue) 
# 添加问题的关注者
jira.add_watcher(issue, 'username') 
#移除问题的关注着
jira.remove_watcher(issue, 'username')
# 问题的所有评论
jira.comments(issue)
#问题的某一条评论 
comment = jira.comment(issue, '10234')
#为问题添加评论
jira.add_comment(issue, 'new comment') 
#更新问题的该条评论
comment.update(body='update comment') 
#删除该条评论
comment.delete()
#为问题添加附件
jira.add_attachment(issue=issue, attachment='path') 

**jira Python文档**

你可能感兴趣的:(研发管理,python,jira)