jira 查找issue_JIRA 模块 bug管理工具

#封装jira一些方法

from jira importJIRAimportsysclassJiraTool():def __init__(self, server, username, password, maxResults = 500):

self.server=server

self.basic_auth=(username, password)#issues查询的最大值

self.maxResults =maxResultsdeflogin(self):

self.jira= JIRA(server=self.server, basic_auth=self.basic_auth)if self.jira ==None:print('连接失败')

sys.exit(-1)defget_projects(self):"""获得jira 的所有项目

:return:"""

return [(p.key, p.name, p.id) for p inself.jira.projects()]defget_components(self, project):"""获得某项目的所有模块

:param project:

:return:"""

return [(c.name, c.id) for c inself.jira.project_components(self.jira.project(project))]def create_component(self, project, compoment, description, leadUserName=None, assigneeType=None, isAssigneeTypeValid=False):"""# 创建项目模块

:param project: 模块所属项目

:param compoment:模块名称

:param description:模块描述

:param leadUserName:

:param assigneeType:

:param isAssigneeTypeValid:

:return:"""components=self.jira.project_components(self.jira.project(project))if compoment not in [c.name for c incomponents]:

self.jira.create_component(compoment, project, description=description, leadUserName=leadUserName,

assigneeType=assigneeType, isAssigneeTypeValid=isAssigneeTypeValid)def create_issue(self, project, compoment, summary, description, assignee, issuetype, priority='Medium'):"""创建提交bug

:param project: 项目

:param issuetype: 问题类型,Task

:param summary: 主题

:param compoment: 模块

:param description: 描述

:param assignee: 经办人

:param priority: 优先级

:return:"""issue_dict={'project': {'key': project},'issuetype': {'id': issuetype},'summary': summary,'components': [{'name': compoment}],'description': description,'assignee': {'name': assignee},'priority': {'name': priority},

}returnself.jira.create_issue(issue_dict)defdelete_issue(self, issue):"""删除bug

:param issue:

:return:"""issue.delete()defupdate_issue_content(self, issue, issue_dict):"""更新bug内容

:param issue:

:param issue_dict:

issue_dict = {

'project': {'key': project},

'issuetype': {'id': issuetype},

'summary': summary,

'components': [{'name': compoment}],

'description': description,

'assignee': {'name': assignee},

'priority': {'name': priority},

}

:return:"""issue.update(fields=issue_dict)defupdate_issue_issuetype(self, issue, issuetype):"""更新bug 状态

:param issue:

:param issuetype: 可以为id值如11,可以为值如'恢复开启问题'

:return:"""transitions=self.jira.transitions(issue)#print([(t['id'], t['name']) for t in transitions])

self.jira.transition_issue(issue, issuetype)defsearch_issues(self, jql):"""查询bug

:param jql: 查询语句,如"project=项目key AND component = 模块 AND status=closed AND summary ~标题 AND description ~描述"

:return:"""

try:#maxResults参数是设置返回数据的最大值,默认是50。

issues = self.jira.search_issues(jql, maxResults=self.maxResults)exceptException as e:print(e)

sys.exit(-1)returnissuesdefsearch_issue_content(self, issue, content_type):"""获取bug 的相关信息

:param issue:

:param content_type:项目project; 模块名称components; 标题summary; 缺陷类型issuetype; 具体描述内容description; 经办人assignee; 报告人reporter; 解决结果resolution; bug状态status; 优先级priority; 创建时间created; 更新时间updated; 评论comments

:return:"""

#评论

if content_type == 'comments':return [c.body for c inself.jira.comments(issue)]ifhasattr(issue.fields, content_type):

result=getattr(issue.fields, content_type)ifisinstance(result, list):return [c.name for c in result if hasattr(c, 'name')]return result

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值