从 Jenkins 创建 Jira 问题
Create Jira issue from Jenkins
嗨,我正在尝试通过 Jenkins 在 windows slave 上创建 Jira 问题。控制台输出没有显示任何错误,但是,没有创建 Jira 问题。下面是代码:
pipeline {
agent { label 'windows'}
stages {
stage('Build') {
steps {
bat script {"""curl -u ${jira_username}:${jira_password} -X POST -H 'Content- Type:application/json' -d '{"fields":{"components":[{"id":"1"}],"fixVersions":[{"id":"2"}],"project":{"key":"KEY"},"summary":"summary","description":"description","issuetype":{"name":"Test"}}}' http://localhost:8080/rest/api/2/issue/"""}
}
}
}
}
控制台输出为:
D:\workspace\TestJob>curl -u username:password -X POST -H 'Content-Type:application/json' -d
'{"fields":{"components":[{"id":"1"}],"fixVersions":[{"id":"2"}],"project":
{"key":"KEY"},"summary":"summary","description":"description","issuetype":{"name":"Test"}}}'
http://localhost:8080/rest/api/2/issue/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 136 0 0 100 136 0 323 --:--:-- --:--:-- --:--:-- 326
它没有抛出任何错误,但也没有创建问题。
但是,如果我 运行 在 Linux slave 上使用相同的代码,那么我会得到以下响应并且问题正在产生。
+ curl -u 'username:password' -X POST -H Content-Type:application/json -d '{"fields":
{"components":[{"id":"1"}],"fixVersions":[{"id":"2"}],"project":
{"key":"KEY"},"summary":"summary","description":"description","issuetype":
{"name":"Test"}}}' http://localhost:8080/rest/api/2/issue/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 255 0 87 100 168 115 223 --:--:-- --:--:-- --:--:-- 223
100 255 0 87 100 168 115 223 --:--:-- --:--:-- --:--:-- 223
{"id":"648","key":"KEY-35","self":"http://localhost:8080/rest/api/2/issue/648"}
如您所见,问题是在 Linux 上创建的,而不是在 windows 上创建的。请求帮助解决此问题。
已解决问题
首先'Content-Type: application/json'应该用双引号。
将它放在单引号 'Content-Type: application/json' 中实际上给出了 415 错误代码,我在使用 -k 后才知道curl 命令中的-D-
其次,我不得不在数据中使用双反斜杠。
实际起作用的命令是:
bat script {"""curl -u username:password --header "Content-Type:application/json" -X POST --data "{\"fields\":{\"project\":{\"key\":\"KEY\"},\"summary\":\"summary\",\"description\":\"description\",\"issuetype\":{\"name\":\"Test\"},\"components\":[{\"id\":\"1\"}],\"fixVersions\":[{\"id\":\"2\"}]}}" http://localhost:8080/rest/api/2/issue/"""}
嗨,我正在尝试通过 Jenkins 在 windows slave 上创建 Jira 问题。控制台输出没有显示任何错误,但是,没有创建 Jira 问题。下面是代码:
pipeline {
agent { label 'windows'}
stages {
stage('Build') {
steps {
bat script {"""curl -u ${jira_username}:${jira_password} -X POST -H 'Content- Type:application/json' -d '{"fields":{"components":[{"id":"1"}],"fixVersions":[{"id":"2"}],"project":{"key":"KEY"},"summary":"summary","description":"description","issuetype":{"name":"Test"}}}' http://localhost:8080/rest/api/2/issue/"""}
}
}
}
}
控制台输出为:
D:\workspace\TestJob>curl -u username:password -X POST -H 'Content-Type:application/json' -d
'{"fields":{"components":[{"id":"1"}],"fixVersions":[{"id":"2"}],"project":
{"key":"KEY"},"summary":"summary","description":"description","issuetype":{"name":"Test"}}}'
http://localhost:8080/rest/api/2/issue/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 136 0 0 100 136 0 323 --:--:-- --:--:-- --:--:-- 326
它没有抛出任何错误,但也没有创建问题。
但是,如果我 运行 在 Linux slave 上使用相同的代码,那么我会得到以下响应并且问题正在产生。
+ curl -u 'username:password' -X POST -H Content-Type:application/json -d '{"fields":
{"components":[{"id":"1"}],"fixVersions":[{"id":"2"}],"project":
{"key":"KEY"},"summary":"summary","description":"description","issuetype":
{"name":"Test"}}}' http://localhost:8080/rest/api/2/issue/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 255 0 87 100 168 115 223 --:--:-- --:--:-- --:--:-- 223
100 255 0 87 100 168 115 223 --:--:-- --:--:-- --:--:-- 223
{"id":"648","key":"KEY-35","self":"http://localhost:8080/rest/api/2/issue/648"}
如您所见,问题是在 Linux 上创建的,而不是在 windows 上创建的。请求帮助解决此问题。
已解决问题
首先'Content-Type: application/json'应该用双引号。 将它放在单引号 'Content-Type: application/json' 中实际上给出了 415 错误代码,我在使用 -k 后才知道curl 命令中的-D-
其次,我不得不在数据中使用双反斜杠。
实际起作用的命令是:
bat script {"""curl -u username:password --header "Content-Type:application/json" -X POST --data "{\"fields\":{\"project\":{\"key\":\"KEY\"},\"summary\":\"summary\",\"description\":\"description\",\"issuetype\":{\"name\":\"Test\"},\"components\":[{\"id\":\"1\"}],\"fixVersions\":[{\"id\":\"2\"}]}}" http://localhost:8080/rest/api/2/issue/"""}