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