Help us understand the problem. What is going on with this article?

heroku上でデプロイしたhubotをslack連携させる

More than 5 years have passed since last update.

今日のお題を使ってこれからCI環境を作りたいと思ってますので、今回は準備編ということでheroku上にhubotをデプロイしてslack連携までやってみます。

github上にhubotリポジトリ作成

herokuで展開するのでローカルで以下のように作っていきます

$ npm install -g yo generator-hubot
$ mkdir ligzo
$ cd ligzo
$ yo hubot
#対話式の中で最後のadapterにslackと返答すると、Procfileに以下の記述が追記され、slack上で使うadapterの設定の記述もしてくれます。
web: bin/hubot -a slack -n ligzo

hubotを起動します

$ bin/hubot
#警告が出ましたが、動いています。
npm WARN package.json hubot-maps@0.0.0 No repository field.
Hubot> hubot ping
Hubot> PONG

githubに上げる前にローカルコミットしておきましょう

$ git init
$ git add .
$ git commit -m "Initial commit"

github上でリポジトリ作成
web上で作成します.
今回はligcoで作成しました。

先ほどのローカルのリポジトリにremoteaddします。

$ git remote add origin https://github.com/nakamura-daiki/ligco.git
$ git push -u origin master

公開鍵を登録しないといけませんでした。
web上でdeploykeyを登録しますが、その前にローカルで鍵を作成します。

$ ssh-keygen -t rsa
#鍵の名前を何でもいいので入力して作成します。
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/{作った鍵}
$ pbcopy < ~/.ssh/{作った鍵}.pub

web上で登録します.
画像
add Deploy keyからコピーしたキーを登録します。

再度pushします

$ git push -u origin master

とりあえず準備OKです。

herokuにデプロイ

https://toolbelt.heroku.com/ここからHeroku Toolbeltをダウンロードしてインストールします。
ローカルのターミナルで操作します。

$heroku login
#登録したメールアドレスとパスワードを入力します。
$heroku create ligzo-bot
# heroku上に鍵を登録します
$ heroku keys:add
#これでherokuにpushできます。
$ git push heroku master 

環境変数を登録します
herokuのwebコンソールからも編集できます。
環境変数の一覧はこちらhttps://github.com/tinyspeck/hubot-slack必要なのはこんなところでしょうか。

$ heroku config:add HUBOT_SLACK_TOKEN={}
$ heroku config:add HUBOT_SLACK_TEAM={}
$ heroku config:add HUBOT_SLACK_BOTNAME={}
$ heroku config:add HUBOT_SLACK_CHANNELS={}
$ heroku config:add HEROKU_URL={}

LIGのメンバーをherokuのリポジトリにcollaborator登録しておきます。
画像

slack連携

Configure Integrationsからhubotを選択して登録します。
ここで表示されるトークン等を上記のheroku configureで登録していきます。
herokuのwebコンソールで表示されているドメインをHubot URLに登録してSave Integrationします。
画像

呼んでみる

画像
成功したみたいです。

ktkt
liginc
上野でウェブ制作を行うクリエイティブ集団です。HP制作、プロモーション、システム開発等を行っています。
https://liginc.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away