note/Jenkins ジョブ設定をcurlでインポートしたい
crumbIssuer/api/xmlにBASIC認証でGETリクエストをなげ、/defaultCrumbIssuer/crumbRequestFieldと/defaultCrumbIssuer//crumb/をコロンで結合したものがcrumb- cookieにcrumbを保存する
- cookieとBASIC認証を使って、
http://jenkins-url.com/path/to/job/directory/createItem?name=${job_name}にpostする- リクエストボディにエクスポートしたジョブのxmlを指定する
$ curl -O -u $user:$passwd '[http://old-jenkins/job/job_name/config.xml](http://old-jenkins/job/job_name/config.xml)'
$ set CRUMB (curl -s --cookie-jar /tmp/cookies -u $user:$passwd '[http://new-jenkins/jenkins/crumbIssuer/api/xml](http://new-jenkins/jenkins/crumbIssuer/api/xml)' | xmllint --xpath 'concat(/defaultCrumbIssuer/crumbRequestField/text(),":",/defaultCrumbIssuer//crumb/text())' -)
$ curl -s --cookie /tmp/cookies -u $user:$passwd '[http://new-jenkins/jenkins/job/directory/createItem?name=job_name](http://new-jenkins/jenkins/job/directory/createItem?name=job_name)' --data-binary @config.xml -H 'Content-Type:text/xml' -H "$CRUMB"xmllintを使ったが、Jenkinsリクエストにクエリパラメータでもよいみたい
/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'