使用Python从Jira获取关联问题

4

我尝试使用Python从Jira获取关联问题。看起来很棘手,因为我得到的特定问题中的关联问题数正确,但是关联问题不是我所期望的(通过Jira Web界面进行验证)。它们似乎是其他问题,甚至来自不同的项目。

我的目的是获取每个具有关联问题的问题的所有关联问题,并检查关联问题是否具有特定状态。

这是我所做的:

results = jira.search_issues('here query')  
for issueId in results:
    issue = jira.issue(issueId)
    if (issue.fields.issuelinks): 
        for issueLinked in issue.fields.issuelinks:
            if(jira.issue(issueLinked).fields.status != "Done" and jira.issue(issueLinked).fields.status != "Closed"):
                print("id: ", jira.issue(issueLinked).id)
                print("key: ", jira.issue(issueLinked).key)
                print("status: ", jira.issue(issueLinked).fields.status)
                print("summary: ", jira.issue(issueLinked).fields.summary)

你是否遇到过类似的问题?

请参考 https://bitbucket.org/atlassian_tutorial/jira-rest-tutorial-examples/src/master/python/draw-chart.py 获取一个实例。该文档的相关部分是Jira REST API examples中的“从脚本调用REST API:绘制图像链接”章节。 - Oliver
2个回答

19

我的回答可能不够完整,但是issue.fields.issuelinks并不是一个问题列表,它是一个链接列表。以下是一个使用示例:

for link in issue.fields.issuelinks:
    if hasattr(link, "outwardIssue"):
        outwardIssue = link.outwardIssue
        print("\tOutward: " + outwardIssue.key)
    if hasattr(link, "inwardIssue"):
        inwardIssue = link.inwardIssue
        print("\tInward: " + inwardIssue.key)

父问题是具有外部链接的问题。 - Aqua 4

1

不要使用jira.issue(issueLinked),而是使用jira.issue_link(issueLinked)从Jira服务器获取真正的链接资源。然后您可以通过以下方式访问链接的问题:

issue_link = jira.issue_link(issueLinked)
print("Linked issue '%s'" % issue_link.outwardIssue) 

其中outwardIssue是链接问题对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接