Skip to content

Commit 3304b51

Browse files
committed
Refactor SlackNotificationPayloadContent - extract class for the commits list.
1 parent ac76dda commit 3304b51

File tree

2 files changed

+58
-30
lines changed

2 files changed

+58
-30
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package slacknotifications.teamcity.payload.content;
2+
3+
import jetbrains.buildServer.serverSide.SRunningBuild;
4+
import jetbrains.buildServer.users.SUser;
5+
import jetbrains.buildServer.vcs.SVcsModification;
6+
import slacknotifications.teamcity.Loggers;
7+
import slacknotifications.teamcity.SlackNotificator;
8+
9+
import java.util.ArrayList;
10+
import java.util.Collection;
11+
import java.util.List;
12+
13+
public class PayloadContentCommits {
14+
List<Commit> commits;
15+
16+
public PayloadContentCommits() {
17+
commits = new ArrayList<Commit>();
18+
}
19+
20+
void populateCommits(SRunningBuild sRunningBuild) {
21+
List<SVcsModification> changes = sRunningBuild.getContainingChanges();
22+
if (changes == null) {
23+
return;
24+
}
25+
26+
for (SVcsModification change : changes) {
27+
Collection<SUser> committers = change.getCommitters();
28+
String slackUserName = null;
29+
if (committers != null && !committers.isEmpty()) {
30+
SUser committer = committers.iterator().next();
31+
slackUserName = committer.getPropertyValue(SlackNotificator.USERNAME_KEY);
32+
Loggers.ACTIVITIES.debug("Resolved committer " + change.getUserName() + " to Slack User " + slackUserName);
33+
}
34+
commits.add(new Commit(change.getVersion(), change.getDescription(), change.getUserName(), slackUserName));
35+
}
36+
}
37+
38+
public List<Commit> getCommits() {
39+
return commits;
40+
}
41+
42+
public void setCommits(List<Commit> commits) {
43+
this.commits = commits;
44+
}
45+
}

tcslackbuildnotifier-core/src/main/java/slacknotifications/teamcity/payload/content/SlackNotificationPayloadContent.java

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,17 @@
33
import jetbrains.buildServer.BuildProblemData;
44
import jetbrains.buildServer.serverSide.*;
55
import jetbrains.buildServer.tests.TestInfo;
6-
import jetbrains.buildServer.users.SUser;
7-
import jetbrains.buildServer.vcs.SVcsModification;
86
import slacknotifications.teamcity.BuildStateEnum;
97
import slacknotifications.teamcity.Loggers;
10-
import slacknotifications.teamcity.SlackNotificator;
118
import slacknotifications.teamcity.TeamCityIdResolver;
129

1310
import java.util.ArrayList;
14-
import java.util.Collection;
1511
import java.util.HashSet;
1612
import java.util.List;
1713

1814
public class SlackNotificationPayloadContent {
19-
String buildStatus;
15+
final PayloadContentCommits payloadCommits;
16+
String buildStatus;
2017
String buildResult;
2118
String buildResultPrevious;
2219
String buildResultDelta;
@@ -46,8 +43,7 @@ public class SlackNotificationPayloadContent {
4643
String branchDisplayName;
4744
String buildStateDescription;
4845
String progressSummary;
49-
List<Commit> commits;
50-
private boolean isFirstFailedBuild;
46+
private boolean isFirstFailedBuild;
5147

5248
Boolean branchIsDefault;
5349

@@ -77,7 +73,7 @@ public class SlackNotificationPayloadContent {
7773
private ArrayList<String> failedTestNames = new ArrayList<String>();
7874

7975
public SlackNotificationPayloadContent(){
80-
76+
payloadCommits = new PayloadContentCommits();
8177
}
8278

8379
/**
@@ -87,6 +83,7 @@ public SlackNotificationPayloadContent(){
8783
* @param buildState
8884
*/
8985
public SlackNotificationPayloadContent(SBuildServer server, SBuildType buildType, BuildStateEnum buildState) {
86+
payloadCommits = new PayloadContentCommits();
9087
populateCommonContent(server, buildType, buildState);
9188
}
9289

@@ -99,11 +96,10 @@ public SlackNotificationPayloadContent(SBuildServer server, SBuildType buildType
9996
*/
10097
public SlackNotificationPayloadContent(SBuildServer server, SRunningBuild sRunningBuild, SFinishedBuild previousBuild,
10198
BuildStateEnum buildState) {
102-
103-
this.commits = new ArrayList<Commit>();
99+
payloadCommits = new PayloadContentCommits();
104100
populateCommonContent(server, sRunningBuild, previousBuild, buildState);
105101
populateMessageAndText(sRunningBuild, buildState);
106-
populateCommits(sRunningBuild);
102+
payloadCommits.populateCommits(sRunningBuild);
107103
populateArtifacts(sRunningBuild);
108104
populateResults(sRunningBuild);
109105
}
@@ -136,22 +132,9 @@ private void populateResults(SRunningBuild sRunningBuild) {
136132
}
137133

138134
private void populateCommits(SRunningBuild sRunningBuild) {
139-
List<SVcsModification> changes = sRunningBuild.getContainingChanges();
140-
if(changes == null){
141-
return;
142-
}
143135

144-
for(SVcsModification change : changes){
145-
Collection<SUser> committers = change.getCommitters();
146-
String slackUserName = null;
147-
if(committers != null && !committers.isEmpty()){
148-
SUser committer = committers.iterator().next();
149-
slackUserName = committer.getPropertyValue(SlackNotificator.USERNAME_KEY);
150-
Loggers.ACTIVITIES.debug("Resolved committer " + change.getUserName() + " to Slack User " + slackUserName);
151-
}
152-
commits.add(new Commit(change.getVersion(), change.getDescription(), change.getUserName(), slackUserName));
153-
}
154-
}
136+
payloadCommits.populateCommits(sRunningBuild);
137+
}
155138

156139
private void populateArtifacts(SRunningBuild runningBuild) {
157140
//ArtifactsInfo artInfo = new ArtifactsInfo(runningBuild);
@@ -414,12 +397,12 @@ public long getElapsedTime() {
414397
}
415398

416399
public List<Commit> getCommits() {
417-
return commits;
418-
}
400+
return payloadCommits.getCommits();
401+
}
419402

420403
public void setCommits(List<Commit> commits) {
421-
this.commits = commits;
422-
}
404+
payloadCommits.setCommits(commits);
405+
}
423406

424407
public boolean getIsComplete() {
425408
return isComplete;

0 commit comments

Comments
 (0)