RedmineのREST APIを叩いてチケットの情報を見るPerlスクリプト

前回の記事「RedmineのREST APIを叩いてチケットのタイトルを見るワンライナー」は便利なのですが、出力でチケットのステータスをみたいとかになるとごちゃごちゃしてくるのが難点です。
そこでPerlスクリプトにしてみました。
#!/usr/bin/perl
#
# refs : redmineのチケットのタイトルを調べるコマンド
#
# RedmineのREST APIを叩いて情報を得る。
#
# Usage:
#   refs NUMBER
#     NUMBER - チケット番号
#
# Output:
#    stdout:  チケット件名 - ステータス
#
#######################################################
use strict;
use warnings;
use LWP::UserAgent;
use JSON;
use Encode;

my $API_KEY="hitmitsu";

my $id = shift;
if (! $id =~ /^\d+/ ) {
    die "invalid id:" . $id;
}

my $ua = LWP::UserAgent->new;

my $url = "https://redmine.example.com/issues/$id.json";
my $req = HTTP::Request->new(GET => $url);

$req->header("Content-Type" => "application/json");
$req->header("X-Redmine-API-Key" => $API_KEY);
my $res = $ua->request($req);

if ($res->is_success) {
    my $json = JSON->new->decode($res->content);
    # use Data::Dumper; print Dumper $json;
    my $output = $json->{issue}->{subject} . "  -  " . $json->{issue}->{status}->{name};
    print encode('utf8', $output),"\n";
}
else {
    print $res->status_line, "\n";
}
カテゴリ:

人気記事