気ままなつぶやき

おべんきょしたこととか

Hubotと戯れる

Hubotインストール

$yum install npm
$yum install nodejs

バージョンはこんな感じ

$node --version
v0.10.28
$npm --version
2.5.0

で、必要なモジュールとか入れる

#npm install coffee-script hubot -g 
#npm install -g yo generator-hubot

で、このままhubot動かそうとするとやたら権限まわりで怒られる。

良く見ると npmでグローバルインストールすると`/usr/lib/node_modules`配下にインストールされてくるんだけど、なんか権限が軒並みこんな感じになってた。 nobody....

ll /usr/lib/node_modules/ | grep hubot
drwxr-xr-x 9 nobody cy_admin 4096  213 18:46 2015 hubot

yumでインストールしたやつは軒並みrootになっているんだけど。。
とりあえず、あとでインストールしたものは、`chown -R root. hubot`みたいに権限を合わせました。

このままでも権限のエラーがでるんだけど、どうやら、実行ユーザのホームディレクトリ配下に `.npm`ディレクトリがあって色々キャッシュしている様子。
この中できっと権限がごちゃごちゃしちゃってるのであろう。。。てことで削除したらひとまず準備完了

hubot起動など

$mkdir chako
$cd chako
$ yo hubot

テスト

$cd chako
$./bin/hubot

Hubot> hubot ping
PONG

hipchatと連携

$cd chako
$npm install hubot-hipchat

これみて設定いれただけ。
hipchat/hubot-hipchat · GitHub

#!/bin/sh

set -e

npm install
export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
export HUBOT_NAME="chako"
export PORT=80

#see https://github.com/hipchat/hubot-hipchat

export HUBOT_ADAPTER="hipchat"
export HUBOT_HIPCHAT_JID="hogehoge@chat.hipchat.com"
export HUBOT_HIPCHAT_PASSWORD="hogepassword"

#optional
export HUBOT_HIPCHAT_ROOMS="hogeroom@chat.hipchat.com,hoge2room@chat.hipchat.com"
#export HUBOT_HIPCHAT_ROOMS_BLACKLIST=""
#export HUBOT_HIPCHAT_JOIN_ROOMS_ON_INVITE=""
#export HUBOT_HIPCHAT_HOST="cyberagent.hipchat.com"
#export HUBOT_HIPCHAT_XMPP_DOMAIN=""
#export HUBOT_LOG_LEVEL="debug"
#export HUBOT_HIPCHAT_RECONNECT=""

exec node_modules/.bin/hubot "$@"

optionalで色々指定できるみたいだけど、特に何も指定していない。
hubot-hipchatは、hipchatに5222ポートで通信しにいくのでサーバからポート空いてるのを確認してれば問題ない

f:id:pnsk:20150308191012p:plain

hubotのスクリプトを使ってみる

github/hubot-scripts · GitHub

カタログがいくつかあるので、楽しそうなのを追加する
Hubot Script Catalog

hubot-scripts.json
に追加すれば良いらしい

ちょっとやってみた

["room-info.coffee","flip.coffee"]

room-infoの方はこんな感じ
hubot-scripts/room-info.coffee at master · github/hubot-scripts · GitHub

f:id:pnsk:20150308194730p:plain
※chako_testというhipchatのroomでやってる


flipの方はこんな感じ
hubot-scripts/flip.coffee at master · github/hubot-scripts · GitHub

f:id:pnsk:20150308194753p:plain

※flipをnpm installした

hubotのスクリプトを書いてみた

GHEのライセンスの利用状況ができるものと、サイズの大きなリポジトリランキング(2GB以上のもの)を表示するスクリプトを書いた。

使ったAPIはこれ
Enterprise | GitHub API
Search | GitHub API

ライセンスのAPIはGHEの2.1から利用できるものらしい


hubot-script/ghe-status.coffee at master · pnsk/hubot-script · GitHub

でたでた
f:id:pnsk:20150310135457p:plain

なんかもっとちゃんと書けそうだけど・・・。いったん。。

ちゃんちゃん。