Skip to content

Commit

Permalink
JENKINS-73941 - reverting CASC compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
jgarciacloudbees committed Oct 25, 2024
1 parent 8ffaefe commit e0f823a
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 1 deletion.
2 changes: 1 addition & 1 deletion plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>script-security</artifactId>
<version>1388.v9907110c2f80</version> <!-- https://github.com/jenkinsci/script-security-plugin/pull/584 -->
<version>1392.v64f458436d13</version> <!-- https://github.com/jenkinsci/script-security-plugin/pull/584 -->
</dependency>
</dependencies>
</dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,16 @@ public CPSConfiguration() {
}
}

public boolean isHideSandbox() {
return ScriptApproval.get().isForceSandbox();
}

public void setHideSandbox(boolean hideSandbox) {
this.hideSandbox = hideSandbox;
ScriptApproval.get().setForceSandbox(hideSandbox);
save();
}

@NonNull
@Override
public GlobalConfigurationCategory getCategory() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,18 @@ public void cpsScriptSandboxHide() throws Exception {
}
}

@Test
public void cpsConfigurationSandboxToScriptApprovalSandbox() throws Exception{
//Deprecated CPSConfiguration should update ScriptApproval forceSandbox logic to keep casc compatibility
ScriptApproval.get().setForceSandbox(false);

CPSConfiguration.get().setHideSandbox(true);
assertTrue(ScriptApproval.get().isForceSandbox());

ScriptApproval.get().setForceSandbox(false);
assertFalse(CPSConfiguration.get().isHideSandbox());
}

@Test
public void cpsScriptSignatureException() throws Exception {
ScriptApproval.get().setForceSandbox(false);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.jenkinsci.plugins.workflow.cps;

import io.jenkins.plugins.casc.ConfigurationContext;
import io.jenkins.plugins.casc.ConfiguratorRegistry;
import io.jenkins.plugins.casc.misc.ConfiguredWithCode;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
import io.jenkins.plugins.casc.model.CNode;
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval;
import org.junit.ClassRule;
import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static io.jenkins.plugins.casc.misc.Util.getSecurityRoot;
import static io.jenkins.plugins.casc.misc.Util.toStringFromYamlFile;
import static io.jenkins.plugins.casc.misc.Util.toYamlString;

public class JcascTest {

@ClassRule(order = 1)
@ConfiguredWithCode("casc_test.yaml")
public static JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule();

/**
* Check that CASC for security.cps.hideSandbox is sending the value to ScriptApproval.get().isForceSandbox()
* @throws Exception
*/
@Test
public void cascHideSandBox() throws Exception {
assertTrue(ScriptApproval.get().isForceSandbox());
}

@Test
public void cascExport() throws Exception {
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
ConfigurationContext context = new ConfigurationContext(registry);
CNode yourAttribute = getSecurityRoot(context).get("cps");
String exported = toYamlString(yourAttribute);
String expected = toStringFromYamlFile(this, "casc_test_expected.yaml");
assertEquals(exported, expected);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
security:
cps:
hideSandbox: true
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hideSandbox: true

0 comments on commit e0f823a

Please sign in to comment.