python菜鸟摸索分享
我的环境
系统:win10
python版本:3.9
一、安装jira
pip install jira
二、使用jira
项目对象(Project)的主要属性及方法如下:
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)的主要属性及方法如下:
#问题的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文档**