about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJonathan "Duke" Leto <jonathan@leto.net>2011-02-23 15:15:45 -0800
committerJonathan "Duke" Leto <jonathan@leto.net>2011-02-23 15:15:45 -0800
commit54fc972d56cd5d3b290e2618ff05f433ac05f8dd (patch)
tree023d5e2e92d1d16ad64d2587295e3e0ef3ff4c96
parentTurn off debug statements by default (diff)
downloadjitterbug-54fc972d56cd5d3b290e2618ff05f433ac05f8dd.tar.gz
Add on_failure_to_email and on_pass_to_email config keys
These keys can be used to override where pass/fail emails go. If they
are defined, emails are sent to the specified email. If not, they go
to the commit author.

This feature is sponsored by IRC insultbots and the letters B, A, C,
E and K.

No bits where harmed in the making of this feature.
-rw-r--r--config.yml2
-rw-r--r--lib/jitterbug/Emailer.pm4
-rw-r--r--t/005_builder.t2
-rw-r--r--t/data/test.yml2
4 files changed, 9 insertions, 1 deletions
diff --git a/config.yml b/config.yml
index cb1e111..47f4f42 100644
--- a/config.yml
+++ b/config.yml
@@ -19,12 +19,14 @@ jitterbug:
     builder: ./scripts/capsule.sh
     builder_variables:
     on_failure: ./scripts/build-failed.sh
+    on_failure_to_email:
     on_failure_cc_email: alice@example.com
     on_failure_from_email: donotreply@example.com
     on_failure_subject_prefix: "[jitterbug] FAIL "
     on_failure_header:
     on_failure_footer:
     on_pass: ./scripts/build-pass.sh
+    on_pass_to_email:
     on_pass_cc_email: alice@example.com
     on_pass_subject_prefix: "[jitterbug] PASS "
     on_pass_from_email: donotreply@example.com
diff --git a/lib/jitterbug/Emailer.pm b/lib/jitterbug/Emailer.pm
index 0d4d7da..d43b120 100644
--- a/lib/jitterbug/Emailer.pm
+++ b/lib/jitterbug/Emailer.pm
@@ -42,7 +42,6 @@ sub run {
     my $sha1      = $task->commit->sha256;
     my $shortsha1 = substr($sha1, 0, 8);
     my $desc      = JSON::decode_json( $task->commit->content );
-    my $email     = $desc->{'author'}{'email'};
     my $message   = $desc->{'message'};
     my $header    = $buildconf->{"on_${status}_header"};
     my $footer    = $buildconf->{"on_${status}_footer"};
@@ -60,6 +59,9 @@ sub run {
 
     my ($short_message) = split /\n/, $message;
 
+    # Default to the to_email specified in our config. If it isn't set,
+    # use the author email 
+    my $email = $buildconf->{"on_${status}_to_email"} || $desc->{'author'}{'email'};
 
     my $stuff = Email::Stuff->from($buildconf->{"on_${status}_from_email"})
                 # bug in Email::Stuff brakes chaining if $email is empty
diff --git a/t/005_builder.t b/t/005_builder.t
index 93aa4c7..3adf39f 100644
--- a/t/005_builder.t
+++ b/t/005_builder.t
@@ -64,10 +64,12 @@ jitterbug::Test->init();
                                                 'on_pass_header' => undef,
                                                 'on_failure_subject_prefix' => '[jitterbug] FAIL ',
                                                 'on_failure_from_email' => 'donotreply@example.com',
+                                                'on_failure_to_email' => 'bob@example.com',
                                                 'on_failure_footer' => undef,
                                                 'on_failure_header' => undef,
                                                 'on_pass_footer' => undef,
                                                 'on_pass_cc_email' => 'alice@example.com',
+                                                'on_pass_to_email' => undef,
                                                 'on_pass_from_email' => 'donotreply@example.com',
                                                 'on_failure_cc_email' => 'alice@example.com',
                                                 'on_pass' => './scripts/build-pass.sh',
diff --git a/t/data/test.yml b/t/data/test.yml
index 897b734..d8d21c0 100644
--- a/t/data/test.yml
+++ b/t/data/test.yml
@@ -19,12 +19,14 @@ jitterbug:
     builder: ./scripts/capsule.sh
     builder_variables: STUFF=BLAH
     on_failure: ./scripts/build-failed.sh
+    on_failure_to_email: bob@example.com
     on_failure_cc_email: alice@example.com
     on_failure_from_email: donotreply@example.com
     on_failure_subject_prefix: "[jitterbug] FAIL "
     on_failure_header:
     on_failure_footer:
     on_pass: ./scripts/build-pass.sh
+    on_pass_to_email:
     on_pass_cc_email: alice@example.com
     on_pass_subject_prefix: "[jitterbug] PASS "
     on_pass_from_email: donotreply@example.com