Jira API: добавление комментария с помощью конечной точки редактирования - PullRequest
0 голосов
/ 17 июня 2020

Jira имеет конечную точку /edit, которую можно использовать для добавления комментария. В их документации есть пример , который предлагает это тело ввода для выполнения sh this:

{
   "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, я получаю сообщение об ошибке: «Значение операции должно иметь тип Atlassian Document Format»!

Проверка формата ADF , в нем говорится что "версия", "тип" и "содержание" необходимы для этого формата. Поэтому, хотя их пример документации, похоже, не относится к формату ADF, я пытаюсь угадать формат и изменить его. Вот что я сделал после изменения моего кода:

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

операция add кажется ADF, но теперь я получаю 500 (внутренняя ошибка сервера). Можете ли вы помочь мне найти проблему?

Обратите внимание, что приведенный выше пример из документации Atlassian предназначен для «Jira Server Platform», но экземпляр, с которым я работаю, - «Jira Cloud Platform», хотя я думаю, что поведение должно быть таким то же самое для этой конечной точки.

1 Ответ

0 голосов
/ 22 июня 2020

поработав с телом ввода, я смог сформировать правильное тело запроса! Это будет работать:

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

Раздражающие вещи, которые я узнал по пути:

  • Документация Jira НЕПРАВИЛЬНА !! Отправка запроса в их примере не удастся !!
  • после внесения нескольких изменений я смог получить 204 с конечной точки, пока комментарий еще не публиковался! И я догадался, что формат не правильный и продолжал копать! Но не знаю, почему Jira возвращает 204 при сбое !!!
...