Skip to content

Commit e0cc54b

Browse files
committed
1 parent 18291d7 commit e0cc54b

File tree

3 files changed

+7
-28
lines changed

3 files changed

+7
-28
lines changed

pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ THE SOFTWARE.
7676
<scope>import</scope>
7777
<type>pom</type>
7878
</dependency>
79+
<dependency>
80+
<groupId>org.jenkins-ci.plugins</groupId>
81+
<artifactId>scm-api</artifactId>
82+
<version>633.v23a_a_dee2b_2cf</version> <!-- TODO https://github.com/jenkinsci/scm-api-plugin/pull/180 -->
83+
</dependency>
7984
</dependencies>
8085
</dependencyManagement>
8186
<dependencies>

src/main/java/org/jenkinsci/plugins/workflow/multibranch/ReadTrustedStep.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public static class Execution extends AbstractSynchronousNonBlockingStepExecutio
177177
}
178178
build.addAction(new SCMRevisionAction(scmSource, tip));
179179
}
180-
SCMRevision trusted = SCMBinder.getTrustedRevision(scmSource, tip, listener, build);
180+
SCMRevision trusted = scmSource.getTrustedRevisionForBuild(tip, listener, build);
181181
boolean trustCheck = !tip.equals(trusted);
182182
String untrustedFile = null;
183183
String content;

src/main/java/org/jenkinsci/plugins/workflow/multibranch/SCMBinder.java

+1-27
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,16 @@
2929
import hudson.Extension;
3030
import hudson.Functions;
3131
import hudson.model.Action;
32-
import hudson.model.Cause;
3332
import hudson.model.Descriptor;
3433
import hudson.model.DescriptorVisibilityFilter;
3534
import hudson.model.ItemGroup;
3635
import hudson.model.Queue;
3736
import hudson.model.Result;
38-
import hudson.model.Run;
3937
import hudson.model.TaskListener;
4038
import hudson.scm.SCM;
41-
import hudson.triggers.SCMTrigger;
42-
import hudson.triggers.TimerTrigger;
4339
import java.io.IOException;
4440
import java.util.List;
45-
import java.util.Set;
4641
import jenkins.branch.Branch;
47-
import jenkins.branch.BranchEventCause;
48-
import jenkins.branch.BranchIndexingCause;
4942
import jenkins.scm.api.SCMFileSystem;
5043
import jenkins.scm.api.SCMHead;
5144
import jenkins.scm.api.SCMRevision;
@@ -54,7 +47,6 @@
5447
import jenkins.util.SystemProperties;
5548
import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition;
5649
import org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition;
57-
import org.jenkinsci.plugins.workflow.cps.replay.ReplayCause;
5850
import org.jenkinsci.plugins.workflow.flow.FlowDefinition;
5951
import org.jenkinsci.plugins.workflow.flow.FlowDefinitionDescriptor;
6052
import org.jenkinsci.plugins.workflow.flow.FlowExecution;
@@ -111,7 +103,7 @@ public SCMBinder(String scriptPath) {
111103
SCM scm;
112104
if (tip != null) {
113105
build.addAction(new SCMRevisionAction(scmSource, tip));
114-
SCMRevision rev = getTrustedRevision(scmSource, tip, listener, build);
106+
SCMRevision rev = scmSource.getTrustedRevisionForBuild(tip, listener, build);
115107
try (SCMFileSystem fs = USE_HEAVYWEIGHT_CHECKOUT ? null : SCMFileSystem.of(scmSource, head, rev)) {
116108
if (fs != null) { // JENKINS-33273
117109
String script = null;
@@ -153,24 +145,6 @@ public SCMBinder(String scriptPath) {
153145
return new CpsScmFlowDefinition(scm, scriptPath).create(handle, listener, actions);
154146
}
155147

156-
private static Set<Class<? extends Cause>> passiveCauses = Set.of(
157-
BranchIndexingCause.class,
158-
BranchEventCause.class,
159-
SCMTrigger.SCMTriggerCause.class,
160-
TimerTrigger.TimerTriggerCause.class);
161-
/**
162-
* Like {@link SCMSource#getTrustedRevision} but only for builds with known passive triggers such as {@link BranchIndexingCause}.
163-
* Other causes such as {@link Cause.UserIdCause} or {@link ReplayCause} or {@code CheckRunGHEventSubscriber.GitHubChecksRerunActionCause}
164-
* are assumed trusted and so the tip revision is returned as is without consulting the SCM.
165-
*/
166-
static SCMRevision getTrustedRevision(SCMSource source, SCMRevision revision, TaskListener listener, Run<?, ?> build) throws IOException, InterruptedException {
167-
if (build.getCauses().stream().anyMatch(c -> passiveCauses.stream().anyMatch(t -> t.isInstance(c)))) {
168-
return source.getTrustedRevision(revision, listener);
169-
} else {
170-
return revision;
171-
}
172-
}
173-
174148
@Extension public static class DescriptorImpl extends FlowDefinitionDescriptor {
175149

176150
@NonNull

0 commit comments

Comments
 (0)