ruboty に部屋ごとのエイリアスを作れる、 ruboty-scoped_alias 作った

ruboty 便利に使ってますか?僕は便利です!

そんな ruboty にコマンドの別名をつけられる ruboty-alias という gem があり、大変便利なのですが、この alias が全体適用なのを不満に思っていました。

具体的にどう不満かといえば、とある部屋(例えば #ruboty)で発言する restart と、別の部屋(たとえば #staging-db)での restart は取り扱いを変えてほしい、と思っていたからです。基本、コマンドが長くなりがちなところを短くするためなんかに alias 機能を使うので、発言の文脈で挙動が変わって欲しいよね、と思った次第ですね。

ということで、それが出来るなら万々歳!と思い至って作りました、 ruboty-scoped_alias です。

基本的な操作方法は、旧来の ruboty-alias と変わりません。 scoped という prefix が逐一付いているだけです。

例:

add scoped alias [from] -> [to]

これ以上の解説も特にないので、本当に紹介だけになりそうなので、 zeny での活用例を少し書いておきます。

zeny.io での scoped alias

zeny.io の Slack 上には ruboty が一台、 heroku の Dyno 上で稼働しています。また、別だての小さな Web アプリケーションも heroku の Dyno 上で稼働しています。

なので、 ruboty 部屋(#ボット名)での restart は ruboty の Dyno の再起動に alias が振られており、別アプリケーションの部屋(#サービス名)での restart は別 Dyno の再起動に alias が振られています。

ChatOps はなんの作業をしたのかが部屋のログとして残る点も大いに重要なので、『短く簡単に実行するにはその部屋で行う必要がある』という制約として機能する点も、この scoped alias を気に入っている点です。

とまぁ簡単な例でしたが。もしよければ使ってもらえると幸いです。

それでは!