&checkmatch('blocked-by','m_blockedby',$data->{blockedby},@newmergelist);
&checkmatch('done mark','m_done',length($data->{done}) ? 'done' : 'open',@newmergelist);
&checkmatch('owner','m_owner',$data->{owner},@newmergelist);
+ &checkmatch('summary','m_summary',$data->{summary},@newmergelist);
+ &checkmatch('affects','m_affects',$data->{affects},@newmergelist);
foreach my $t (split /\s+/, $data->{keywords}) { $tags{$t} = 1; }
foreach my $f (@{$data->{found_versions}}) { $found{$f} = 1; }
foreach my $f (@{$data->{fixed_versions}}) { $fixed{$f} = 1; }
$data->{keywords}= join(' ', keys %tags);
$data->{found_versions}= [sort keys %found];
$data->{fixed_versions}= [sort keys %fixed];
- my @field_list = qw(forwarded package severity blocks blockedby owner done);
+ my @field_list = qw(forwarded package severity blocks blockedby owner done affects summary);
@{$data}{@field_list} = @{$master_bug_data}{@field_list};
&savebug;
}
%limit_pkgs = ();
print {$transcript} "Not ignoring any bugs.\n\n";
}
+ } elsif (m/^affects?\s+\#?(-?\d+)(?:\s+((?:[=+-])?)\s*(\S.*)?)?\s*$/i) {
+ $ok++;
+ $ref = $1;
+ my $add_remove = $2 || '';
+ my $packages = $3 || '';
+ $ref = $clonebugs{$ref} if exists $clonebugs{$ref};
+ $bug_affected{$ref} = 1;
+ eval {
+ affects(bug => $ref,
+ transcript => $transcript,
+ ($dl > 0 ? (debug => $transcript):()),
+ requester => $header{from},
+ request_addr => $controlrequestaddr,
+ message => \@log,
+ recipients => \%recipients,
+ packages => [splitpackages($3)],
+ ($add_remove eq '+'?(add => 1):()),
+ ($add_remove eq '-'?(remove => 1):()),
+ );
+ };
+ if ($@) {
+ $errors++;
+ print {$transcript} "Failed to give $ref a summary: $@";
+ }
+
} elsif (m/^summary\s+\#?(-?\d+)\s*(\d+|)\s*$/i) {
$ok++;
$ref = $1;
# -*- mode: cperl;-*-
# $Id: 05_mail.t,v 1.1 2005/08/17 21:46:17 don Exp $
-use Test::More tests => 72;
+use Test::More tests => 78;
use warnings;
use strict;
status_key => 'summary',
status_value => '',
},
+ affects => {command => 'affects',
+ value => 'foo',
+ status_key => 'affects',
+ status_value => 'foo',
+ },
+ noaffects => {command => 'affects',
+ value => '',
+ status_key => 'affects',
+ status_value => '',
+ },
close => {command => 'close',
value => '',
status_key => 'done',