|
29 | 29 | import hudson.Extension; |
30 | 30 | import hudson.Functions; |
31 | 31 | import hudson.model.Action; |
32 | | -import hudson.model.Cause; |
33 | 32 | import hudson.model.Descriptor; |
34 | 33 | import hudson.model.DescriptorVisibilityFilter; |
35 | 34 | import hudson.model.ItemGroup; |
36 | 35 | import hudson.model.Queue; |
37 | 36 | import hudson.model.Result; |
38 | | -import hudson.model.Run; |
39 | 37 | import hudson.model.TaskListener; |
40 | 38 | import hudson.scm.SCM; |
41 | | -import hudson.triggers.SCMTrigger; |
42 | | -import hudson.triggers.TimerTrigger; |
43 | 39 | import java.io.IOException; |
44 | 40 | import java.util.List; |
45 | | -import java.util.Set; |
46 | 41 | import jenkins.branch.Branch; |
47 | | -import jenkins.branch.BranchEventCause; |
48 | | -import jenkins.branch.BranchIndexingCause; |
49 | 42 | import jenkins.scm.api.SCMFileSystem; |
50 | 43 | import jenkins.scm.api.SCMHead; |
51 | 44 | import jenkins.scm.api.SCMRevision; |
|
54 | 47 | import jenkins.util.SystemProperties; |
55 | 48 | import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition; |
56 | 49 | import org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition; |
57 | | -import org.jenkinsci.plugins.workflow.cps.replay.ReplayCause; |
58 | 50 | import org.jenkinsci.plugins.workflow.flow.FlowDefinition; |
59 | 51 | import org.jenkinsci.plugins.workflow.flow.FlowDefinitionDescriptor; |
60 | 52 | import org.jenkinsci.plugins.workflow.flow.FlowExecution; |
@@ -111,7 +103,7 @@ public SCMBinder(String scriptPath) { |
111 | 103 | SCM scm; |
112 | 104 | if (tip != null) { |
113 | 105 | build.addAction(new SCMRevisionAction(scmSource, tip)); |
114 | | - SCMRevision rev = getTrustedRevision(scmSource, tip, listener, build); |
| 106 | + SCMRevision rev = scmSource.getTrustedRevisionForBuild(tip, listener, build); |
115 | 107 | try (SCMFileSystem fs = USE_HEAVYWEIGHT_CHECKOUT ? null : SCMFileSystem.of(scmSource, head, rev)) { |
116 | 108 | if (fs != null) { // JENKINS-33273 |
117 | 109 | String script = null; |
@@ -153,24 +145,6 @@ public SCMBinder(String scriptPath) { |
153 | 145 | return new CpsScmFlowDefinition(scm, scriptPath).create(handle, listener, actions); |
154 | 146 | } |
155 | 147 |
|
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 | | - |
174 | 148 | @Extension public static class DescriptorImpl extends FlowDefinitionDescriptor { |
175 | 149 |
|
176 | 150 | @NonNull |
|
0 commit comments