GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方:チャットボットでチーム開発効率化入門(1)(2/2 ページ)
GitHub社が開発しているbotフレームワークHubotを使ってチャットアプリ上でチーム開発をいかに効率化していくかを解説していきます。初回は「ChatOps」の有用性とHubotの概要、セットアップ方法、OSSのチャットアプリとの連携方法について。
チャットアプリとHubotを連携する
Hubotと連携可能なチャットサービスは多々ありますが、今回は、「Kandan」というOSSのチャットアプリを利用する方法を紹介します。とはいえ、サービスとして提供されているHipChatやSlackなどは品質が高く、簡単に利用開始でき、運用の手間も掛からないので、特別な理由がない限りはチャットサービスの利用を検討することをお勧めします。
Kandanのソースコードは下記GitHub上から入手できます。
チャットアプリ環境の構築
最新のKandanだと、deviseなどのGemのバージョンが上がってしまい、うまく認証が機能しなかったので「v1.2」時点のタグをチェックアウトし、進めていきます。
$ git clone https://github.com/kandanapp/kandan.git $ cd kandan $ git checkout v1.2 $ sudo apt-get install ruby1.9.1-dev ruby-bundler libxslt-dev libxml2-dev libpq-dev libsqlite3-dev gcc g++ make nodejs
$ gem install execjs
今回は手順簡略化のため、Database adapterをPostgreSQLからSQLiteに変更し、bundlerでGemをインストールします。developmentとtestのGemは不要なので、除外してインストールしました。
$ vim Gemfile
# Database adapters -gem 'pg' +gem 'sqlite3'
$ bundle install --without development test
DBはSQLiteを使うことにしたので、vimを軌道して「database.yml」に以下を追加します。
$ vim config/database.yml
production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000
以下のコマンドでデータベースを作成します。
$ RAILS_ENV=production bundle exec rake db:create db:migrate kandan:bootstrap
「config.serve_static_assets」の値を「true」にしてプリコンパイルを有効にし、プリコンパイルを実施しておきます。
$ vim config/environments/production.rb
# Disable Rails's static asset server (Apache or nginx will already do this) - config.serve_static_assets = false + config.serve_static_assets = true
$ RAILS_ENV=production bundle exec rake assets:precompile
チャットアプリの動作確認
ここまででチャットアプリを起動する準備が整いましたので、起動しましょう。
$ bundle exec thin start -e production
起動後、ユーザーサインアップすると以下のように表示されます。
ちなみに、管理者アカウントはデフォルトで「Admin」、パスワードは「kandanappadmin」です。
Hubotとつなぐためのアクセスキーを取得
次に、KandanにHubotアカウントを作成し、Hubotとつなぐためのアクセスキーをあらかじめ取得しておきます。
# Hubotアカウント作成 $ RAILS_ENV=production bundle exec rake kandan:boot_hubot # アクセスキー取得 $ RAILS_ENV=production bundle exec rake kandan:hubot_access_key Your hubot access key is YOUR_KANDAN_ACCESS_KEY
アダプターでHubotとチャットアプリの連携
HubotとKandanを連携するのに「hubot-kandan」というKandan用アダプターを利用します。
Kandanに合わせ、動作が確認できているv2.4.7のHubotを取得し、環境を構築します。
$ wget https://github.com/github/hubot/archive/v2.4.7.zip $ unzip v2.4.7.zip $ cd hubot-2.4.7 $ npm install $ make package $ cd hubot $ git clone https://github.com/kandanapp/hubot-kandan.git node_modules/hubot-kandan $ npm install faye $ npm install ntwitter
起動時に「Invalid version: "1.0"」とエラーが出てしまうので、「node_modules/hubot-kandan/package.json」の「"version"」を「"1.0.0"」に修正します。
"name": "hubot-kandan", - "version": "1.0", + "version": "1.0.0", "author": "kandan",
Kandanと連携するための環境変数を設定します。
export HUBOT_KANDAN_HOST=YOUR_KANDAN_HOST # Portが80以外であれば設定する export HUBOT_KANDAN_PORT=YOUR_KANDAN_PORT # 先ほど取得したアクセスキー export HUBOT_KANDAN_TOKEN=YOUR_KANDAN_ACCESS_KEY # info以外に設定する場合 export HUBOT_LOG_LEVEL=debug
adapterに「kandan」を指定して実行します。
$ ./bin/hubot -a kandan
Hubotがチャットに参加したら、こうなる
先ほど起動したKandanにアクセスすると、Hubotがチャットに参加しているのが確認できます。
「@hubot pug me」でHubot宛てにパグ画像を要求したり、「ping」「ship it」などを投稿し、Hubotが反応するか確認してみましょう。
次回からは、HubotをGitBucketやJenkinsなどと連携
今回は、HubotのインストールからOSSのチャットアプリをインストールし、チャット上からHubotと対話するまで行いました。
次回からは、もう少し実践的に、HubotをGitBucketやJenkinsなどと連携させて、Hubotを中心とした開発スタイルを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- iOSアプリ開発でもCI/継続的デリバリしようぜ(終):Jenkins+HipChat+Hubotをチーム開発に導入してお手軽CI
現代の開発現場において欠かせないCI/継続的デリバリを、iOSアプリ開発に適用するためのツールやノウハウを解説する連載。最終回は、Jenkinsと連携させやすいチャットツールHipChatやBotフレームワークHubotを組み合わせてCIをより効率的に回す方法について解説します。 - 安藤幸央のランダウン[60]:GitHubをもっとソーシャルに使いこなすための7つ道具
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。Gist、GitHub Pages、Binpress、fluxflex、 Janky、Hubot、Travis CI、GitHub Watchersなどが注目だ