-
-
Save marshyski/abaa1ccbcee5b15db92c to your computer and use it in GitHub Desktop.
# check if job exists | |
curl -XGET 'http://jenkins/checkJobName?value=yourJobFolderName' --user user.name:YourAPIToken | |
# with folder plugin | |
curl -s -XPOST 'http://jenkins/job/FolderName/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken | |
# without folder plugin | |
curl -s -XPOST 'http://jenkins/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken | |
# create folder | |
curl -XPOST 'http://jenkins/createItem?name=FolderName&mode=com.cloudbees.hudson.plugins.folder.Folder&from=&json=%7B%22name%22%3A%22FolderName%22%2C%22mode%22%3A%22com.cloudbees.hudson.plugins.folder.Folder%22%2C%22from%22%3A%22%22%2C%22Submit%22%3A%22OK%22%7D&Submit=OK' --user 'user.name:YourAPIToken' -H "Content-Type:application/x-www-form-urlencoded" | |
# remove folder / job | |
curl -XPOST 'http://jenkins/job/FolderName/doDelete' --user 'user.name:YourAPIToken' | |
# trigger remote job | |
curl 'http://jenkins/job/yourJobName/build?delay=0sec' --user 'user.name:YourAPIToken' |
@josesa-xx is correct. I was also able to do this without the from or json form parameters.
Hi, i am using the create Folder API within a groovy skript. this is the code i use:
import groovyx.net.http.*
def post = new URL("JenkinsURL:Port/createItem?name=FolderName&mode=com.cloudbees.hudson.plugins.folder.Folder").openConnection();
post.setRequestMethod("POST")
post.setDoOutput(true)
post.setRequestProperty("Content-Type", "application/x-www-form-urlencoded")
def postRC = post.getResponseCode();
println(postRC);
if(postRC.equals(200)) {
println(post.getInputStream().getText());
}
my Problem is now that i dont know where to put the --user user.name;YourAPIToken part. With my Code i am getting 403 response
which is perfectly normal given the code i use. Where exactly do i have to put the user information ? is it in the Body or in the Header or somewhere else ?
if i'm reading my stuffs correctly, seems like the newer jenkins doesn't support remoting anymore, so with that you can't run groovy scripts remotely anymore.
I've also been trying to find a way to create folders using jenkins-cli, now i have to resort to using cURL
To create folder it is not needed to pass the "from" and "json" inputs. The following I've tested to work creating a sub-folder (I used -n to read server specific credentials from .netrc file):
curl -s -Lkgf -o out.html -n -X POST "${JENKINS_ROOT_URL}/${JOB_FOLDER_URL}/createItem?name=${JOB_NAME}&mode=com.cloudbees.hudson.plugins.folder.Folder&Submit=OK" -H "Content-Type:application/x-www-form-urlencoded"
@josesa-xx can you tell me how that JOB_FOLDER_URL
is configured? I'm particularly interested in creating folders in folders
Hi All,
how do we create a job under the list view ,Tried with this API https://jenkins url/view/ViewName/addJobToView?name=jobname
Its seems not working. Can anyone help
Hi All,
I need to add parameters while creating the folder. Usually in UI, I do it using the Folders plus plugin which given the option to add environmental variables in the list of parameters.
"com-cloudbees-udson-plugins-folder-properties-EnvVarsFolderProperty": {"properties": "envvar1=test1"}
How do I pass on this while creating the Folder ??
Hi everyone, this gist is pretty old. I would be surprised if these web requests still work. I can take a look if you put the curl -v
output for both request and response here (please remove any secrets/tokens from req/resp).
Hi ,
Basically I need to setup a property as below while creating the Folder. I was able to create the folder as per the above shared commands. But clueless how to pass that in curl to setup the properties as well.
Below snippet tells how my properties section look in the config.xml for this Folder.
<properties>
<com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty plugin="[email protected]">
<properties>envVar1=val1 envVar2=val2 envVar3=val3</properties>
</com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty>
</properties>
Once you create an item (job) you should be able to overwrite the config.xml file aftwards:
I believe this call will work:
curl -s -XPOST 'http://jenkins/job/FolderName/ProjectName/config.xml' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
or
curl -s -XPUT 'http://jenkins/job/FolderName/ProjectName/config.xml' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
To create folder it is not needed to pass the "from" and "json" inputs. The following I've tested to work creating a sub-folder (I used -n to read server specific credentials from .netrc file):
curl -s -Lkgf -o out.html -n -X POST "${JENKINS_ROOT_URL}/${JOB_FOLDER_URL}/createItem?name=${JOB_NAME}&mode=com.cloudbees.hudson.plugins.folder.Folder&Submit=OK" -H "Content-Type:application/x-www-form-urlencoded"