获得问题评论JIRA python

Bob*_*mer 3 python jira jira-rest-api

我试图获得在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
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试访问使用以下表示法创建的故障单的注释,则会出现密钥错误.

for issue in issues:
    print issue.raw['fields']['comment']
Run Code Online (Sandbox Code Playgroud)

如果我尝试获得如下单个问题的评论,我可以访问评论:

single_issue = jira_object.issue('SUP-136834')
single_issue.raw['fields']['comment']
Run Code Online (Sandbox Code Playgroud)

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

小智 8

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)
Run Code Online (Sandbox Code Playgroud)


Hem*_*van 7

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

只需在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')
Run Code Online (Sandbox Code Playgroud)

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

comm=([issue.raw['fields']['comment']['comments'] for issue in open_issues])
Run Code Online (Sandbox Code Playgroud)


小智 5

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

issue.fields.comment.comments

应该可以工作,但是fields对象没有任何键“注释”。

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

jira.comments(issue) 
Run Code Online (Sandbox Code Playgroud)

因此,为了使其正常工作,您可以使用搜索结果中的问题并致电jira.comments。例如

issues =  jira.search_issues(query)
comments = jira.comments(issues[index])
Run Code Online (Sandbox Code Playgroud)

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