通过 curl POST 将参数传递给 jenkins 作业不起作用?
passing parameter to jenkins job through curl POST not working?
我尝试启动
curl -X POST -u "user:pass" -H Jenkins-Crumb:thecrumbnumber http://myjenkinsserver/jenkins/job/testjob/buildWithParameters?=PARAMETER=somenumber
通过触发参数化构建来工作,但问题是没有值传递给构建(即使在作业中设置了令牌,我也可以在没有它的情况下触发作业,这很奇怪)。在 jenkins 中,该作业有一个已配置的字符串 "PARAMETER",有或没有一些默认值,但从未传递 curl 启动的参数。我可能遗漏了什么?
我正在使用:
curl -X POST -u "user" "http://myjenkins/path/to/my/job/buildWithParameters?GERRIT_REFNAME=feature/retry&goal=package"
在这里,它就像一个魅力。
注意您粘贴的 URL 中 "PARAMETER" 前面的“=”。
当我尝试时
curl -X POST http://icm.git:faedc992afcd1ea4db3da6809435117a@10.221.31.36:8080/job/1_TODO_Get_Submit_Request_With_Dependency_Test/buildWithParameters?PARAMETER=1494390553639
或
curl -X POST -u "icm.git:lge123" -H Jenkins-Crumb:faedc992afcd1ea4db3da6809435117a http://10.221.31.36:8080/job/1_TODO_Get_Submit_Request_With_Dependency_Test/buildWithParameters?PARAMETER=1494390553639
两者都触发了 Jenkins Job > 1_TODO_Get_Submit_Request_With_Dependency_Test 但 Jenkins 日志中的参数显示参数 REQUESTID = -1
的默认值。
Jenkins 或 CURL 有什么问题 url?
+ echo '4.2.25(1)-release'
4.2.25(1)-release
+ echo
+ echo 26
26
+ echo '#26'
#26
+ echo 1_TODO_Get_Submit_Request_With_Dependency_Test
1_TODO_Get_Submit_Request_With_Dependency_Test
+ echo 1_TODO_Get_Submit_Request_With_Dependency_Test
1_TODO_Get_Submit_Request_With_Dependency_Test
+ echo REQUESTID = -1
REQUESTID = -1
请尝试类似的操作:
curl -X POST http://<jenkins URL>/jenkins/job/TESTS/job/<Your job's Name>/buildWithParameters \
--user <Jenkins account>:<account's TokenID> \
--data token=<job's token (if required)> \
--data parameter=some_value
...
--data MessageTextParameter=My%20Text
我使用下面的命令来传递多个参数。
curl -X POST "https://myjenkins.com/job/jobname/buildWithParameters?token=developer&name=abc&userid=CFDH123&mail=abc@gmail.com"
注意:参数名称区分大小写。
我也在尝试 post 但是下面的 curl 命令,但它没有 post。
curl -X POST -v https://JENKINS_SERVER/job/JOBNAME/buildWithParameters --user foo:8382 --data-urlencode json='{"parameter": [{"name": "registration_action","value": "DNS_only"},{"name": "entries","value": "add, hostname01.local.example.com, 192.168.1.1/24\nremove, hostname01.local.example.com, 192.168.1.1/24/\n" }]}'
它创建作业但不传入变量。不确定,我做错了什么。
在调用 Jenkins url 将参数作为 JSON 有效负载传递时,Jenkins Confluence 页面中似乎有错字。https://wiki.jenkins.io/display/JENKINS/Remote+access+API 尝试使用 url 后缀作为构建buildWithParameters 并且正在运行..
curl -X POST -u "user:token/password" "http://myjenkins/path/to/my/job/build --data-urlencode json='{"parameter": [{"name":"GERRIT_REFNAME", "value":"feature/retry"},{"name":"goal", "value" :"package"}]}'
使用curl形式参数(-F param1=value1
)解决了问题:
# parameters need to be passed via: -F param1=value1 -F param2=value2 ...
curl -X POST http://myJenkins/job/testjob/buildWithParameters?token=<myToken> -F param1=value1
我遇到了同样的问题,上面的 none 帮助了我。当我通过 url 参数传递参数时 作业被触发但 url 参数未传播.
# job is triggered but parameters are not propagated
curl -X POST http://myJenkins/job/testjob/buildWithParameters?token=<myToken>¶m1=value1
我发现这非常混乱和不一致,尤其是当想要在正文中传递参数时。以下是我发现使用参数构建的最佳方法(传递一些参数并使用指定的默认值)。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/buildWithParameters \
-F PARAMETER=somenumber
我还尝试了以下方法并提及它们,因为它们出现在各种文档中,但似乎没有工作 correctly/as 描述。
下面提交一个构建(build vs buildWithParameters URL)并传递参数但不使用任何其他默认参数。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/build \
--data-urlencode json='{"parameter": [{"name":"PARAMETER", "value":"somenumber"}]}'
下面的看起来应该可以,但我发现参数没有正确传递。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/build \
--data-urlencode json='{"parameter": [{"name":"PARAMETER", "value":"somenumber"}]}'
以下两种格式都适合我。
curl -X POST http://hostname:8080/job/first_pipeline/build --user siebelcrm:xxxxxx --data-urlencode json='{"参数" : [{"name":"Greetings", "value":"New123"}]} '-H "Jenkins-Crumb:xxxxx"
或
curl -X POST http://hostname:8080/job/first_pipeline/buildWithParameters?Greetings=New1 --user Admin:xxxxx --data-urlencode json= ' '-H "Jenkins-Crumb:xxxxx"
我尝试启动
curl -X POST -u "user:pass" -H Jenkins-Crumb:thecrumbnumber http://myjenkinsserver/jenkins/job/testjob/buildWithParameters?=PARAMETER=somenumber
通过触发参数化构建来工作,但问题是没有值传递给构建(即使在作业中设置了令牌,我也可以在没有它的情况下触发作业,这很奇怪)。在 jenkins 中,该作业有一个已配置的字符串 "PARAMETER",有或没有一些默认值,但从未传递 curl 启动的参数。我可能遗漏了什么?
我正在使用:
curl -X POST -u "user" "http://myjenkins/path/to/my/job/buildWithParameters?GERRIT_REFNAME=feature/retry&goal=package"
在这里,它就像一个魅力。
注意您粘贴的 URL 中 "PARAMETER" 前面的“=”。
当我尝试时
curl -X POST http://icm.git:faedc992afcd1ea4db3da6809435117a@10.221.31.36:8080/job/1_TODO_Get_Submit_Request_With_Dependency_Test/buildWithParameters?PARAMETER=1494390553639
或
curl -X POST -u "icm.git:lge123" -H Jenkins-Crumb:faedc992afcd1ea4db3da6809435117a http://10.221.31.36:8080/job/1_TODO_Get_Submit_Request_With_Dependency_Test/buildWithParameters?PARAMETER=1494390553639
两者都触发了 Jenkins Job > 1_TODO_Get_Submit_Request_With_Dependency_Test 但 Jenkins 日志中的参数显示参数 REQUESTID = -1
的默认值。
Jenkins 或 CURL 有什么问题 url?
+ echo '4.2.25(1)-release'
4.2.25(1)-release
+ echo
+ echo 26
26
+ echo '#26'
#26
+ echo 1_TODO_Get_Submit_Request_With_Dependency_Test
1_TODO_Get_Submit_Request_With_Dependency_Test
+ echo 1_TODO_Get_Submit_Request_With_Dependency_Test
1_TODO_Get_Submit_Request_With_Dependency_Test
+ echo REQUESTID = -1
REQUESTID = -1
请尝试类似的操作:
curl -X POST http://<jenkins URL>/jenkins/job/TESTS/job/<Your job's Name>/buildWithParameters \
--user <Jenkins account>:<account's TokenID> \
--data token=<job's token (if required)> \
--data parameter=some_value
...
--data MessageTextParameter=My%20Text
我使用下面的命令来传递多个参数。
curl -X POST "https://myjenkins.com/job/jobname/buildWithParameters?token=developer&name=abc&userid=CFDH123&mail=abc@gmail.com"
注意:参数名称区分大小写。
我也在尝试 post 但是下面的 curl 命令,但它没有 post。
curl -X POST -v https://JENKINS_SERVER/job/JOBNAME/buildWithParameters --user foo:8382 --data-urlencode json='{"parameter": [{"name": "registration_action","value": "DNS_only"},{"name": "entries","value": "add, hostname01.local.example.com, 192.168.1.1/24\nremove, hostname01.local.example.com, 192.168.1.1/24/\n" }]}'
它创建作业但不传入变量。不确定,我做错了什么。
在调用 Jenkins url 将参数作为 JSON 有效负载传递时,Jenkins Confluence 页面中似乎有错字。https://wiki.jenkins.io/display/JENKINS/Remote+access+API 尝试使用 url 后缀作为构建buildWithParameters 并且正在运行..
curl -X POST -u "user:token/password" "http://myjenkins/path/to/my/job/build --data-urlencode json='{"parameter": [{"name":"GERRIT_REFNAME", "value":"feature/retry"},{"name":"goal", "value" :"package"}]}'
使用curl形式参数(-F param1=value1
)解决了问题:
# parameters need to be passed via: -F param1=value1 -F param2=value2 ...
curl -X POST http://myJenkins/job/testjob/buildWithParameters?token=<myToken> -F param1=value1
我遇到了同样的问题,上面的 none 帮助了我。当我通过 url 参数传递参数时 作业被触发但 url 参数未传播.
# job is triggered but parameters are not propagated
curl -X POST http://myJenkins/job/testjob/buildWithParameters?token=<myToken>¶m1=value1
我发现这非常混乱和不一致,尤其是当想要在正文中传递参数时。以下是我发现使用参数构建的最佳方法(传递一些参数并使用指定的默认值)。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/buildWithParameters \
-F PARAMETER=somenumber
我还尝试了以下方法并提及它们,因为它们出现在各种文档中,但似乎没有工作 correctly/as 描述。
下面提交一个构建(build vs buildWithParameters URL)并传递参数但不使用任何其他默认参数。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/build \
--data-urlencode json='{"parameter": [{"name":"PARAMETER", "value":"somenumber"}]}'
下面的看起来应该可以,但我发现参数没有正确传递。
curl -X POST -u "user:pass" \
http://myjenkinsserver/jenkins/job/testjob/build \
--data-urlencode json='{"parameter": [{"name":"PARAMETER", "value":"somenumber"}]}'
以下两种格式都适合我。
curl -X POST http://hostname:8080/job/first_pipeline/build --user siebelcrm:xxxxxx --data-urlencode json='{"参数" : [{"name":"Greetings", "value":"New123"}]} '-H "Jenkins-Crumb:xxxxx"
或
curl -X POST http://hostname:8080/job/first_pipeline/buildWithParameters?Greetings=New1 --user Admin:xxxxx --data-urlencode json= ' '-H "Jenkins-Crumb:xxxxx"