20
20
* Sends emails to committers of upstream builds which triggered this build.
21
21
*/
22
22
public class UpstreamComitterRecipientProvider extends RecipientProvider {
23
+ private static final ExtendedEmailPublisherDescriptor descriptor = Jenkins .getInstance ().getDescriptorByType (ExtendedEmailPublisherDescriptor .class );
23
24
24
25
@ DataBoundConstructor
25
26
public UpstreamComitterRecipientProvider () {
26
27
}
27
28
28
29
@ Override
29
30
public void addRecipients (ExtendedEmailPublisherContext context , EnvVars env , Set <InternetAddress > to , Set <InternetAddress > cc , Set <InternetAddress > bcc ) {
30
- ExtendedEmailPublisherDescriptor descriptor = Jenkins .getInstance ().getDescriptorByType (ExtendedEmailPublisherDescriptor .class );
31
31
descriptor .debug (context .getListener ().getLogger (), "Sending email to upstream committer(s)." );
32
-
33
32
AbstractBuild <?, ?> cur ;
34
- Cause .UpstreamCause upc = context .getBuild ().getCause (Cause .UpstreamCause .class );
35
- while (upc != null ) {
36
- // UpstreamCause.getUpstreamProject() returns the full name, so use getItemByFullName
37
- AbstractProject <?, ?> p = (AbstractProject <?, ?>) Jenkins .getInstance ().getItemByFullName (upc .getUpstreamProject ());
38
- if (p == null )
39
- break ;
40
- cur = p .getBuildByNumber (upc .getUpstreamBuild ());
41
- upc = cur .getCause (Cause .UpstreamCause .class );
42
- addUpstreamCommittersTriggeringBuild (cur , to , cc , bcc , env , context .getListener ());
43
- }
33
+ Cause .UpstreamCause upc = context .getBuild ().getCause (Cause .UpstreamCause .class );
34
+ while (upc != null ) {
35
+ AbstractProject <?, ?> p = (AbstractProject <?, ?>) Jenkins .getInstance ().getItemByFullName (upc .getUpstreamProject ());
36
+ if (p == null )
37
+ break ;
38
+ cur = p .getBuildByNumber (upc .getUpstreamBuild ());
39
+ upc = cur .getCause (Cause .UpstreamCause .class );
40
+ addUpstreamCommittersTriggeringBuild (cur , to , cc , bcc , env , context .getListener ());
41
+ }
44
42
}
45
43
46
44
/**
@@ -54,15 +52,15 @@ public void addRecipients(ExtendedEmailPublisherContext context, EnvVars env, Se
54
52
* @param listener
55
53
*/
56
54
private void addUpstreamCommittersTriggeringBuild (AbstractBuild <?, ?> build , Set <InternetAddress > to , Set <InternetAddress > cc , Set <InternetAddress > bcc , EnvVars env , TaskListener listener ) {
57
- listener .getLogger (). println ( String . format ( "Adding upstream committer from job %s with build number %s" , build .getProject ().getDisplayName (), build .getNumber () ));
55
+ descriptor . debug ( listener .getLogger (), "Adding upstream committer from job %s with build number %s" , build .getProject ().getDisplayName (), build .getNumber ());
58
56
for (ChangeLogSet .Entry change : build .getChangeSet ()) {
59
57
User user = change .getAuthor ();
60
58
String email = user .getProperty (Mailer .UserProperty .class ).getAddress ();
61
59
if (email != null ) {
62
- listener .getLogger (). println ( String . format ( "Adding upstream committer %s to recipient list with email %s" , user .getFullName (), email ) );
60
+ descriptor . debug ( listener .getLogger (), "Adding upstream committer %s to recipient list with email %s" , user .getFullName (), email );
63
61
EmailRecipientUtils .addAddressesFromRecipientList (to , cc , bcc , email , env , listener );
64
62
} else {
65
- listener .getLogger (). println ( String . format ( "The user %s does not have a configured email email, trying the user's id" , user .getFullName () ));
63
+ descriptor . debug ( listener .getLogger (), "The user %s does not have a configured email email, trying the user's id" , user .getFullName ());
66
64
EmailRecipientUtils .addAddressesFromRecipientList (to , cc , bcc , user .getId (), env , listener );
67
65
}
68
66
}
0 commit comments