5

我可以使用 CURL 命令在 JIRA 中创建票证,并且可以方便地使用 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 -D- -u <用户>:<密码> -X PUT --data @data_update.txt -H "Content-Type: application/json" http://<主机名>:8100/rest/api/2/问题/MTF-3

4

2 回答 2

8

状态不是 Jira 中的字段,因此无法即时更改相同的字段。JIRA API 对此没有规定。

我们必须跟随过渡并相应地改变。

首先,执行 '<a href="http://localhost:8100/rest/api/latest/issue/MTF" rel="noreferrer">http://localhost:8100/rest/api/latest/issue/MTF -2/transitions?expand=transitions.fields 并知道转换的 id。

例如:“停止进度”的转换 id 是 31,“完成”是 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

于 2015-06-12T19:52:24.063 回答
0

这对我有用,因为长期使用 R。对于'httr'库使用的 curl 应该可以使用类似的方法。

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()
                 )
于 2019-12-15T00:35:20.773 回答