2016/08/02 10:56:08

「Hubot」+「Slack」+「Heroku」で社内システム用のBotを作ってみた

このエントリーをはてなブックマークに追加

こんにちは。R&Dチームの中平です。
弊社では最近、チーム内で社内勉強会を始めたのですが、いいネタがないか探していたところBotに関する面白い記事を見つけました。

http://qiita.com/s-kiriki/items/4b38af4ebd05bad70eb7

これは社内でも使えそうだ、ということで実際に作ってみました。

HubotにGitHubのプルリクエストを自動でアサインさせる

今回は記事の内容に沿って下記の4つを実施しました。

  • GitHubのWebhook登録&GitHubチームの作成
  • Hubotのスクリプト実装
  • HerokuへHubotアプリのデプロイ
  • Slackへの通知

処理の大まかな流れは以下のようになっています。

① Webhook側で設定したURLに反応
② プルリクのアクションがopenedかreopend以外は何もしない
③ 既にアサインされていたら何もしない
④ チームを指定して、ランダムで1人を選定(この時のチームは、プルリクのマージ先によって切り替える)
⑤ 選定された1人をアサインするようにGitHubAPIを叩く
⑥ アサイン完了したら、その旨をチャット(Slack)に通知

結果

無事に完成しました。今まで手動でコードレビューする人を設定していたので、結構便利です。しかし、喜んだのも束の間、マネージャーの松田より新たな指令が。

(松田)DailyMeetingの司会も自動で抽選できないかな?

・・・はい。やりましょう。ということで次のBotを作成してみました。


Slack上のチャンネルに属しているユーザから自動抽選する

http://qiita.com/esehara@github/items/0774004d8761a5f24a72

処理の大まかな流れは以下のようになっています。
① Slack側のメンションに反応
② チャンネルに属しているユーザからランダムに選択
③ Slackへ通知

結果

こちらも完成しました。チーム内でも実際に使っていて、大活躍しています。

最後に

1つ目の自動アサイン機能については、参考にしたページに設定方法やスクリプトも公開されているので、参考になるかと思います。
2つ目の自動抽選機能については、GitHub上にソースコードを公開したので、興味のある方はご利用ください。

https://github.com/yNakahira/slackbot

今回は社内システム用にBotを作成しましたが、社内勉強会では、テーマは問わず雑多なことを取り扱ったりしています。
例えば...

今後も様々なテーマを扱って、社内のKAIZENをしていきたいと思います。

RD
Page topへ