From 54fc972d56cd5d3b290e2618ff05f433ac05f8dd Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Wed, 23 Feb 2011 15:15:45 -0800 Subject: 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. --- config.yml | 2 ++ lib/jitterbug/Emailer.pm | 4 +++- t/005_builder.t | 2 ++ t/data/test.yml | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) 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 -- cgit 1.4.1