Skip to content

Commit 3fd5af2

Browse files
committed
Fix: Don't destroy credentials when re-creating organization folder
Extend the current code which does it for cloudbee Folder to Organization Folder. refs JENKINS-44681 #1232
1 parent 6eae93a commit 3fd5af2

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version=1.79-SNAPSHOT
22
groovyVersion=2.4.12
3-
jenkinsVersion=2.176
3+
jenkinsVersion=2.264
44
assetPipelineVersion=2.11.6
55
githubUser=jenkinsci
66
org.gradle.parallel=true

job-dsl-plugin/build.gradle

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,18 +110,20 @@ dependencies {
110110
exclude group: 'org.jvnet.hudson', module:'xstream'
111111
}
112112
implementation 'org.jenkins-ci.plugins:cloudbees-folder:5.14'
113+
implementation 'org.jenkins-ci.plugins:branch-api:2.6.3'
113114
implementation 'org.jenkins-ci.plugins:structs:1.19'
115+
implementation 'org.jenkins-ci.plugins:scm-api:2.3.0'
114116
implementation 'org.jenkins-ci.plugins:script-security:1.54'
115117
vsphereCloudImplementation('org.jenkins-ci.plugins:vsphere-cloud:1.1.11') {
116118
exclude group: 'dom4j'
117119
}
118120
configFileProviderImplementation 'org.jenkins-ci.plugins:config-file-provider:2.15.4'
119121
managedScriptsImplementation 'org.jenkinsci.plugins:managed-scripts:1.3'
120-
configurationAsCodeImplementation 'io.jenkins:configuration-as-code:1.15'
122+
configurationAsCodeImplementation 'io.jenkins:configuration-as-code:1.35'
121123
testRuntimeOnly "org.jenkins-ci.main:jenkins-war:${project.properties['jenkinsVersion']}"
122-
testImplementation 'io.jenkins:configuration-as-code:1.15'
123-
testImplementation 'io.jenkins:configuration-as-code:1.15:tests'
124+
testImplementation 'io.jenkins:configuration-as-code:1.35'
125+
testImplementation 'io.jenkins.configuration-as-code:test-harness:1.35'
124126
testImplementation 'org.jenkins-ci.plugins:matrix-auth:1.3'
125127
testImplementation 'org.jenkins-ci.plugins:nested-view:1.14'
126-
testImplementation 'org.jenkins-ci.plugins:credentials:2.1.10'
128+
testImplementation 'org.jenkins-ci.plugins:credentials:2.3.11'
127129
}

job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/JenkinsJobManagement.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import javaposse.jobdsl.dsl.NameNotProvidedException;
4040
import javaposse.jobdsl.dsl.UserContent;
4141
import javaposse.jobdsl.plugin.ExtensionPointHelper.DslExtension;
42+
import jenkins.branch.OrganizationFolder;
4243
import jenkins.model.DirectlyModifiableTopLevelItemGroup;
4344
import jenkins.model.Jenkins;
4445
import jenkins.model.ModifiableTopLevelItemGroup;
@@ -587,17 +588,24 @@ private void renameJob(Job from, String to) throws IOException {
587588
}
588589

589590
private void mergeCredentials(AbstractItem item, javaposse.jobdsl.dsl.Item dslItem) {
591+
Optional<AbstractFolderProperty<?>> maybeProperty = Optional.empty();
590592
if (item instanceof Folder) {
591593
Folder folder = (Folder) item;
592-
Optional<AbstractFolderProperty<?>> maybeProperty =
594+
maybeProperty =
593595
folder.getProperties().stream()
594596
.filter(p -> p instanceof FolderCredentialsProperty)
595597
.findFirst();
596-
597-
if (maybeProperty.isPresent()) {
598-
LOGGER.log(Level.FINE, format("Merging credentials for %s", item.getName()));
599-
DslItemConfigurer.mergeCredentials(maybeProperty.get(), dslItem);
600-
}
598+
}
599+
if (item instanceof OrganizationFolder) {
600+
OrganizationFolder folder = (OrganizationFolder) item;
601+
maybeProperty =
602+
folder.getProperties().stream()
603+
.filter(p -> p instanceof FolderCredentialsProperty)
604+
.findFirst();
605+
}
606+
if (maybeProperty.isPresent()) {
607+
LOGGER.log(Level.FINE, format("Merging credentials for %s", item.getName()));
608+
DslItemConfigurer.mergeCredentials(maybeProperty.get(), dslItem);
601609
}
602610
}
603611

0 commit comments

Comments
 (0)