数あるIssue管理システムがたくさんあるが、JIRAだの、Redmineだなの、Trelloだのあるし、 Github issueにZenHubを利用するのが最近のホットなツールかも知れないね。
うちの会社では、非エンジニアでも入力しやすさを重視して、Backlogを利用している。
Backlogは、RedmineっぽいののSaaSを会社で使っている
それのバーンダウンチャートがどうも会社で使っている方式と合わない。 おまけにバーンダウンチャートは高めのプランでしか使えない、 そこでいままでGem作ったこともなかったしラッパーライブラリを作って自前でバーンダウンチャートを作ることにした。
幸いRESTFulなWebApiをサービスの開発者とのNulabさんが公開している。 Backlog APIドキュメント これを薄くラップしたものを作成した。
Gemの公開方法は一つ前のポスト konyu.hatenablog.com
作ったものはこちら
rubygmes (https://rubygems.org/gems/backlog_v2_4r) Github (https://github.com/konyu/backlog_v2_4r.rb)
BacklogのAPIキーの取得方法
BacklogのAPIを利用するためには、OAuth認証か、APIキーを使ってアクセスする。 今回作成したGemでは手軽にAPIキーを利用する方式をとった
では、そのBacklogのAPIキーを取得する手順を記載にする
Backlogにログインして、右上の個人設定のリンクをクリック
個人設定のメニューからAPIを選択
メモ欄に、わかるようなメモを入れて登録ボタンを押下すると、APIキーが生成される。これを利用することになる。
Gemのインストールの仕方
Gemfileに追記する
gem install backlog_v2_4r
以上おしまい。普通にrubygemsからインストールされる。
使い方
初期化
BacklogApiオブジェクトを、先ほど作ったAPIキーを指定して生成する
backlog_api = BacklogApi.new(api_key: api_key_xxxxxxxxxxxx) # 定数とか、環境変数を使うのをおすすめする backlog_api = BacklogApi.new(api_key: ENV["API_KEY"])
プロジェクトを取得する
backlog_api.projects # jsonをパースしたハッシュが返ってくる
チケットを探す
パラメータをハッシュで指定してデータを取得する Backlog API Document課題一覧の取得に基づいたパラメタで指定する
パラメタ名がprojectId[]の用に配列っぽい空気を出しているものは、配列で指定してもデータを取得できる
backlog_api.issues({ "projectId[]" => project_id, "count" => 10 }) # jsonをパースしたハッシュが返ってくる # チケットをあるプロジェクトの特定のマイルストーンをチケット作成順にソートして取得する例 backlog_api.issues({ "projectId[]" => xxxx, "milestoneId[]" => xxxxx, "sort" => "created", "order" => "asc" })
こんな感じでD3.jsのラッパーxchartsをつかったサンプルはこんな感じでグラフにできる