-
Notifications
You must be signed in to change notification settings - Fork 1
/
update-bugzilla.pl
55 lines (46 loc) · 1.5 KB
/
update-bugzilla.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl -w
use WWW::Mechanize;
use Data::Dumper;
my ($user, $password, $version, $tag) = @ARGV;
my $agent = WWW::Mechanize->new();
$agent->get('http://bugs.koha-community.org/bugzilla3/');
$agent->follow_link(text => 'Log In', n => '1');
$agent->form_name('login');
$agent->tick('Bugzilla_restrictlogin', 'on');
$agent->field('Bugzilla_password', "$password");
$agent->field('Bugzilla_login', "$user");
$agent->click('GoAheadAndLogIn');
my @git_log = qx|git log --pretty=format:'%s' $tag..$HEAD|;
my @bugs = ( );
foreach (@git_log) {
if ($_ =~ m/([B|b]ug|BZ)?\s?(?<![a-z]|\.)(\d{4})[\s|:|,]/g) {
# print "$&\n"; # Uncomment this line and the die below to view exact matches
push @bugs, $2;
}
}
my @problems;
my $branch = 'rel_3_6';
foreach my $bug (@bugs) {
my $change = 0;
$agent->form_number(1);
$agent->field('quicksearch', $bug);
$agent->click();
$agent->form_name('changeform');
my $status = $agent->value('bug_status');
if ($status eq 'Pushed to Master') {
$agent->field('bug_status', 'Pushed to Stable');
$change = 1;
}
if ($status eq 'RESOLVED' || $status eq 'Pushed to Stable') {
$change = 1;
}
$agent->field('comment', "This bug will be included in the Koha $version release.");
$change = 0 unless $agent->value('version') eq "$branch";
if ($change) {
$agent->click();
print "Changing $bug ($status)\n";
} else {
push @problems, $bug;
}
}
print "Bugs to check: @problems\n";