我正在尝试使用 Jira 的 python API 将问题分配给史诗。从文档中,我发现 GreenHopper 类中有一个 add_issues_to_epic 方法,但它似乎对我不起作用。到目前为止,我有以下内容
from jira.client import JIRA
from jira.client import GreenHopper
jira = JIRA(options, basic_auth=(username, password))
greenhopper = GreenHopper(options, basic_auth=(username, password))
epicLink = 'IR-345'
issuesToAdd = ['IR-1459']
greenhopper.add_issues_to_epic(epicLink, issuesToAdd)
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误,即找不到 GreenHopper 类的 add_issues_to_epic。我试过 jira.add_issues_to_epic(epicLink, issuesToAdd),但这给了我同样的错误。
我究竟做错了什么?
我是jira python的新手,我希望有一个列表,其中包含使用现有过滤器获得的票证.
我试过jira.filter(id)但是接收了有问题的列表,我只收到了过滤器的名称.使用jira.search_issue正在工作,但因为我的过滤器可以被其他人改变,我需要一些会考虑过滤器内容的变化.有任何想法吗?谢谢!
当我尝试在 JIRA 中的自定义字段上设置值时遇到问题,它返回此错误:
File "c:\python27\lib\site-packages\jira\resilientsession.py", line 45, in raise_on_error
r.status_code, error, r.url, request=request, response=r, **kwargs)
JIRAError: JiraError HTTP 400
text: Operation value must be a string
url: http://iasp091x.ia.ro.conti.de:8080/rest/api/2/issue/31424
response headers = {'X-AUSERNAME': 'continental', 'X-ASEN': 'SEN-5132028', 'X-Content-Type-Options': 'nosniff', 'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'X-Seraph-LoginReason': 'OK', 'Vary': 'User-Agent', 'X-AREQUESTID': '850x418015x3', 'X-ASESSIONID': 'gv7hra', 'Connection': 'close', 'Cache-Control': 'no-cache, no-store, no-transform', 'Date': 'Mon, 01 Feb 2016 12:10:49 GMT', 'Server': 'Apache-Coyote/1.1', 'Content-Type': 'application/json;charset=UTF-8'}
response text = {"errorMessages":[],"errors":{"customfield_11301":"Operation value must be a string"}}
Run Code Online (Sandbox Code Playgroud)
我使用的代码是这样的:
new_issue = jira.create_issue(project='PT', summary=issue_summary, …Run Code Online (Sandbox Code Playgroud) 我试图处理jira-python异常,但我的尝试,除了似乎没有抓住它.我还需要添加更多行才能发布此内容.他们就是那些线条.
try:
new_issue = jira.create_issue(fields=issue_dict)
stdout.write(str(new_issue.id))
except jira.exceptions.JIRAError:
stdout.write("JIRAError")
exit(1)
Run Code Online (Sandbox Code Playgroud)
以下是引发异常的代码:
import json
class JIRAError(Exception):
"""General error raised for all problems in operation of the client."""
def __init__(self, status_code=None, text=None, url=None):
self.status_code = status_code
self.text = text
self.url = url
def __str__(self):
if self.text:
return 'HTTP {0}: "{1}"\n{2}'.format(self.status_code, self.text, self.url)
else:
return 'HTTP {0}: {1}'.format(self.status_code, self.url)
def raise_on_error(r):
if r.status_code >= 400:
error = ''
if r.text:
try:
response = json.loads(r.text)
if 'message' in response:
# JIRA 5.1 errors
error …Run Code Online (Sandbox Code Playgroud) 我正在尝试从特定问题获取所有字段和值我的代码:
authenticated_jira = JIRA(options={'server': self.jira_server}, basic_auth=(self.jira_username, self.jira_password))
issue = authenticated_jira.issue(self.id)
print issue.fields()
Run Code Online (Sandbox Code Playgroud)
而不是返回它返回的字段列表:
<jira.resources.PropertyHolder object at 0x108431390>
Run Code Online (Sandbox Code Playgroud) 我正在使用JIRA python API从我的代码创建JIRA票证.代码如下所示
from jira.client import JIRA
def create_jira_issue(jira, summary, description, status):
project = getattr(settings,'jira_project_' + status)
now = datetime.datetime.now()
pm_jira_dict = {
'project': {'key': getattr(settings,'jira_project_' + status)},
'summary': summary,
'description': description,
'issuetype': {'name': settings.jira_issuetype},
'assignee':{'name': settings.jira_assignee},
'timetracking':{'originalEstimate': settings.jira_timetracking},
'duedate':now.strftime('%Y-%m-%d %H:%M:%S')
}
new_issue = jira.create_issue(fields=pm_jira_dict)
return new_issue
Run Code Online (Sandbox Code Playgroud)
现在我想为此票添加一个Watcher.我怎么能在这里添加它.
提前致谢.
我正在尝试获取与项目相关的所有问题。当我执行下面的代码时,我只得到 50 个结果。我需要浏览所有页面并获取所有错误。请帮忙
all_issues = jira.search_issues('project=ProjectName')
each_issue = sorted([issue.key for issue in all_issues])
for item in each_issue:
print item
Run Code Online (Sandbox Code Playgroud)
由于页面的默认值为 50,这仅给我 50 个问题。我需要获取所有问题。
以下代码返回所有的jira并花费更多时间。我想更快地获得总的jira计数,而没有jira详细信息
jira.search_issues('project=PROJ and assignee != currentUser()')
Run Code Online (Sandbox Code Playgroud)
通过以下链接,我们可以使用JQL获得总数,如何使用jira-python进行相同操作。 https://jira.atlassian.com/browse/JRA-29903
通过添加maxResults = 0尝试以下代码,但它返回的是空列表,而不是总的jira计数。
jira.search_issues('project=PROJ and assignee != currentUser()',
startAt = 0,
maxResults = 0)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 jira-python 编辑 jira 中的评论,但找不到任何内容。
我知道add_comment会添加评论,但我也想知道如何edit评论。
url = "https://example.com/jira/rest/api/2/issue/issue_key/comment"
data = json.dumps({"body": 'some string'})
headers = {'content-type':'application/json'}
r = requests.post(url, data, auth=('username', 'password'))
Run Code Online (Sandbox Code Playgroud)
-> r.status_code输出是415。
但是在
r = requests.get(url, data, auth=('username', 'password'))
Run Code Online (Sandbox Code Playgroud)
-> r.status_code输出是200。请帮助我确定问题。