Jira API:使用编辑端点添加评论

Jira API: Add Comment Using Edit Endpoint

Jira 有一个 /edit 端点,可用于添加评论。他们的文档中有 an example 建议使用此输入正文来完成此操作:

{
   "update": {
      "comment": [
         {
            "add": {
               "body": "It is time to finish this task"
            }
         }
      ]
   }
}

我在 Java 代码中创建了完全相同的输入:

private String createEditBody() {
    JsonNodeFactory jsonNodeFactory = JsonNodeFactory.instance;
    ObjectNode payload = jsonNodeFactory.objectNode();
    ObjectNode update = payload.putObject("update");
    ArrayNode comments = update.putArray("comment");
    ObjectNode add = comments.addObject();
    ObjectNode commentBody = add.putObject("add");
    commentBody.put("body", "this is a test");
    return payload.toString();
}

但是当我发送这个 PUT 请求时,我收到一条错误消息,指出 "Operation value must be of type Atlassian Document Format"!

检查 ADF format 它表明此格式需要 "version"、"type" 和 "content"。因此,尽管他们的文档示例似乎不是 ADF 格式,但我正在尝试猜测格式并进行更改。这是我修改代码后完成的:

{
  "update": {
    "comment": [
      {
        "add": {
          "version": 1,
          "type": "paragraph",
          "content": [
            {
              "body": "this is a test"
            }
          ]
        }
      }
    ]
  }
}

add 操作似乎是 ADF,但现在我得到 500(内部服务器错误)。你能帮我找到问题吗?

请注意,上面来自 Atlassian 文档的示例适用于 "Jira Server Platform",但我正在使用的实例是 "Jira Cloud Platform",尽管我认为此端点的行为应该相同。

在修改输入正文之后,我能够形成正确的请求正文!这将起作用:

{
  "update": {
    "comment": [
      {
        "add": {
          "body": {
            "version": 1,
            "type": "doc",
            "content": [
              {
                "type": "paragraph",
                "content": [
                  {
                    "type": "text",
                    "text": "this is a test"
                  }
                ]
              }
            ]
          }
        }
      }
    ]
  }
}

我一路上学到的烦人的事情:

  • Jira 的文档有误!!在他们的示例中发送请求将失败!!
  • 进行一些更改后,我能够从端点获取 204,但仍未发布评论!而且我猜是格式不对,一直在挖!但是不知道为什么 Jira returns 204 失败了!!!