Edited at

HubotとSlackを連携させてHerokuで動かす

More than 3 years have passed since last update.


Pull Requestにランダムでレビューワーを作成するBOTを作ってみた⇦これが最終目標


背景/目的

チームで開発していると、だれがプルリクエストをレビューするかに偏りがでてきます。そしてレビューに偏りが生まれることで、関係がフラットでなくなり、開発に支障をきたすことがあるかもしれません。

そこで今回はSlackのHubotを使って、プルリクエストにランダムでメンバーをアサインするBotを作成しました!

自動化して無駄のない開発を行っていきましょう!!

利用するものは

- Github Webhook

- Slack Hubot

- Heroku

この記事ではスラックでHubotと会話できるところまでを書き、二つ目の記事でGithubと連携部分を書いていきたいと思います。

エンジニアに寿司好きが多いことからこのボットはsushi-shokuninと名付けました!ちなみにアイコンはこちら。

sushi.jpeg


初めにHubotをインストールしよう!!

ますHubotを使うにあったってnode.js, redisが必要です。これらがインストールされてない場合は、まずインストールしてください。

node.jsはここから

redisは以下のコマンドでインストールしましょう!

brew install node redis

忘れないうちにredisを起動しておきましょう。

redis-server &

Hubotのインストールは公式ドキュメントにもあるようにnpmを使ってインストールします。

npm install -g yo generator-hubot

Hubotをインストールすることでhubotコマンドが利用できるようになります。


Hubot のプロジェクトを作成

ではプロジェクトを作成しましょう!

$ mkdir name(僕はsushi-bot)

$ cd sushi-bot
$ yo hubot

yo hubotコマンドでこのディレクトリー内にHubotの環境が構築されます。

最後のBot Adapterは元気にslackと入力してください

Screen Shot 2016-05-29 at 12.32.10 AM.png

エンターを押すと環境構築が始まります!

Screen Shot 2016-05-29 at 12.33.22 AM.png

こんな感じにいっぱいインストールされます(^ ^)

Screen Shot 2016-05-29 at 12.34.06 AM.png

では正常にhubotが動くか確かめてみましょう!

以下のコマンドでhubotを起動できます。

※redisを起動していないとhubotは動かないので注意を



$ bin/hubot

herokuのエラーが出てますが無理でおっけーですー👍🏻

Screen Shot 2016-05-29 at 12.36.13 AM.png

では話しかけてみましょー

botの名前を入力してpingと入力し、PONGと返って来たら成功です!

Screen Shot 2016-05-29 at 12.37.18 AM.png


SlackのAccess-Tokenを取得しよう

ここからintegrationを設定できます!

Screen Shot 2016-05-29 at 12.47.24 AM.png

検索からhubotにいき、hubotのConfigurationsを設定しましょう。

Usernameは好きなものを登録してください。

Screen Shot 2016-05-29 at 12.49.09 AM.png

登録したあとにAPI Tokenが表示されるので、メモっておいてください。


Herokuにデプロイしてスラックから話しかけよう!

ヘロクのインストールはこの記事を参考にしてください!

デプロイの前にライブラリーを追加しておきましょう

$ npm install hubot-slack --save

herokuにデプロイします。

$ git push heroku master

$ heroku ps:scale web=1

Screen Shot 2016-05-29 at 12.55.13 AM.png

slackのセットアップをしていきましょう!

初めにslackのAPI Tokenを登録します!

heroku config:add HUBOT_SLACK_TOKEN=xxx

タイムゾーンにTOKYOをセット

heroku config:add TZ=Asia/Tokyo

rediscloudをHerokuにセット

$ heroku addons:add rediscloud

slackから個人メッセージを送ってみましょう!

pingと送りPONGと返って来たら成功です!!!!

Screen Shot 2016-05-29 at 1.06.49 AM.png

次の記事はGithubのWebhookから初めて行きます。

※botのプロフィール画像はHubotの設定画面から変更可能です!