[英]Is it possible to change jira issue status with python-jira?
我想用 python-jira 更改 jira 问题状态。python-jira API 是http://jira-python.readthedocs.org/en/latest/ 。我找不到任何方法来做到这一点。 我试图使用issue.update(status="Closed")
。但它没有用。我在https://developer.atlassian.com/display/JIRADEV/Issue+status+and+ 中找到了问题状态和工作流程工作流程。但我仍然不知道该怎么做。有人可以帮我吗?
我也遇到了这个问题,不幸的是 JIRA 令人难以置信的灵活性有时也使它成为 PITA。
要更改工单的状态,您需要进行转换,将其从一种状态移动到下一种状态。
您需要找到您的过渡 ID,然后像这样使用它:
if issue.fields.status in ('open', 'reopened'):
# Move the ticket from opened to closed.
jira.transition_issue(ticket, transition='131')
jira-python 文档在这里发现和进行转换。
jira.transition_issue
记录在此处。 您实际上可以使用过渡的名称(例如: 'Closed'
)而不是 ID,但 ID 更可靠,因为它不会改变。
要更改状态,您需要在问题上方进行交易。 过渡只是在“工作流程”中定义的操作,以及从一种状态到另一种状态的过渡问题。 从当前状态,您只能执行有限的一组转换,这取决于“工作流程”。 尝试使用以下功能: 当前问题状态:
issue = jira.issue('PROJECT-1')
issue.fields.status
JIRA 状态:name='修复提交',id='10827'
问题当前状态的可能转变:
jira.transitions(issue)
[{'id': '181', 'name': 'Fix Failed', 'to': ..........}}}, {'id': '261', 'name': 'Fix Verfied', 'to': {'self':.....}}}]
那么你可以执行两个转换:
jira.transition_issue(issue, transition='Fix Failed')
或者
jira.transition_issue(issue, 261)
然后您可以验证您的问题在服务器上更改了状态:
issue = jira.issue('PROJECT-1')
issue.fields.status
JIRA 状态:name='修复失败',id='10830'
因此,在回答您的问题时,如果状态未通过转换连接,您需要执行更多转换以将问题从一种状态转移到另一种状态。 例如.:考虑的工作流程,从这个网址与您的问题当前状态为“已解决”,让说你想要达到的状态“进行中”。 可以使用类似的代码:
jira.transition_issue(issue, transition='Reopen Issue')
jira.transition_issue(issue, transition='Start Progress')
我的用例只是更改票证的状态。
您在之前的尝试中需要更改的只是不要明确提及transitionId=
这个词
这对我有用。
jira.transition_issue(issue, '31')
以下是通过 Python 更新 Jira 问题状态的代码:
from jira import JIRA
JIRA_SERVER = "https://issues.your-company.com/"
jira_user_name = "your_user_name"
jira_password = "your_jira_password"
jira_connection = JIRA(basic_auth=(jira_user_name, jira_password),
server=JIRA_SERVER)
jira_connection.transition_issue("PR-1309", "Start Progress")
这里 PR-1309 是您的 JIRA 问题的 ID。 Start Progress 是需要针对此问题采取的操作。 JIRA 的不同客户的操作列表可能不同。 因此,打开您的 JIRA 门户并查看 JIRA 问题的可用转换选项。 一些过渡动作可以是:-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.