Python第三方库jira之学习日记(一)

本文介绍了如何通过命令行安装JIRA以及使用Python的JIRA库来获取JIRAissue的详细信息,包括标题、描述、bugreporter、issue类型等属性。还展示了如何实例化Jira_Operation类并调用相应方法来获取数据。
摘要由CSDN通过智能技术生成

安装jira

首先win+r,输入"cmd", 打开命令行窗口,输入以下命令用于安装jira:

pip install jira -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host=pypi.tuna.tsinghua.edu.cn

使用jira获取单条issue的信息

由于工作需要,需要整理出jira中issue的相关信息,并填入excel表格中:

1. 获取issue的summary(即标题)

返回的数据类型为字符串格式

from jira import JIRA

class Jira_Operation():
    def __init__(self, user_name, password, issue, server_link='http://111.11.111.11:1111', project_name='BMW'):
        self.jira = JIRA(server=server_link, basic_auth=(user_name, password))         #登录jira需要填写域名 用户名以及密码
        self.issue = self.jira.issue(issue)   #issue的格式为 [project_name]-[xxxx](eg.BMW-1145)
    
    def get_summary(self):
        """
        获取该条issue的标题
        """
        issue_summary = self.issue.fields.summary
        return issue_summary

2. 获取issue的description(需注意此处为类方法 需写在class Jira_Operation中 下列类方法同理)

返回的数据类型为字符串格式

def get_Des(self):
    """
    获取该条issue的描述
    """
    issue_des = self.issue.fields.description
    return issue_des

3. 获取issue的bug reporter

返回的格式为中文名+拼音(例如:李四 Si Li)

注意:如果只需要提取中文名的话 请先将数据类型转换为字符串 否则会报错

def get_BugTester(self):
    """
    如果需要完整的返回内容 将该类方法中的二三行注释即可
    """
    bug_tester = str(self.issue.fields.reporter)
    blank_pos = bug_tester.find(' ')                  #此处为了找出空格的索引位置
    bug_tester = bug_tester[:blank_pos]               #提取出空格前的中文名(也可使用re模块进行提取)
    return bug_tester

4. 获取issue的Type

Type类型有Bug(Internal/External)、Requirement

注意:此处和reporter一样 如果要对获取的结果进行处理 需要先转换为字符串

def get_IssueType(self):
        """
        如果需要获取完整的返回内容 将类方法中的二三行注释即可
        """
        issue_type = str(self.issue.fields.issuetype)         #需要转换为str
        if 'Bug' in issue_type:                               #Bug(Internal/External)
            issue_type = issue_type[:3]                       #只提取出"Bug"
        return issue_type

5. 调用类方法

if __name__ == '__main__':                                      #表示当前py文件为主程序 若被其他py文件调用 则不会进入该if的函数体中(便于进行调试)
    username = 'zhangsan'                                       #登录jira的用户名
    jira_pwd = '123456789'                                      #登录jira的密码
    issue = '[project_name]-[Number]'                           #输入issue(例如:ABCD-1111)
    object = Jira_Operation(username, jira_pwd, issue)          #实例化
    content = object.get_BugTester()                            #调用类方法get_BugTester获取当前issue的bug reporter
    print(content)

6. 更多issue属性

通过self.issue.fields.xxxx还可以获取其他的issue属性,可以仿照上述例子编写不同issue属性对应的类方法,如果要对返回结果进行处理,还需要知道数据类型,避免对变量进行处理时,代码编译报错。可以通过print(type(variable_name))来获取数据类型。

以下是可以通过self.issue.fields.xxxx获取的属性

self.issue.fields.assignee:获取当前issue的处理者
self.issue.fields.attachment:获取当前issue的附件
self.issue.fields.comment:获取当前issue的评论
self.issue.fields.created:获取当前issue的创建时间
self.issue.fields.description:获取当前issue的描述
self.issue.fields.duedate:获取当前issue的截止时间
self.issue.fields.issuelinks:获取当前issue的链接ID(注意:此处获取的并不是相关联的issue 而是链接的ID)
self.issue.fields.issuetype:获取当前issue的类型
self.issue.fields.labels:获取当前issue的标签
self.issue.fields.priority:获取当前issue的优先级
self.issue.fields.project:获取当前issue所属项目名
self.issue.fields.reporter:获取当前issue的报告者
self.issue.fields.resolution:获取当前issue的解决状态(Unresolved, closed...)
self.issue.fields.status:获取当前issue的状态(Open, Resolved, Tested, Decision, Implementing, Analyzing, Testing, Review, Closed)
self.issue.fields.summary:获取当前issue的标题
self.issue.fields.versions:获取当前issue的版本
self.issue.fields.votes:获取当前issue的票数
self.issue.fields.watchers:获取当前issue的关注者
self.issue.fields.worklog:获取当前issue的日志

文章会在CSDN,知乎,b站发布。

声明:

文章只为记录下在写jira相关的脚本过程中遇到的问题,功能的实现方法可能并不是最优解,只为能够实现预期结果。如果对上述代码有改进建议或是编译有误无法实现功能的话,欢迎大家在评论区提出~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值