Python第三方库jira学习日记(二)之inwardissue和outwardissue

目录

1.inwardissue

2. outwardissue

3. 调用类方法


在上期文章《Python第三方库jira之学习日记(一)》中末尾有提到过,通过issue.fields.issuelinks无法获取到和当前issue相关联的issue,获取到的是链接的ID。这个ID既不是当前issue的ID值,也不是和当前issue相关联的另一个issue的ID值,而是两个issue之间的链接的ID值。

那么如果想要获取当前issue中issuelinks下的关联issue,需要用到inwardissue(内联)和outwardissue(外联)

例如:project-1111 clones project-2222,那么inwardissue就是project-1111,outwardissue就是project-2222。(clone是指project-1111复制了project-2222的内容)

两个issue之间除了clone关系外,还有以下关系:

具体每个关系之间,哪个issue是inwardissue,哪个是outwardissue可以通过下方代码了解。


 跟上期文章一样,首先导入第三方库jira,再创建一个类。此处创建类以及__init__的代码和上期文章中的代码一致。下面添加inwardissue和outwardissue的相关代码。

from jira import JIRA

class Jira_Operation():
    def __init__(self, user_name, password, issue, server_link='http://111.11.111.11:1111'):
        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)

1.inwardissue

inwardIssue并不是字符串形式,可以将返回结果进行数据类型转换,再添加到列表之中。

def get_InwardIssue(self):
    """
    """
    inward_issue_set = []                                                  #创建空列表
    for link_id in self.issue.fields.issuelinks:                           #获取所有链接的ID值
        inwardissue = str(self.jira.issue_link(link_id).inwardIssue)       #获取inwardissue 并转换成字符串形式
        inward_issue_set.append(inwardissue)                               #用于存储当前issue下所有的inwardissue
    return inward_issue_set

或者也可以使用列表生成式简化代码,两种方式生成的结果一致

def get_InwardIssue(self):
    """
    """
    inward_issue_set = [str(self.jira.issue_link(link_id).inwardIssue) for link_id in self.issue.fields.issuelinks]
    return inward_issue_set

2. outwardissue

outwardIssue也不是字符串形式,可以先将返回结果进行数据类型转换,再添加到列表之中。

 

def get_OutwardIssue(self):
    """
    """
    outward_issue_set = []                                                  #创建空列表
    for link_id in self.issue.fields.issuelinks:                            #获取所有链接的ID值
        outwardissue = str(self.jira.issue_link(link_id).outwardIssue)       #获取outwardissue 并转换成字符串形式
        outward_issue_set.append(outwardissue)                               #用于存储当前issue下所有的outwardissue
    return outward_issue_set

或者也可以使用列表生成式简化代码,两种方式生成的结果一致

def get_OutwardIssue(self):
    """
    """
    outward_issue_set = [str(self.jira.issue_link(link_id).outwardIssue) for link_id in self.issue.fields.issuelinks]
    return outward_issue_set

3. 调用类方法

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)          #实例化
    inward_issue = object.get_InwardIssue()                     #调用类方法get_InwardIssue获取当前issue下的inwardissue
    outward_issue = object.get_OutwardIssue()                   #调用类方法get_OutwardIssue获取当前issue下的outwardissue
    print(inward_issue)
    print(outward_issue)

需要注意的是,并不是每一个issue中都有inward issue或者outward issue。如果没有的话,列表为空,并且编译是不会报错的。

声明:

文章会在b站,CSDN,知乎同步上传~

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值