mirror of
https://github.com/firstBitMarksistskaya/jenkins-lib.git
synced 2025-03-19 21:37:49 +02:00
Исправлен мерж секретов
This commit is contained in:
parent
1a3ee80033
commit
8d9ed2ff08
@ -28,19 +28,27 @@ class ConfigurationReader implements Serializable {
|
||||
return mergeConfigurations(globalConfiguration, jobConfiguration);
|
||||
}
|
||||
|
||||
@NonCPS
|
||||
private static JobConfiguration mergeConfigurations(
|
||||
JobConfiguration baseConfiguration,
|
||||
JobConfiguration configurationToMerge
|
||||
) {
|
||||
BeanUtils.describe(configurationToMerge).entrySet().stream()
|
||||
.filter({ e -> e.getValue() != null })
|
||||
.filter({ e -> e.getKey() != "class" })
|
||||
.filter({ e -> e.getKey() != "metaClass" })
|
||||
.forEach {e ->
|
||||
BeanUtils.setProperty(baseConfiguration, e.getKey(), e.getValue());
|
||||
}
|
||||
def nonMergeableSettings = Arrays.asList("secrets").toSet()
|
||||
|
||||
mergeObjects(baseConfiguration, configurationToMerge, nonMergeableSettings);
|
||||
mergeObjects(baseConfiguration.secrets, configurationToMerge.secrets, Collections.emptySet())
|
||||
|
||||
return baseConfiguration;
|
||||
}
|
||||
|
||||
@NonCPS
|
||||
private static <T extends Object> void mergeObjects(T baseObject, T objectToMerge, Set<String> nonMergeableSettings) {
|
||||
BeanUtils.describe(objectToMerge).entrySet().stream()
|
||||
.filter({ e -> e.getValue() != null })
|
||||
.filter({ e -> e.getKey() != "class" })
|
||||
.filter({ e -> e.getKey() != "metaClass" })
|
||||
.filter({ e -> !nonMergeableSettings.contains(e.getKey()) })
|
||||
.forEach {e ->
|
||||
BeanUtils.setProperty(baseObject, e.getKey(), e.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,10 @@ class ConfigurationReaderTest {
|
||||
// then
|
||||
assertThat(jobConfiguration.getV8version()).isEqualTo("8.3.14.1944");
|
||||
assertThat(jobConfiguration.getSonarScannerToolName()).isEqualTo("sonar-scanner");
|
||||
assertThat(jobConfiguration.getSecrets())
|
||||
.hasFieldOrPropertyWithValue("storage", "1234")
|
||||
.hasFieldOrPropertyWithValue("storagePath", "UNKNOWN_ID")
|
||||
;
|
||||
}
|
||||
|
||||
}
|
@ -1,3 +1,6 @@
|
||||
{
|
||||
"v8version": "8.3.14.1944"
|
||||
"v8version": "8.3.14.1944",
|
||||
"secrets": {
|
||||
"storage": "1234"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user