Обновите статус заявки JIRA с помощью REST API

Я могу создать билет в JIRA, используя команду CURL и имея под рукой данные json.

curl -D- -u: -X POST --data @ ‹filename> -H" Content-Type: application / json "http: //‹ hostname>: ‹port> / rest / api / 2 / issue /

Теперь я пытался обновить статус сгенерированного билета, но получал следующую ошибку. {"errorMessages":[],"errors":{"status":"Field 'status' cannot be set. It is not on the appropriate screen, or unknown."}}

Команда Curl:

curl -D- -u ‹user>:‹ pwd> -X PUT --data @ data_update.txt -H "Content-Type: application / json" http: // ‹hostname>: 8100 / rest / api / 2 / выпуск / МОГ-3


person Anuj Balan    schedule 12.06.2015    source источник


Ответы (2)


Статус - это не поле в Jira, поэтому изменить его на лету невозможно. В JIRA API для этого не предусмотрено.

Мы должны следить за переходами и соответственно меняться.

Сначала выполните 'http://localhost:8100/rest/api/latest/issue/MTF -2 / transitions? expand = transitions.fields и знать идентификаторы переходов.

Например: идентификатор перехода для «Stop Progress» - 31, для «Done» - 41.

Как только это станет известно, используйте следующую ссылку, добавив значения, относящиеся к вашей среде:

curl -D- -u <USER>:<PASS> -X POST --data '{"transition":{"id":"<TRANSITION_ID>"}}' -H "Content-Type: application/json" <JIRA_URL>:<JIRA_PORT>/rest/api/latest/issue/<JIRA_ISSUE>/transitions?expand=transitions.fields

Ссылка: отметьте ответ Пола Гранта - https://answers.atlassian.com/questions/107630/jira-how-to-change-issue-status-via-rest

person Anuj Balan    schedule 12.06.2015
comment
Когда я выполняю первую команду, я получаю пустой массив переходов. Затем после выполнения второй команды с идентификатором перехода 5 я получаю внутреннюю ошибку сервера. - person kaushalpranav; 27.11.2017
comment
мы не можем установить статус при создании задачи? Имеются в виду в том же запросе при создании проблемы. - person Farooq Khan; 26.02.2018

Это работает для меня, так как долгое время я использовал R. аналогичный подход должен быть возможен с curl, который используется библиотекой httr.

library(httr)
library(RJSONIO)

x <- list(fields = list(project = c(key = "xxxxxxx"), 
                        status = "Assign",
                        issuetype = c(name = "xxxx"),
                        summary = "xxxxxxx",
                        description = "xxxxxxx",
                        customfield_xxxxxx = c(value = "xxxxxx"),
                        assignee = c(name = "userid"),
                        customfield_xxxxxx = "xxxxxxxx"
            ))

# can add more fields as shown above

response <- POST("https://xxxxxxx.atlassian.net/rest/api/2/issue/",body = toJSON(x), 
                  authenticate(username,passcode, "basic"), 
                  add_headers("Content-Type" = "application/json"), 
                  verbose()
                 )
person RanonKahn    schedule 15.12.2019