From eac49e5edd323254dc54c6e941fab2d52815e209 Mon Sep 17 00:00:00 2001 From: Ionut Zaharia <19253025+ionutzaharia@users.noreply.github.com> Date: Thu, 4 Jun 2020 14:47:37 +0200 Subject: [PATCH] Add renameFolderJob Methods The generic renameJob methods don't work when trying to rename folders created using the CloudBees Folders plugin. --- .../com/offbytwo/jenkins/JenkinsServer.java | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java b/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java index 01755baa..a5d9c612 100644 --- a/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java +++ b/jenkins-client/src/main/java/com/offbytwo/jenkins/JenkinsServer.java @@ -906,7 +906,62 @@ public JenkinsServer renameJob(FolderJob folder, String oldJobName, String newJo return this; } - + /** + * Rename a folder job + * + * @param oldFolderJobName existing folderJob name. + * @param newFolderJobName The new folderJob name. + * @throws IOException In case of a failure. + */ + public JenkinsServer renameFolderJob(String oldFolderJobName, String newFolderJobName) + throws IOException { + return renameFolderJob(null, oldFolderJobName, newFolderJobName, false); + } + + /** + * Rename a folder job + * + * @param oldFolderJobName existing folderJob name. + * @param newFolderJobName The new folderJob name. + * @param crumbFlag true to add crumbIssuer + * false otherwise. + * @throws IOException In case of a failure. + */ + public JenkinsServer renameFolderJob(String oldFolderJobName, String newFolderJobName, + Boolean crumbFlag) throws IOException { + renameFolderJob(null, oldFolderJobName, newFolderJobName, crumbFlag); + return this; + } + + /** + * Rename a folder job + * + * @param folder {@link FolderJob} + * @param oldFolderJobName existing folderJob name. + * @param newFolderJobName The new folderJob name. + * @throws IOException In case of a failure. + */ + public JenkinsServer renameFolderJob(FolderJob folder, String oldFolderJobName, + String newFolderJobName) throws IOException { + return renameFolderJob(folder, oldFolderJobName, newFolderJobName, false); + } + + /** + * Rename a folder job + * + * @param folder {@link FolderJob} + * @param oldFolderJobName existing folderJob name. + * @param newFolderJobName The new folderJob name. + * @param crumbFlag true to add crumbIssuer + * false otherwise. + * @throws IOException In case of a failure. + */ + public JenkinsServer renameFolderJob(FolderJob folder, String oldFolderJobName, + String newFolderJobName, Boolean crumbFlag) throws IOException { + client.post(UrlUtils.toJobBaseUrl(folder, oldFolderJobName) + "/confirmRename?newName=" + + EncodingUtils.formParameter(newFolderJobName), crumbFlag); + return this; + } /** * Closes underlying resources.