FS-10372: [Build-System,fs-utils] #resolve
This commit is contained in:
parent
95c7fb0155
commit
50caeda5fe
|
@ -148,6 +148,20 @@ if ($opts{bug}) {
|
||||||
printf "%d file%s attached.\n", scalar @ARGV, scalar @ARGV == 1 ? "" : "s";
|
printf "%d file%s attached.\n", scalar @ARGV, scalar @ARGV == 1 ? "" : "s";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($opts{versions_array}) {
|
||||||
|
$input = {
|
||||||
|
|
||||||
|
update => {
|
||||||
|
fixVersions => [
|
||||||
|
{set => $opts{versions_array}}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$jira->PUT("/issue/" . $opts{bug}, undef, $input);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,6 +241,22 @@ if ($opts{debug}) {
|
||||||
$issue = $jira->POST('/issue', undef, $input) or die "Issue was not created:";
|
$issue = $jira->POST('/issue', undef, $input) or die "Issue was not created:";
|
||||||
print "Issue Posted: " . $issue->{key};
|
print "Issue Posted: " . $issue->{key};
|
||||||
|
|
||||||
|
if ($opts{versions_array}) {
|
||||||
|
$input = {
|
||||||
|
|
||||||
|
update => {
|
||||||
|
fixVersions => [
|
||||||
|
{set => $opts{versions_array}}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$jira->PUT("/issue/" . $issue->{key}, undef, $input);
|
||||||
|
|
||||||
|
print "Fix versions updated for issue " . $issue->{key};;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($opts{attach}) {
|
if ($opts{attach}) {
|
||||||
$jira->attach_files($issue->{key}, @ARGV);
|
$jira->attach_files($issue->{key}, @ARGV);
|
||||||
printf "%d file%s attached.\n", scalar @ARGV, scalar @ARGV == 1 ? "" : "s";
|
printf "%d file%s attached.\n", scalar @ARGV, scalar @ARGV == 1 ? "" : "s";
|
||||||
|
|
|
@ -3,22 +3,55 @@
|
||||||
use XML::Simple;
|
use XML::Simple;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
use Getopt::Long qw(GetOptions);
|
use Getopt::Long qw(GetOptions);
|
||||||
|
use Term::ReadKey;
|
||||||
|
use JIRA::REST;
|
||||||
|
|
||||||
my %opts;
|
my %opts;
|
||||||
|
|
||||||
|
sub getpass {
|
||||||
|
ReadMode( "noecho");
|
||||||
|
print "Password: ";
|
||||||
|
chomp (my $pwd = <STDIN>);
|
||||||
|
ReadMode ("original");
|
||||||
|
return $pwd;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub getfield {
|
||||||
|
my $prompt = shift;
|
||||||
|
my $default = shift;
|
||||||
|
|
||||||
|
print $prompt . ($default ? "[$default]: " : "");
|
||||||
|
chomp (my $data = <STDIN>);
|
||||||
|
|
||||||
|
if (!$data) {
|
||||||
|
$data = $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
GetOptions(
|
GetOptions(
|
||||||
'bug=s' => \$opts{bug},
|
'bug=s' => \$opts{bug},
|
||||||
'msg=s' => \$opts{msg},
|
'msg=s' => \$opts{msg},
|
||||||
|
'user=s' => \$opts{user},
|
||||||
|
'pass=s' => \$opts{pass},
|
||||||
'debug' => \$opts{debug},
|
'debug' => \$opts{debug},
|
||||||
'noresolve' => \$opts{noresolve},
|
'noresolve' => \$opts{noresolve},
|
||||||
'append=s' => \$opts{append},
|
'append=s' => \$opts{append},
|
||||||
'comment=s' => \$opts{comment},
|
'comment=s' => \$opts{comment},
|
||||||
'author=s' => \$opts{author}
|
'versions=s' => \$opts{versions},
|
||||||
) or die "Usage: $0 -bug <bug-id> [-m [edit|<msg>]] [-append <msg>] [-debug] <files>\n";
|
'author=s' => \$opts{author},
|
||||||
|
'auth' => \$opts{auth}
|
||||||
|
) or die "Usage: $0 -bug <bug-id> [--auth] [-m [edit|<msg>]] [--append <msg>] [--debug] <files>\n";
|
||||||
|
|
||||||
|
|
||||||
$opts{bug} or $opts{bug} = shift;
|
$opts{bug} or $opts{bug} = shift;
|
||||||
|
|
||||||
|
if ($opts{versions}) {
|
||||||
|
$opts{auth} = 1;
|
||||||
|
$opts{versions_array} = [map {{name => $_}} split(" ", $opts{versions})];
|
||||||
|
}
|
||||||
|
|
||||||
my $url = "https://freeswitch.org/jira/si/jira.issueviews:issue-xml/$opts{bug}/$opts{bug}.xml";
|
my $url = "https://freeswitch.org/jira/si/jira.issueviews:issue-xml/$opts{bug}/$opts{bug}.xml";
|
||||||
my $cmd;
|
my $cmd;
|
||||||
my $prog = `which curl` || `which wget`;
|
my $prog = `which curl` || `which wget`;
|
||||||
|
@ -27,38 +60,73 @@ my $post = " \#resolve";
|
||||||
|
|
||||||
chomp $prog;
|
chomp $prog;
|
||||||
|
|
||||||
$prog || die "missing url fetch program, install curl or wget";
|
if ($opts{auth}) {
|
||||||
|
if (!$opts{user}) {
|
||||||
|
$opts{user} = getfield("User: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$opts{pass} && !$opts{debug}) {
|
||||||
|
$opts{pass} = getpass();
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$jira = JIRA::REST->new('https://freeswitch.org/jira', $opts{user}, $opts{pass}) or die "login incorrect:";
|
||||||
|
$issue = $jira->GET("/issue/FS-7985") or die "login incorrect:";
|
||||||
|
|
||||||
|
my $issue = $jira->GET("/issue/" . $opts{bug});
|
||||||
|
|
||||||
|
$component = join(",", map {$_->{name}} @{$issue->{fields}->{components}});
|
||||||
|
$summary = $issue->{fields}->{summary};
|
||||||
|
|
||||||
|
|
||||||
|
if ($opts{versions_array}) {
|
||||||
|
$input = {
|
||||||
|
|
||||||
|
update => {
|
||||||
|
fixVersions => [
|
||||||
|
{set => $opts{versions_array}}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$jira->PUT("/issue/" . $opts{bug}, undef, $input);
|
||||||
|
}
|
||||||
|
|
||||||
if ($prog =~ /wget/) {
|
|
||||||
$cmd = "$prog -O -";
|
|
||||||
} else {
|
} else {
|
||||||
$cmd = $prog;
|
$prog || die "missing url fetch program, install curl or wget";
|
||||||
|
|
||||||
|
if ($prog =~ /wget/) {
|
||||||
|
$cmd = "$prog -O -";
|
||||||
|
} else {
|
||||||
|
$cmd = $prog;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $xml = `$cmd $url 2>/dev/null`;
|
||||||
|
if ($opts{debug}) {
|
||||||
|
print "URL $url\n";
|
||||||
|
print $xml;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $xs= new XML::Simple;
|
||||||
|
my $r = $xs->XMLin($xml);
|
||||||
|
|
||||||
|
my $sum = $r->{channel}->{item}->{summary};
|
||||||
|
$sum =~ s/\"/\\"/g;
|
||||||
|
|
||||||
|
my $component = $r->{channel}->{item}->{component};
|
||||||
|
|
||||||
|
if(ref($component) eq 'ARRAY') {
|
||||||
|
$component = join(",", @{$component});
|
||||||
|
}
|
||||||
|
|
||||||
|
$component =~ s/\"/\\"/g;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $xml = `$cmd $url 2>/dev/null`;
|
|
||||||
if ($opts{debug}) {
|
|
||||||
print "URL $url\n";
|
|
||||||
print $xml;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $xs= new XML::Simple;
|
|
||||||
my $r = $xs->XMLin($xml);
|
|
||||||
|
|
||||||
my $sum = $r->{channel}->{item}->{summary};
|
|
||||||
$sum =~ s/\"/\\"/g;
|
|
||||||
|
|
||||||
my $component = $r->{channel}->{item}->{component};
|
|
||||||
|
|
||||||
if(ref($component) eq 'ARRAY') {
|
|
||||||
$component = join(",", @{$component});
|
|
||||||
}
|
|
||||||
|
|
||||||
$component =~ s/\"/\\"/g;
|
|
||||||
|
|
||||||
if ($opts{noresolve}) {
|
if ($opts{noresolve}) {
|
||||||
$post = "";
|
$post = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($opts{msg} eq "edit") {
|
if ($opts{msg} eq "edit") {
|
||||||
$auto = 0;
|
$auto = 0;
|
||||||
$opts{msg} = undef;
|
$opts{msg} = undef;
|
||||||
|
|
Loading…
Reference in New Issue