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.