获取问题评论 JIRA python

Posted

技术标签:

【中文标题】获取问题评论 JIRA python【英文标题】:Getting issue comments JIRA python 【发布时间】:2016-05-22 18:16:12 【问题描述】:

我正在尝试获取在某个搜索查询的 JIRA 中创建的所有问题。我的查询相当简单:

import jira
from jira.client import JIRA

def fetch_tickets_open_yesterday(jira_object):
    # JIRA query to fetch the issues
    open_issues = jira_object.search_issues('project = Support AND issuetype = Incident AND \
    (status = "Open" OR status = "Resolved" OR status = "Waiting For Customer")', maxResults = 100,expand='changelog')

    # returns all open issues
    return open_issues

但是,如果我尝试访问使用以下表示法创建的票证的 cmets,则会收到一个关键错误。

for issue in issues:
    print issue.raw['fields']['comment']

如果我尝试获取如下单个问题的 cmets,我可以访问 cmets:

single_issue = jira_object.issue('SUP-136834')
single_issue.raw['fields']['comment']

如何通过 search_issues() 函数访问这些 cmets?

【问题讨论】:

您能指定您使用的是哪个 JIRA 库吗? 我正在使用 python jira 库。有关我正在运行的导入 cmets,请参见下文: import jira from jira.client import JIRA 【参考方案1】:
from jira import JIRA

Jira =  JIRA('https://jira.atlassian.com')

issue_num = "ISSUE-123"

issue = Jira.issue(issue_num)

comments =  issue.fields.comment.comments

for comment in comments:
    print("Comment text : ",comment.body)
    print("Comment author : ",comment.author.displayName)
    print("Comment time : ",comment.created)

【讨论】:

【参考方案2】:

search_issues方法不返回comment字段,必须通过设置相应参数手动声明必须包含的字段。

只需在 search_issue 方法中包含 'fields' 和 'json_result' 参数并像这样设置它

open_issues = jira_object.search_issues('project = Support AND issuetype = Incident AND \
    (status = "Open" OR status = "Resolved" OR status = "Waiting For Customer")', maxResults = 100,expand='changelog',fields = 'comment',json_result ='True')

现在您可以访问 cmets 而不会出现 keytype 错误

comm=([issue.raw['fields']['comment']['comments'] for issue in open_issues])

【讨论】:

【参考方案3】:

我在同样的问题上苦苦挣扎。假设“issue”是Issue类型的对象,而“jira”是JIRA类型的对象,根据http://jira.readthedocs.org/en/latest/#issues

issue.fields.comment.comments

应该可以工作,但字段对象没有任何关键的“评论”。

那里提到的另一个选项对我有用:

jira.comments(issue) 

因此,要使其正常工作,您可以使用搜索结果中的问题并调用 jira.cmets。例如

issues =  jira.search_issues(query)
comments = jira.comments(issues[index])

(我的库版本是1.0.3,python 2.7.10)

【讨论】:

使用[comment.body for comment in cmets]获取评论中输入的文字

以上是关于获取问题评论 JIRA python的主要内容,如果未能解决你的问题,请参考以下文章

如何在链接的Jira问题之间复制评论?

如何将自定义复选框组件添加到 JIRA 评论?

javascript 将msgs插入JIRA评论

Python操作Jira

使用 Jira ScriptRunner 将纯文本转换为可显示的 HTML(显示项目符号、复选标记笑脸等)

jira中的复杂过滤器