share facebook facebook2 twitter menu hatena pocket slack

2013.05.07 TUE

RubyでBacklogの課題の放置対策

鈴木 宏康

WRITTEN BY鈴木 宏康

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で監視し、アラート通知すれば更なる改善につながるように思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。