Python Jira无法transition_issue并引发异常

时间:2019-03-26 08:07:01

标签: python jira

我尝试将jira问题转换为closed状态,代码为:

jira.create_issue_link('Duplicate', issue, issueJ, None)
jira.transition_issue(issueJ.key, '181')
query.remove(issueJ)

第一句话有效,它创建了一个链接。但是transition_issue无效,并且抛出异常:

jira.exceptions.JIRAError: JiraError HTTP 400 url: https://xxxxxxxxxxxxx.net/rest/api/2/issue/ticket.number/transitions
text: The selected resolution cannot be chosen during this action.

response headers = {'Server': 'nginx/1.10.3', 'Date': 'Wed, 20 Mar 2019 09:37:33 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'X-AREQUESTID': '577x474155x4', 'X-ASESSIONID': '1fwn7w3', 'X-ANODEID': 'prd-dops-issues-ap-02', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Security-Policy': "frame-ancestors 'self'", 'X-ASEN': 'SEN-11553968', 'X-Seraph-LoginReason': 'OK', 'X-AUSERNAME': 'gongjunh', 'Cache-Control': 'no-cache, no-store, no-transform', 'Content-Encoding': 'gzip', 'Vary': 'User-Agent'}
response text = {"errorMessages":[],"errors":{"resolution":"The selected resolution cannot be chosen during this action."}}

我确认可以在jira页面上转换问题的状态,但是我不确定为什么代码中会出现异常。

2 个答案:

答案 0 :(得分:0)

在Jira中,每个队列可以具有不同的配置。在转换过程中,每个队列定义了可以从“打开”状态进入的状态(关闭,进行中,已解决等)。

以下是一个示例配置: Sample jira queue configuration for transitions

您不能标记任何其他不允许的状态/转换。 有一个可用的API:transitions(issue_id)(在python中,您正在使用的那个)

其中将列出可以从当前状态完成的所有可能转换。您想要进入的状态可能不在该列表中。

尝试一下。

答案 1 :(得分:0)

首先在Jira中检查您的工作流程,在我的情况下是这样的:

enter image description here

因此,在标记通过或失败之前,我还需要通过其他中间阶段。因此,例如如果测试用例或测试运行处于“新建”状态。然后过渡如下,

    jira = JIRA(options="Jira_Server_URL", basic_auth=("userID", "Password"))
    jira.transition_issue(issue, transition='Ready For Test')
    jira.transition_issue(issue, transition='Test in Progress')
    jira.transition_issue(issue, transition='Pass')

替换Jira_Server_URL,用户ID,密码并进行相应的转换。