From 69570de4adcd9f522056cf5d2b63281d875cf2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Chmela=C5=99?= Date: Tue, 22 Nov 2016 18:01:08 +0100 Subject: [PATCH 1/2] add create_folder method --- lib/main.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/main.js b/lib/main.js index 2445416..a18fcd8 100644 --- a/lib/main.js +++ b/lib/main.js @@ -6,6 +6,7 @@ var util = require('util') var API = '/api/json'; var NEWJOB = '%s/createItem/?name=%s'; +var NEWFOLDER = '%s/createItem/?name=%s&mode=%s&Submit=OK'; var DELETE = '%s/job/%s/doDelete'; var BUILD = '%s/job/%s/build' + API; var STOP_BUILD = '%s/job/%s/%s/stop' + API; @@ -378,6 +379,33 @@ var init = exports.init = function(host, options) { data = JSON.parse(data); callback(null, data); }); + }, + create_folder: function(foldername, callback) { + /* + Create a new folder + + Needs Folder plugin in Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Folders+Plugin + + 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" + https://gist.github.com/stuart-warren/7786892 + */ + + var mode = 'com.cloudbees.hudson.plugins.folder.Folder'; + request( + {method: 'POST' + ,url: build_url(NEWFOLDER, foldername, mode) + ,headers: { "content-type": "application/x-www-form-urlencoded"} + }, + + function(error, response, body) { + if ( error || response.statusCode !== 200 ) { + callback(error || true, response); + return; + } + var data = body; + callback(null, data); + } + ); } } }; From f2883611e8daebec401a0eebc7fb8c880deeafb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Chmela=C5=99?= Date: Thu, 24 Nov 2016 16:03:51 +0100 Subject: [PATCH 2/2] bump version --- .gitignore | 5 ++++- package.json | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e1230f2..ac237d4 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,7 @@ build/Release # Dependency directory # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- -node_modules \ No newline at end of file +node_modules + +# IDEs +.idea/ \ No newline at end of file diff --git a/package.json b/package.json index 0b459ec..792f0b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jenkins-api", - "version": "0.2.8", + "version": "0.2.9", "description": "Jenkins API written in Node.js", "author": "Shawn Jansepar ", "dependencies": {