「Jenkins」Jenkins API で別フォルダにジョブを一括コピーする
Jenkins API を使ってあるフォルダに存在するジョブを別フォルダに一括コピーするスクリプトのサンプル。
#!/bin/bash # get job list under folder curl --user jenkins:112fceef147dfee13be6f161d883b029fd "http://172.20.10.5:8080/job/Folder1/api/json" | jq -r .jobs[].name > job_list # download config.xml cat job_list | while read line do #echo $line curl -o "${line}_config.xml" --user jenkins:112fceef147dfee13be6f161d883b029fd "http://172.20.10.5:8080/job/Folder1/job/${line}/config.xml" done # create job cat job_list | while read line do curl -s -XPOST --data-binary @"${line}_config.xml" -H "Content-Type:text/xml" --user jenkins:112fceef147dfee13be6f161d883b029fd -H "Jenkins-Crumb: 4fabb80a28c94f32ff377272b9411507" "http://jenkins:jenkins@172.20.10.5:8080/job/Folder2/createItem?name=${line}" done
フォルダの一階層したジョブ前提になっちゃってますが、まぁこんなところで。
APIトークンやCRUMBの調べ方は下記のエントリーを参照してください。
軽い感じですが、以上です。
[環境情報]
Jenkins 2.60.3