2013年4月25日木曜日

RubyでBacklogの課題の放置対策

スズキです。

よくBacklogを用いてプロジェクト(課題)管理を行うのですが、使ってみると下記のような
課題が、放置気味になりがちです。
  • 担当(assigner)がアサインされていない
  • 期限(due_date)が設定されていない
ということで上記のような課題をRubyで(BacklogのAPIを使って)出力してみました。
※BacklogのAPIの利用は下記でも紹介しています
実際のスクリプトはこんな感じになりました。
$ cat pm.rb
#!/usr/bin/ruby
require "xmlrpc/client"

space       = ARGV[0]
user        = ARGV[1]
password    = ARGV[2]

proxy = XMLRPC::Client.new_from_hash({
    "host"     => space + ".backlog.jp",
    "path"     => "/XML-RPC",
    "port"     => 443,
    "use_ssl"  => true,
    "user"     => user,
    "password" => password
})

proxy.call("backlog.getProjects").each do |project|
    if !["XXX", "YYY", "ZZZ"].include?(project["key"])
        proxy.call("backlog.findIssue", {
            "projectId" => project["id"],
            "statusId"  => [1, 2]
        }).each do |issue|
            if issue["assigner"].nil? then
                puts("NA: " + issue["url"])
            elsif issue["due_date"] == "" then
                puts("NE: " + issue["url"])
            elsif (issue["due_date"].to_i - 2) <= Time.now.strftime("%Y%m%d").to_i then
                puts("ED: " + issue["url"])
            end
        end
    end
end
※「完了」「処理済み」の課題は対象外です。
※スペース上のすべてのプロジェクトの課題を対象にしています。
※現在の日付が期限二日前を切ってる課題も出力しています。

実際に実行すると下記のような感じになります。
$ ./pm.rb space user pass
warning: peer certificate won't be verified in this SSL session
NA: https://space.backlog.jp/view/XXX-1
NE: https://space.backlog.jp/view/XXX-9
NE: https://space.backlog.jp/view/YYY-8
NE: https://space.backlog.jp/view/YYY-7
NE: https://space.backlog.jp/view/ZZZ-4
...

さらに上記で出力した課題数をNagiosで監視してアラート通知すれば...
--------
http://www.suz-lab.com

1 コメント:

匿名 さんのコメント...

You made some good points there. I checked on the internet for more information about the
issue and found most people will go along with your views on this web site.


Feel free to surf to my weblog: get more info