Skip to content

Commit f9e35c4

Browse files
authored
Merge branch 'master' into simplify-rate-limit-queue-check
2 parents e8d41b2 + f1f275d commit f9e35c4

File tree

4 files changed

+49
-18
lines changed

4 files changed

+49
-18
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<parent>
3030
<groupId>org.jenkins-ci.plugins</groupId>
3131
<artifactId>plugin</artifactId>
32-
<version>4.66</version>
32+
<version>4.68</version>
3333
<relativePath/>
3434
</parent>
3535

src/main/java/jenkins/branch/MultiBranchProjectDisplayNamingStrategy.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
package jenkins.branch;
2525

2626
import edu.umd.cs.findbugs.annotations.NonNull;
27+
import java.util.Objects;
2728
import jenkins.scm.api.metadata.ObjectMetadataAction;
2829
import org.jvnet.localizer.Localizable;
2930

@@ -42,7 +43,7 @@ public enum MultiBranchProjectDisplayNamingStrategy {
4243
OBJECT_DISPLAY_NAME(true, Messages._MultiBranchProjectDisplayNamingTrait_DisplayName()) {
4344
@Override
4445
public String generateName(@NonNull final String rawName, final String displayName) {
45-
return displayName;
46+
return isBlank(displayName) ? rawName : displayName;
4647
}
4748
},
4849
/**
@@ -51,7 +52,15 @@ public String generateName(@NonNull final String rawName, final String displayNa
5152
RAW_AND_OBJECT_DISPLAY_NAME(true, Messages._MultiBranchProjectDisplayNamingTrait_RawAndDisplayName()) {
5253
@Override
5354
public String generateName(@NonNull final String rawName, final String displayName) {
54-
return isBlank(displayName) ? rawName : format("%s: %s", rawName, displayName);
55+
if (isBlank(displayName)) {
56+
return rawName;
57+
}
58+
59+
if (Objects.equals(rawName, displayName)) {
60+
return rawName;
61+
}
62+
63+
return format("%s - %s", rawName, displayName);
5564
}
5665
},
5766
;
@@ -67,6 +76,7 @@ public String generateName(@NonNull final String rawName, final String displayNa
6776
public boolean needsObjectDisplayName() {
6877
return needsObjectDisplayName;
6978
}
79+
7080
public String getDisplayName() {
7181
return displayName.toString();
7282
}
Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
<div>
2-
The different strategies:
3-
<ul>
4-
<li>
5-
<strong>Object display name:</strong>
6-
<span>Uses the branch source plugin's display name for the PR instead of the raw name</span>
7-
</li>
8-
<li>
9-
<strong>Raw and object display name:</strong>
10-
<span>Joins the raw name and the branch source plugin's display name</span>
11-
</li>
12-
</ul>
2+
The different strategies:
3+
<ul>
4+
<li>
5+
<p>
6+
<strong>Job display name with fallback to name:</strong>
7+
<br>
8+
Uses the branch source plugin's display name for the PR instead of the raw name
9+
<br>
10+
Value for configuration-as-code: <code>OBJECT_DISPLAY_NAME</code>
11+
</p>
12+
</li>
13+
<li>
14+
<p>
15+
<strong>Name and, if available, display name:</strong>
16+
<br>
17+
Joins the raw name and the branch source plugin's display name
18+
<br>
19+
Value for configuration-as-code: <code>RAW_AND_OBJECT_DISPLAY_NAME</code>
20+
</p>
21+
</li>
22+
</ul>
1323
</div>

src/test/java/jenkins/branch/ProjectNamingStrategyTest.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import integration.harness.BasicDummyStepBranchProperty;
66
import integration.harness.BasicMultiBranchProject;
77
import jenkins.model.Jenkins;
8-
import jenkins.scm.api.SCMSource;
98
import jenkins.scm.impl.mock.MockSCMController;
9+
import jenkins.scm.impl.mock.MockSCMDiscoverBranches;
1010
import jenkins.scm.impl.mock.MockSCMDiscoverChangeRequests;
1111
import jenkins.scm.impl.mock.MockSCMSource;
1212
import org.junit.ClassRule;
@@ -42,12 +42,13 @@ public void testObjectNameStrategy() throws Exception {
4242

4343
public void testNamingStrategy(final MultiBranchProjectDisplayNamingStrategy namingStrategy) throws Exception {
4444
final Jenkins jenkinsInstance = r.jenkins;
45+
final String mainBranch = "master";
4546
final String projectName = String.format("Project_%s", namingStrategy.name());
4647

4748
try (final MockSCMController mockScm = MockSCMController.create()) {
4849
mockScm.createRepository(REPO_NAME);
4950

50-
final Integer crNumber = mockScm.openChangeRequest(REPO_NAME, "master");
51+
final Integer crNumber = mockScm.openChangeRequest(REPO_NAME, mainBranch);
5152
final String crName = String.format("CR-%s", crNumber);
5253
final String crTitle = String.format("Change request #%s", crNumber);
5354

@@ -58,6 +59,7 @@ public void testNamingStrategy(final MultiBranchProjectDisplayNamingStrategy nam
5859
final MockSCMSource scmSource = new MockSCMSource(
5960
mockScm,
6061
REPO_NAME,
62+
new MockSCMDiscoverBranches(),
6163
new MockSCMDiscoverChangeRequests(),
6264
new MultiBranchProjectDisplayNamingTrait(namingStrategy)
6365
);
@@ -67,14 +69,23 @@ public void testNamingStrategy(final MultiBranchProjectDisplayNamingStrategy nam
6769
project.getSourcesList().add(source);
6870
r.configRoundtrip(project);
6971

72+
final FreeStyleProject branchProject = jenkinsInstance.getItemByFullName(
73+
String.format("%s/%s", projectName, mainBranch),
74+
FreeStyleProject.class
75+
);
76+
77+
final String expectedBranchProjectName = namingStrategy.generateName(mainBranch, "");
78+
assertNotNull(branchProject, "No job was created for the main branch");
79+
assertEquals(expectedBranchProjectName, branchProject.getDisplayName(), "The job name doesn't match the naming strategy");
80+
7081
final FreeStyleProject crProject = jenkinsInstance.getItemByFullName(
7182
String.format("%s/%s", projectName, crName),
7283
FreeStyleProject.class
7384
);
7485

75-
final String expectedName = namingStrategy.generateName(crName, crTitle);
86+
final String expectedCrProjectName = namingStrategy.generateName(crName, crTitle);
7687
assertNotNull(crProject, "No job was created for the pull request");
77-
assertEquals(expectedName, crProject.getDisplayName(), "The job name doesn't match the naming strategy");
88+
assertEquals(expectedCrProjectName, crProject.getDisplayName(), "The job name doesn't match the naming strategy");
7889
}
7990
}
8091
}

0 commit comments

Comments
 (0)