Skip to content

Commit ace06ad

Browse files
authored
Merge pull request #286 from atanasenko/env_params_folding
[scmsource] Allow queue item folding to happen
2 parents 5b45c7c + e8d2637 commit ace06ad

2 files changed

Lines changed: 50 additions & 4 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.github.kostyasha.github.integration.multibranch;
2+
3+
import java.io.IOException;
4+
import java.util.List;
5+
6+
import hudson.EnvVars;
7+
import hudson.Extension;
8+
import hudson.model.Action;
9+
import hudson.model.EnvironmentContributor;
10+
import hudson.model.InvisibleAction;
11+
import hudson.model.ParameterValue;
12+
import hudson.model.ParametersAction;
13+
import hudson.model.Run;
14+
import hudson.model.TaskListener;
15+
import hudson.model.Queue.Item;
16+
import hudson.model.Queue.Task;
17+
import hudson.model.queue.FoldableAction;
18+
19+
/**
20+
* Simpler replacement for {@link ParametersAction} that does not stand in the way of 'folding' queue items
21+
* @author atanasenko
22+
*
23+
*/
24+
public class GitHubParametersAction extends InvisibleAction implements FoldableAction {
25+
26+
private List<ParameterValue> params;
27+
28+
public GitHubParametersAction(List<ParameterValue> params) {
29+
this.params = params;
30+
}
31+
32+
@Override
33+
public void foldIntoExisting(Item item, Task owner, List<Action> actions) {
34+
item.addOrReplaceAction(this);
35+
}
36+
37+
@Extension
38+
public static class GitHubEnvContributor extends EnvironmentContributor {
39+
@Override
40+
public void buildEnvironmentFor(Run r, EnvVars envs, TaskListener listener) throws IOException, InterruptedException {
41+
GitHubParametersAction action = r.getAction(GitHubParametersAction.class);
42+
if (action == null) {
43+
return;
44+
}
45+
action.params.forEach(p -> p.buildEnvironment(r, envs));
46+
}
47+
}
48+
49+
}

github-pullrequest-plugin/src/main/java/com/github/kostyasha/github/integration/multibranch/GitHubSCMSource.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import hudson.model.Action;
2828
import hudson.model.CauseAction;
2929
import hudson.model.ParameterValue;
30-
import hudson.model.ParametersAction;
3130
import hudson.model.TaskListener;
3231
import hudson.scm.SCM;
3332
import jenkins.scm.api.SCMHead;
@@ -257,10 +256,8 @@ protected List<Action> retrieveActions(@Nonnull SCMRevision revision, @CheckForN
257256
GitHubCause<?> cause = gitHubSCMRevision.getCause();
258257
if (nonNull(cause)) {
259258
List<ParameterValue> params = new ArrayList<>();
260-
List<String> safeParams = new ArrayList<>();
261259
cause.fillParameters(params);
262-
params.forEach(p -> safeParams.add(p.getName()));
263-
return Arrays.asList(new CauseAction(cause), new ParametersAction(params, safeParams));
260+
return Arrays.asList(new CauseAction(cause), new GitHubParametersAction(params));
264261
}
265262

266263
return Collections.emptyList();

0 commit comments

Comments
 (0)