Skip to content

Commit 2d9942f

Browse files
authored
Merge branch 'jenkinsci:master' into add-ignore-reviewers-to-alwaysIgnoreNonCodeRelatedUpdates
2 parents d3a8a2e + 877fdc2 commit 2d9942f

File tree

5 files changed

+83
-3
lines changed

5 files changed

+83
-3
lines changed

src/main/java/io/jenkins/plugins/gitlabbranchsource/BuildStatusNameCustomPartTrait.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class BuildStatusNameCustomPartTrait extends SCMSourceTrait {
1616
private String buildStatusNameCustomPart = "";
1717

1818
private boolean buildStatusNameOverwrite;
19+
private boolean ignoreTypeInStatusName;
1920

2021
/**
2122
* Constructor for stapler.
@@ -38,12 +39,18 @@ public void setBuildStatusNameOverwrite(@NonNull Boolean buildStatusNameOverwrit
3839
this.buildStatusNameOverwrite = buildStatusNameOverwrite;
3940
}
4041

42+
@DataBoundSetter
43+
public void setIgnoreTypeInStatusName(@NonNull Boolean ignoreTypeInStatusName) {
44+
this.ignoreTypeInStatusName = ignoreTypeInStatusName;
45+
}
46+
4147
@Override
4248
protected void decorateContext(SCMSourceContext<?, ?> context) {
4349
if (context instanceof GitLabSCMSourceContext) {
4450
GitLabSCMSourceContext ctx = (GitLabSCMSourceContext) context;
4551
ctx.withBuildStatusNameCustomPart(getBuildStatusNameCustomPart());
4652
ctx.withBuildStatusNameOverwrite(getBuildStatusNameOverwrite());
53+
ctx.withIgnoreTypeInStatusName(getIgnoreTypeInStatusName());
4754
}
4855
}
4956

@@ -66,6 +73,15 @@ public boolean getBuildStatusNameOverwrite() {
6673
return buildStatusNameOverwrite;
6774
}
6875

76+
/**
77+
* Getter method for the build status name overwrite
78+
*
79+
* @return build status name overwrite option
80+
*/
81+
public boolean getIgnoreTypeInStatusName() {
82+
return ignoreTypeInStatusName;
83+
}
84+
6985
/**
7086
* Our descriptor.
7187
*/

src/main/java/io/jenkins/plugins/gitlabbranchsource/GitLabSCMSourceContext.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ public class GitLabSCMSourceContext extends SCMSourceContext<GitLabSCMSourceCont
5353

5454
private boolean buildStatusNameOverwrite;
5555

56+
private boolean ignoreTypeInStatusName;
57+
5658
private boolean alwaysBuildMROpen = true;
5759

5860
private boolean alwaysBuildMRReOpen = true;
@@ -189,6 +191,10 @@ public boolean getBuildStatusNameOverwrite() {
189191
return buildStatusNameOverwrite;
190192
}
191193

194+
public boolean getIgnoreTypeInStatusName() {
195+
return ignoreTypeInStatusName;
196+
}
197+
192198
@NonNull
193199
public GitLabSCMSourceContext wantBranches(boolean include) {
194200
wantBranches = wantBranches || include;
@@ -299,6 +305,11 @@ public final GitLabSCMSourceContext withBuildStatusNameOverwrite(final Boolean b
299305
return this;
300306
}
301307

308+
public final GitLabSCMSourceContext withIgnoreTypeInStatusName(final Boolean ignoreTypeInStatusName) {
309+
this.ignoreTypeInStatusName = ignoreTypeInStatusName;
310+
return this;
311+
}
312+
302313
@NonNull
303314
@Override
304315
public GitLabSCMSourceRequest newRequest(@NonNull SCMSource source, @CheckForNull TaskListener listener) {

src/main/java/io/jenkins/plugins/gitlabbranchsource/helpers/GitLabPipelineStatusNotifier.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,31 @@ static String getStatusName(
121121
+ revision.getClass().getName() + ", append" + type + " to status name");
122122
}
123123

124+
// Some comments regarding this implementation :
125+
// Old code was :
126+
// GITLAB_PIPELINE_STATUS_PREFIX + GITLAB_PIPELINE_STATUS_DELIMITER + (optional:
127+
// pipelinePrefix + GITLAB_PIPELINE_STATUS_DELIMITER) + type
128+
// New implementation:
129+
// 1- BuildStatusNameCustomPart empty : use default
130+
// GITLAB_PIPELINE_STATUS_PREFIX
131+
// 2- else: depending on BuildStatusNameOverwrite : use
132+
// BuildStatusNameCustomPart appended to GITLAB_PIPELINE_STATUS_PREFIX or use it
133+
// as is
134+
// 3- add type only if required (no ignoreTypeInStatusName)
135+
124136
String pipelinePrefix = sourceContext.getBuildStatusNameCustomPart().trim();
125137
if (!pipelinePrefix.isEmpty()) {
126-
pipelinePrefix = envVars.expand(pipelinePrefix) + GITLAB_PIPELINE_STATUS_DELIMITER;
138+
pipelinePrefix = envVars.expand(pipelinePrefix);
127139
if (!sourceContext.getBuildStatusNameOverwrite()) {
128140
pipelinePrefix = GITLAB_PIPELINE_STATUS_PREFIX + GITLAB_PIPELINE_STATUS_DELIMITER + pipelinePrefix;
129141
}
130142
} else {
131-
pipelinePrefix = GITLAB_PIPELINE_STATUS_PREFIX + GITLAB_PIPELINE_STATUS_DELIMITER;
143+
pipelinePrefix = GITLAB_PIPELINE_STATUS_PREFIX;
144+
}
145+
if (!sourceContext.getIgnoreTypeInStatusName()) {
146+
pipelinePrefix = pipelinePrefix + GITLAB_PIPELINE_STATUS_DELIMITER + type;
132147
}
133-
final String statusName = pipelinePrefix + type;
148+
final String statusName = pipelinePrefix;
134149
LOGGER.log(Level.FINEST, () -> "Retrieved status name is: " + statusName);
135150
return statusName;
136151
}

src/main/resources/io/jenkins/plugins/gitlabbranchsource/BuildStatusNameCustomPartTrait/config.jelly

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@
66
<f:entry title="${%Overwrite full name}" field="buildStatusNameOverwrite">
77
<f:checkbox default="unchecked"/>
88
</f:entry>
9+
<f:entry title="${%Do not append type in status name}" field="ignoreTypeInStatusName">
10+
<f:checkbox default="unchecked"/>
11+
</f:entry>
912
</j:jelly>

src/test/java/io/jenkins/plugins/gitlabbranchsource/helpers/GitLabPipelineStatusNotifierTest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,41 @@ public void should_set_branch_status_name() {
4242
+ "branch"));
4343
}
4444

45+
@Test
46+
public void should_set_branch_status_name_withBuildStatusNameCustomPart() {
47+
GitLabSCMSourceContext sourceContext = new GitLabSCMSourceContext(null, null);
48+
sourceContext.withBuildStatusNameCustomPart("CUSTOM");
49+
sourceContext.withBuildStatusNameOverwrite(false);
50+
51+
BranchSCMHead head = new BranchSCMHead("head");
52+
SCMRevision revision = new BranchSCMRevision(head, "hash");
53+
54+
String statusName =
55+
GitLabPipelineStatusNotifier.getStatusName(sourceContext, null, revision, new hudson.EnvVars());
56+
57+
assertThat(
58+
statusName,
59+
is(GitLabPipelineStatusNotifier.GITLAB_PIPELINE_STATUS_PREFIX
60+
+ GitLabPipelineStatusNotifier.GITLAB_PIPELINE_STATUS_DELIMITER
61+
+ "CUSTOM"
62+
+ GitLabPipelineStatusNotifier.GITLAB_PIPELINE_STATUS_DELIMITER
63+
+ "branch"));
64+
}
65+
66+
@Test
67+
public void should_set_branch_status_name_withIgnoreTypeInStatusName() {
68+
GitLabSCMSourceContext sourceContext = new GitLabSCMSourceContext(null, null);
69+
sourceContext.withIgnoreTypeInStatusName(true);
70+
71+
BranchSCMHead head = new BranchSCMHead("head");
72+
SCMRevision revision = new BranchSCMRevision(head, "hash");
73+
74+
String statusName =
75+
GitLabPipelineStatusNotifier.getStatusName(sourceContext, null, revision, new hudson.EnvVars());
76+
77+
assertThat(statusName, is(GitLabPipelineStatusNotifier.GITLAB_PIPELINE_STATUS_PREFIX));
78+
}
79+
4580
@Test
4681
public void should_set_merge_request_head_status_name() {
4782
GitLabSCMSourceContext sourceContext = new GitLabSCMSourceContext(null, null);

0 commit comments

Comments
 (0)