33import jetbrains .buildServer .BuildProblemData ;
44import jetbrains .buildServer .serverSide .*;
55import jetbrains .buildServer .tests .TestInfo ;
6- import jetbrains .buildServer .users .SUser ;
7- import jetbrains .buildServer .vcs .SVcsModification ;
86import slacknotifications .teamcity .BuildStateEnum ;
97import slacknotifications .teamcity .Loggers ;
10- import slacknotifications .teamcity .SlackNotificator ;
118import slacknotifications .teamcity .TeamCityIdResolver ;
129
1310import java .util .ArrayList ;
14- import java .util .Collection ;
1511import java .util .HashSet ;
1612import java .util .List ;
1713
1814public 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