使用json在jenkins上自动创建作业

时间:2013-08-26 07:23:29

标签: json jenkins

我想在jenkins上执行特定的工作时创建新的jenkins。 我使用json字符串来这样做

以下是使用的内容

json="{\"parameter\": [{\"name\": \"task\", \"value\": \"$task\"}], \"\": \"\"}"
url=http://xx.xx.xx.xx:8080/job/$task/build
curl -X POST $url -d token=zorn --data-urlencode json="$json"

但是当我执行此操作时,我收到以下错误:

+ json='{"parameter": [{"name": "task", "value": "test123"}], "": ""}'
+ url=http://xx.xx.xx.xx:8080/job/test123/build
+ curl -X POST http://xx.xx.xx.xx:8080/job/soma/build -d token=zorn --data-urlencode 'json={"parameter": [{"name": "task", "value": "test123"}], "": ""}'
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed

0     0    0     0    0   138      0   286k --:--:-- --:--:-- --:--:--  286k
200   263  131   263    0   138   158k  85132 --:--:-- --:--:-- --:--:--  122k
<html><head><title>Error 404</title></head><body bgcolor="#ffffff"><h1>Status Code:   404</h1>Exception: <br>Stacktrace: <pre>(none)
</pre><br><hr size="1" width="90%"><i>Generated by Winstone Servlet Engine v0.9.10 at Mon Aug 26 12:36:10 IST 2013</i></body></html>Notifying upstream projects of job completion
Finished: SUCCESS

请有人指导我,因为我哪里出错了。 新作业test123无法创建。

1 个答案:

答案 0 :(得分:-1)

步骤1:

GET http://username:password@xx.xx.xx.xx:8080/crumbIssuer/api/json

回应:

{
  "_class": "hudson.security.csrf.DefaultCrumbIssuer",
  "crumb": "203a7c1e1d9c9b0accba64f41362801c",
  "crumbRequestField": "Jenkins-Crumb"
}

步骤2:

+ json='{"parameter": [{"name": "task", "value": "test123"}], "": ""}'
+ url=http://xx.xx.xx.xx:8080/job/test123/build
+ curl -X POST http://xx.xx.xx.xx:8080/job/soma/build -d \
token=zorn --data-urlencode \
'json={"parameter": [{"name": "task", "value": "test123"}], "": ""}' \
-H 'Jenkins-Crumb: 203a7c1e1d9c9b0accba64f41362801c'