有没有办法使用 python jira 客户端将组件添加到 jira 问题?
Is there any way to add components to jira issue using python jira client?
我正在做一个项目,我必须更新 jira 问题字段,如组件、史诗链接等。
我正在使用 jira python client(https://pypi.org/project/jira/) 来完成这个任务。
ticketObj = authJira.issue('ABC-12345')
print(ticketObj.fields.components)
输出结果如下
[]
因为components是一个数组
所以如果想更新 jissue 中的字段,我必须执行以下操作
ticketObj.update(components = ['component 1'])
但是这个方法给出了以下错误
JiraError HTTP 400 url: https://jira.yourdomain.com/rest/api/2/issue/1234567
text: Can not instantiate value of type [simple type, class com.atlassian.jira.rest.api.issue.FieldOperation] from JSON String; no single-String constructor/factory method (through reference chain: com.atlassian.jira.rest.v2.issue.IssueUpdateBean["update"])
response headers = {...}
response text = {"errorMessages":["Can not instantiate value of type [simple type, class com.atlassian.jira.rest.api.issue.FieldOperation] from JSON String; no single-String constructor/factory method (through reference chain: com.atlassian.jira.rest.v2.issue.IssueUpdateBean[\"update\"])"]}
我是这个问题的作者,我到处研究,遗憾的是没有找到使用 jira python 客户端添加组件的方法,所以我创建了使用 rest 添加组件的新方法 api 由 .
提供
def addComponentToTicket(self,ticketKey:str,component:str):
payload = json.dumps({"update": {"components": [{
"add": {"name": component}
}], }})
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization":f'Bearer {self.personalAccessToken}',
"X-Atlassian-Token": "no-check",
}
response = requests.put(f'{self.REST_URL}issue/{ticketKey}',
data=payload,
headers=headers,
verify=False)
我有另一种更简洁的方法,如果我们想更新 jira 中的任何问题字段,我们可以使用 Jira api 更新方法,通过将字典传递给更新参数。
ticketObj.update(
update=
{
"components": [{
"add": {"name": component},
}],
},
)
我正在做一个项目,我必须更新 jira 问题字段,如组件、史诗链接等。 我正在使用 jira python client(https://pypi.org/project/jira/) 来完成这个任务。
ticketObj = authJira.issue('ABC-12345')
print(ticketObj.fields.components)
输出结果如下
[]
因为components是一个数组 所以如果想更新 jissue 中的字段,我必须执行以下操作
ticketObj.update(components = ['component 1'])
但是这个方法给出了以下错误
JiraError HTTP 400 url: https://jira.yourdomain.com/rest/api/2/issue/1234567
text: Can not instantiate value of type [simple type, class com.atlassian.jira.rest.api.issue.FieldOperation] from JSON String; no single-String constructor/factory method (through reference chain: com.atlassian.jira.rest.v2.issue.IssueUpdateBean["update"])
response headers = {...}
response text = {"errorMessages":["Can not instantiate value of type [simple type, class com.atlassian.jira.rest.api.issue.FieldOperation] from JSON String; no single-String constructor/factory method (through reference chain: com.atlassian.jira.rest.v2.issue.IssueUpdateBean[\"update\"])"]}
我是这个问题的作者,我到处研究,遗憾的是没有找到使用 jira python 客户端添加组件的方法,所以我创建了使用 rest 添加组件的新方法 api 由 .
提供 def addComponentToTicket(self,ticketKey:str,component:str):
payload = json.dumps({"update": {"components": [{
"add": {"name": component}
}], }})
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization":f'Bearer {self.personalAccessToken}',
"X-Atlassian-Token": "no-check",
}
response = requests.put(f'{self.REST_URL}issue/{ticketKey}',
data=payload,
headers=headers,
verify=False)
我有另一种更简洁的方法,如果我们想更新 jira 中的任何问题字段,我们可以使用 Jira api 更新方法,通过将字典传递给更新参数。
ticketObj.update(
update=
{
"components": [{
"add": {"name": component},
}],
},
)