えいのうにっき

a-knowの日記です

slack に ruboty を住まわせてみるついでに GitHub Sync を試してみた

晦日

今日は個人的に楽しみにしていた ruboty で遊んだので、その記録をする。ruboty とは、Ruby 製の Hubot クローン。

前提

  • 自分しか join していない slack アカウント・チームがある
  • Deploy to heroku ボタンもあるけど、fork してそれをデプロイすることにする

ゴール

  • Ruby製HubotクローンのRubotyをSlackで動かす を参考に、上記 slack に ruboty を住まわせる
  • ただ住まわせるだけではつまらないので、簡単な会話ができたりすると嬉しい!
  • また、ruboty plugin(gem)の追加の都度 heroku へのデプロイをするのも面倒なので、GitHub Sync も試してみたい

やったこと

1. slack への設定・bot 用 slack アカウントの作成

まずは、XMPP Gateway の有効化。

f:id:a-know:20141231124748p:plain

んで、bot 用 slack アカウントの作成。

f:id:a-know:20141231124813p:plain

はい。 slack に作ってるチームが shitemil なので、bot の名前は milmil ちゃん。アイコンはしばけん。

2. ruboty を fork して clone

GitHub - r7kamura/ruboty-template: A template to create and deploy your ruboty on slack. を fork、それを git clone する。

3. heroku に deploy

$ heroku create --app milmil
$ git push heroku master
$ heroku addons:add redistogo

4. 環境変数を設定

app.json に書かれているような環境変数をそれぞれ設定していく。

f:id:a-know:20141231124917p:plain

パスワードは XMPP Gateway用パスワード、らしい。 Account > Settings > Gateways から見れる。

f:id:a-know:20141231124937p:plain

5. Dynos を設定

これも Ruby製HubotクローンのRubotyをSlackで動かす にある通り。

6. 話しかけてみる

f:id:a-know:20141231125005p:plain

...きゃわわ!

7. master へ push したら heroku にも push(deploy)されるようにする

いわゆる GitHub Sync。まだベータ版ということだけど、今回みたいなゆるい用途にはちょうどよさげ。

$ heroku labs:enable github-sync

そして当該 heroku app の Code タブを見てみると、下記のようになっている。

f:id:a-know:20141231125033p:plain

見ると、Deploy changes with GitHub とある。それそれ!Connect to GitHub をポチッとな。

認証後、fork した ruboty-template のリポジトリと connect。

f:id:a-know:20141231125058p:plain

なんかいくつかでてきたけど、今回は真ん中の Automatic deploys が目的。

f:id:a-know:20141231125112p:plain

なので、そこにあるボタンを押す。

f:id:a-know:20141231125129p:plain

よし。 GitHub 側の webhook のところにも変化が。

f:id:a-know:20141231125141p:plain

これの動作確認も含めて、"ruboty と会話をするための変更" を master に対して行ってみよう。

8. ruboty とお話できるようにする

といっても難しいことは何一つなく、GitHub - r7kamura/ruboty-talk: Talk with you if given message didn't match any other handlers. の gem を使えばいいだけ。 ただこれが docomo の 雑談会話API を使っているので、そのAPI KEY だけ、取得し環境変数 DOCOMO_API_KEY に設定しておく。

https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_docs_id=3

gem を追加する PR を作成し、マージしてみる。

...これで、いいんだよな。 おもむろに heroku logs してみる。

2014-12-31T03:35:57.645118+00:00 heroku[api]: Deploy d22daa1 by a.know.3373
2014-12-31T03:35:57.645201+00:00 heroku[api]: Release v11 created by a.know.3373
2014-12-31T03:35:57.879896+00:00 heroku[bot.1]: State changed from up to starting
2014-12-31T03:36:00.227922+00:00 heroku[bot.1]: Starting process with command `bundle exec ruboty`

お、なんだかよさげ! bot に話しかけてみる。

f:id:a-know:20141231125323p:plain

...きゃわわ!!



follow us in feedly