backlogのタイムラインをYammerにポストするツールを作ったよ!

みんなが何やってるかをメールで追いかけるのは面倒だし、ブラウザでbacklog見に行くのも面倒だしって訳で作ってみたよ。

https://github.com/cynipe/backlog-streamer

出来ること

  • BacklogAPIのgetTimelineした結果を延々とYammerの特定グループに垂れ流す
  • 登録者、担当者にメンションを飛ばす
    • 更新者と同じ場合は無視
    • YammerとBacklogのユーザ名が同じ必要はある
  • Readmineのウォッチ機能的な感じでメンションを飛ばす
    • 後述の"作った後に気づいたおまけ機能"を参照

使い方

$ git clone https://github.com/cynipe/backlog-streamer.git
$ cd backlog-streamer
$ vim config/config.yml

で、こんな具合に設定。

backlog:
  space: my-space
  user: user
  pass: xxxx
yammer:
  consumer_key: xxxxxxxxx
  consumer_secret: xxxxxxxx
  oauth_token: xxxxxxxx
  oauth_token_secret: xxxxxxxx
  group: group-name-to-post
  notifies_to:
    - user1
    - user2
    - user3

どうも世の中メンションが鬱陶しいという人のほうが多いようなので、そういう場合はnotifies_toオプションにメンションされたい人のユーザ名を列挙してください。ない場合は問答無用でメンションを投げます。

設定ができたら以下のコマンドでdaemonとして起動できます。

$ bundle
$ bundle exec bin/backlog-streamer start

daemon-spawnを使っているので多重起動防止とかもちゃんと出来てます。なので定期的にstartコマンドを叩いてれば知らない間に死んでるってことも回避できます。daemon-spawn超べんり!

作った後に気づいたおまけ機能

backlog上に書いた内容がそのままポストされるので、Backlogでは実現出来ないRedmineにおけるウォッチ機能的なものを実現することができます。

これをやるにはただ単純にbacklogでコメントなどする際に@cynipeとかなノリでyammerのメンション記法を合わせて記載しておけば勝手にメンションしてくれます。これはこのツールそのものの機能ではないので、前述したnotifies_toオプションに関係なくメンションが飛ばせます。地味に便利!

今後やりたいこと

  • 課題の担当者をタイムラインに常に含める
  • 返信するとBacklogにコメント書いたり、ステータスを変えたりする機能
    • hubotでやった方が良いかしら?
  • ソースを綺麗にしたい
  • テスト書けテスト

まぁ、このツールを使う人はかなり限られた人になると思うので便利がる人はいないんだろうな〜と思いつつ、もしそんな奇特な方がいらっしゃいましたら何らかのフィードバックをいただけるとありがたいです!
もちろんPull Requestとか超うぇるかむ。