我想用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+workflow找到了问题状态和工作流程。但我仍然不知道该怎么办。任何人都可以帮助我吗?
答案 0 :(得分:14)
我也遇到了这个问题,不幸的是JIRA的灵活性也让它变成了PITA。
要更改故障单上的状态,您需要设置transition,将其从一个状态移动到下一个状态。
您需要找到转换ID,然后像这样使用它:
if issue.fields.status in ('open', 'reopened'):
# Move the ticket from opened to closed.
jira.transition_issue(ticket, transition='131')
jira-python文件发现和转换here。
jira.transition_issue
记录在案here。
答案 1 :(得分:4)
要更改状态,您需要在问题之上进行交易。转换只是在“工作流程”中定义的操作,以及从一种状态到另一种状态的转接问题。 从当前状态开始,您只能执行有限的转换,这取决于工作流程'。 尝试使用以下功能: 当前问题状态:
issue = jira.issue('PROJECT-1')
issue.fields.status
JIRA状态:姓名='修复提交',id =' 10827'
问题当前状态的可能转换:
jira.transitions(issue)
[{' id':' 181',' name':' Fix Failed',' to' :..........}}},{' id': ' 261','名称':'修复已验证的',':{' self':... ..}}}]
那么你可以进行两次转换:
jira.transition_issue(issue, transition='Fix Failed')
或
jira.transition_issue(issue, 261)
然后,您可以验证您的问题是否已在服务器上更改状态:
issue = jira.issue('PROJECT-1')
issue.fields.status
JIRA状态:姓名='修复失败',id =' 10830'
因此,在回答您的问题时,如果状态未通过转换连接,则需要执行更多转换以将问题从一个状态转移到另一个状态。 例如:考虑工作流程from this url,您的问题当前状态是" 已解决",并且假设您想要达到状态" 进展情况强>&#34 ;.可以使用类似的代码:
jira.transition_issue(issue, transition='Reopen Issue')
jira.transition_issue(issue, transition='Start Progress')
答案 2 :(得分:0)
以下是用于通过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。开始进度是针对此问题需要采取的措施。对于JIRA的不同客户,操作列表可能有所不同。因此,打开JIRA门户并查看JIRA问题的可用转换选项。 一些过渡动作可以是:-
答案 3 :(得分:-1)
我的用例只是改变了票证的状态
您之前尝试更改的所有内容都没有明确提及单词transitionId=
这对我有用。
jira.transition_issue(issue, '31')