LoginSignup
8
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-05-29

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の設定画面から変更可能です!

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6