EmailNotification: $build -> $topbuild, $b -> $build (perlcritic)

[?]
Aug 21, 2021, 1:35 AM
G6TPSF2746JT5XQAUREDXQ4R2G4BUYOMHIBJ4VGMRPAB4INHEP7AC

Dependencies

  • [2] J4C4V6GL Check if we want to send email for a build before iterating through its users
  • [3] BFLNBJW4 Only email responsible authors when the build has changed
  • [4] CLBOP44W Add a hydra.conf option to enable email notification
  • [5] 6HWIUOSU Avoid fetching Projects/Jobsets just to get the name column
  • [6] Z6JLDTRW Fix typos
  • [7] N5AS7EKY Include who-broke-the-build information in notification emails
  • [8] K3HODXGH Check all inputs for blame but only email selected inputs
  • [9] BLVQGJ4L Use OO-style plugins
  • [10] RX5IIZMT Use Email::MIME instead of Email::Simple
  • [11] SRRNCD4W Email responsible authors if requested
  • [12] RPTSGIRC Eliminate duplicate getPreviousBuild functions
  • [13] E6SL7QRU Omit the system type if it's part of the job name
  • [14] QDJRQIFF If multiple dependent builds fail, send a single email
  • [15] LDICTHWY Use Template::Toolkit to generate email messages
  • [16] 5EQYVRWE Add a plugin mechanism
  • [17] 5WNGKHLZ Plugins: Add isEnabled method

Change contents

  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 49
    [6.693][6.29:71]()
    my ($self, $build, $dependents) = @_;
    [6.693]
    [4.155]
    my ($self, $topbuild, $dependents) = @_;
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 51
    [6.750][6.750:783]()
    die unless $build->finished;
    [4.156]
    [6.618]
    die unless $topbuild->finished;
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 57
    [6.816][6.816:861](),[6.861][6.820:866]()
    foreach my $b ($build, @{$dependents}) {
    my $prevBuild = getPreviousBuild($b);
    [6.816]
    [2.0]
    foreach my $build ($topbuild, @{$dependents}) {
    my $prevBuild = getPreviousBuild($build);
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 61
    [2.99][2.99:148]()
    next unless $b->jobset->enableemail;
    [2.99]
    [6.783]
    next unless $build->jobset->enableemail;
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 64
    [2.216][2.216:282]()
    next if $b->buildstatus == 4 || $b->buildstatus == 3;
    [2.216]
    [6.1092]
    next if $build->buildstatus == 4 || $build->buildstatus == 3;
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 68
    [2.417][2.417:505]()
    next if defined $prevBuild && ($b->buildstatus == $prevBuild->buildstatus);
    [2.417]
    [2.505]
    next if defined $prevBuild && ($build->buildstatus == $prevBuild->buildstatus);
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 71
    [6.1175][2.516:612]()
    my $to = $b->jobset->emailoverride ne "" ? $b->jobset->emailoverride : $b->maintainers;
    [6.1175]
    [6.1372]
    my $to = $build->jobset->emailoverride ne "" ? $build->jobset->emailoverride : $build->maintainers;
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 77
    [6.1700][6.1700:1756]()
    push @{$addresses{$address}->{builds}}, $b;
    [6.1700]
    [6.1756]
    push @{$addresses{$address}->{builds}}, $build;
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 81
    [6.147][6.581:682]()
    my ($authors, $nrCommits, $emailable_authors) = getResponsibleAuthors($build, $self->{plugins});
    [6.147]
    [6.228]
    my ($authors, $nrCommits, $emailable_authors) = getResponsibleAuthors($topbuild, $self->{plugins});
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 83
    [6.248][3.0:46]()
    my $prevBuild = getPreviousBuild($build);
    [6.248]
    [3.46]
    my $prevBuild = getPreviousBuild($topbuild);
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 85
    [3.85][3.85:172]()
    ((!defined $prevBuild) || ($build->buildstatus != $prevBuild->buildstatus))) {
    [3.85]
    [6.286]
    ((!defined $prevBuild) || ($topbuild->buildstatus != $prevBuild->buildstatus))) {
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 88
    [6.138][6.683:766](),[6.454][6.683:766]()
    $addresses{$_} = { builds => [ $build ] } foreach (@{$emailable_authors});
    [6.138]
    [6.1725]
    $addresses{$_} = { builds => [ $topbuild ] } foreach (@{$emailable_authors});
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 99
    [6.1209][6.867:936](),[6.936][6.1281:1349](),[6.1281][6.1281:1349]()
    { build => $build, prevBuild => getPreviousBuild($build)
    , dependents => [grep { $_->id != $build->id } @builds]
    [6.1209]
    [6.1794]
    { build => $topbuild, prevBuild => getPreviousBuild($topbuild)
    , dependents => [grep { $_->id != $topbuild->id } @builds]
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 103
    [6.1502][5.746:829]()
    , showSystem => index($build->get_column('job'), $build->system) == -1
    [6.1502]
    [6.455]
    , showSystem => index($topbuild->get_column('job'), $topbuild->system) == -1
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 116
    [6.1870][6.1870:2007]()
    showStatus($build) . ": Hydra job " . showJobName($build)
    . ($vars->{showSystem} ? " on " . $build->system : "")
    [6.1870]
    [6.2007]
    showStatus($topbuild) . ": Hydra job " . showJobName($topbuild)
    . ($vars->{showSystem} ? " on " . $topbuild->system : "")
  • replacement in src/lib/Hydra/Plugin/EmailNotification.pm at line 122
    [6.2190][5.830:1026](),[5.1026][6.2362:2413](),[6.2362][6.2362:2413]()
    [ 'X-Hydra-Project' => $build->get_column('project'),
    , 'X-Hydra-Jobset' => $build->get_column('jobset'),
    , 'X-Hydra-Job' => $build->get_column('job'),
    , 'X-Hydra-System' => $build->system
    [6.2190]
    [6.2413]
    [ 'X-Hydra-Project' => $topbuild->get_column('project'),
    , 'X-Hydra-Jobset' => $topbuild->get_column('jobset'),
    , 'X-Hydra-Job' => $topbuild->get_column('job'),
    , 'X-Hydra-System' => $topbuild->system