首页 > 解决方案 > 如何转换到未在转换中列出的状态?

问题描述

我正在尝试将问题从一种状态转换为另一种状态。

当我打电话

jira.statuses()

我得到一个状态列表,其中包括我想转换到的状态:

<JIRA Status: name=u'Scheduled', id=u'11301'>

当我 ping https://our.server/rest/api/2/issue/issue_id/transitions我得到以下响应:

{
  "expand": "transitions",
  "transitions": [
    {
      "id": "51",
      "name": "Close Request",
      "to": {
        "self": "https://our.server/rest/api/2/status/6",
        "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.",
        "iconUrl": "https://our.server/images/icons/statuses/closed.png",
        "name": "Closed",
        "id": "6",
        "statusCategory": {
          "self": "https://our.server/rest/api/2/statuscategory/3",
          "id": 3,
          "key": "done",
          "colorName": "green",
          "name": "Done"
        }
      }
    }
  ]
}

这里的问题是,当我尝试将状态转换为“已计划”或它的 ID“11301”时,我收到以下错误:

response text = {"errorMessages":["Internal server error"],"errors":{}}

我需要将此状态添加到转换中吗?还是我需要在过渡中包含更多数据?我不确定如何诊断。

标签: pythonjirapython-jira

解决方案


您只能将其更改为从当前状态转换为所需状态的状态。如果您的工作流程必须严格遵循 To Do->In Progress->Resolved->Closed 并且您当前的工单处于“To Do”并且您希望它是“Closed”,则您必须通过每个状态才能到达那里,如果您需要沿途的字段,您也必须传递这些字段,例如从未解决状态变为已解决状态通常需要解决方案。除此之外,您不应受到限制(除非您在转换的条件/验证器中内置了某种其他逻辑,例如只有某些人可以转换)。


推荐阅读