TIGの伊藤真彦です。
私のチームではタスク管理でバックログを使っています。
タスクのカテゴリ、マイルストーンやそれらを組み合わせた検索機能が充実している事や、タスクを入力するとバーンダウンチャートが自動で出来上がるところなど素晴らしいツールだと思っています。
チケット消化に貢献すると褒めてくれるのも良いですね。
さてチケット管理を行うとチケットを監視する仕事が産まれますが、それをある程度自動化するためのツールを作成しました。
backlogslackify
リポジトリはこちらです。
https://github.com/future-architect/backlogslackify
未完了のBacklogチケットの存在をSlackに通知するツールです。
Slackと連携するものをslackifyと呼ぶのはRuby on Rails開発者時代にお世話になったcapistrano-slackifyを真似ています。
READMEに記載していますが、未完了のBacklogチケットのURL、リンク、担当者を画像のようにSlackに投稿してくれます。
GoでBacklogチケットを取り扱うロジックは公式ドキュメントにも紹介されている事から、kenzo0107さんのライブラリを安心して利用でき、仕事の片手間にササっと作ることができました、ありがとうございます。
設定方法
詳細な使用方法はREADMEに記載されていますので、補足資料として必要な情報を記載します。
Configについて
// ClientOption is input options to build client |
コードに書いている通りですが、BacklogのAPIを実行するための各種設定、Slackに投稿するための各種設定、検索するチケットの設定を行います。チケットの検索条件にヒットしたもののうち、期限日がBacklogDueDate
で設定した日数、またはweekend
にした場合週末を超過した場合、そのチケットが通知対象に追加されます。
きちんと期限日を設定しないとどれだけ放置されても検知できませんのでご注意ください。設定の内容を整備したら、適宜手動で実行するか、任意のアーキテクチャで定時バッチとして実行する使い方を想定しています。
BacklogのAPIキーの取得方法
公式のリファレンスを参照してください
Slackの連携URL
Slackとの連携にはIncoming Webhooksを利用しています。公式ドキュメントはこちらです。
チケットの検索条件について
Backlogの課題取得APIを実行しています。
APIリファレンスはこちらです。ProjectIDs
、CategoryIDs
あたりがあれば実用充分だとは思いますが、APIで使えるものは何でも絞り込みに利用できます。絞り込みたいCategoryIDs
を知りたい場合は、実際にBacklogでチケットを検索するとブラウザのアドレスバーに表示されています。
実際に使ってみての感想
毎朝9時にbotを動かすようにしました。
Slackに投稿されると何が嬉しいかというと、画像のようなノリで楽に終わってないチケットにツッコミを入れることができます。
未完了のチケットを調べて、誰の担当になっているかを確認して、適宜終わっているか確認するのは単純に手間がかかるだけでなく、急かしているような印象を与えないための配慮など、人対人のコミュニケーションには時間とスタミナを奪われがちです。
こういったものはなるべく自動化していきたいですね。
OSSにしたことでどこかで利用いただければ嬉しいです。