コンユウメモ @kon_yu

作ったガラクタとか、旅行とかの話

BacklogのAPIのRubyラッパーbacklog_v2_4rを公開(オレが使うAPIの分だけ)

数ある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をつかったサンプルはこんな感じでグラフにできる