I recently needed to make a change to each of the job configurations and rather than do so by hand, I thought I'd investigate the possibility of doing so automatically using the Jenkins REST API.
I had originally created all the jobs using the API by posting to the generic the http://jenkins.example.com/createItem URI. I had since moved the jobs into folders and hitting createItem only created new jobs and did not update the proper jobs.
I did some searching on the internet and couldn't find any help. I eventually found my answer on the api page for the folder. I'm posting my code below for anyone else with similar questions.
# First, get the http://jenkins.example.com/job/folder-name/job/sample-job--template/configure looking like you want read -s token # type token from http://jenkins.example.com/user/$userName/configure # Download the configuration XML for the template job (which will be our model template) curl -v -u "bvanevery:$token" http://jenkins.example.com/job/folder-name/job/sample-job--template/config.xml > generic-config.xml # My modules declare modules=('module1' 'module2' 'module3') # POST the updated configuration XML to Jenkins for m in ${modules[@]}; do echo "module $m"; sed "s/MODULE/$m/g" generic-config.xml > $m-config.xml; curl -v -X POST --data-binary @$m-config.xml -u "bvanevery:$token" \ -H 'Content-Type: application/xml' \ "http://jenkins.example.com/job/folder-name/job/$m/config.xml ; done