フロッピーディスクの残骸

フロッピーディスクを分解するのって楽しいよね

レビューをアサインするhubot-reviewer-lottoを使ってみた

レビューを回したいという要望があり、指名スクリプト的なものほしいよねってことでhubot-reviewer-lottoを入れてみました。

HUBOT_GITHUB_TOKEN
HUBOT_GITHUB_ORG
HUBOT_GITHUB_REVIEWER_TEAM
HUBOT_GITHUB_WITH_AVATAR

上記を環境変数に登録するのだけれど、HUBOT_GITHUB_REVIEWER_TEAMはTEAM IDを入れる。 (ドキュメントちゃんと読んでなくて、チーム名入れてたよ^^;)

環境構築

  • hubotのインストール
$ npm install -g yo generator-hubot
$ yo hubot
$ ? Owner --> 328
? Bot name --> test
? Description --> test bot
? Bot adapter campfire --> 何も入力せずEnter
  • 動作テスト
$ bin/hubot
test> test ping
test> PONG  #botから返ってきたらOK
  • hubot-reviewer-lottoを入れる
$ npm i --save hubot-reviewer-lotto
$ vim external-scripts.json
-> "hubot-reviewer-lotto"を追記
$ vim ~/.zshrc
export HUBOT_GITHUB_TOKEN=hogehogehoge
export HUBOT_GITHUB_ORG=hoge
export HUBOT_GITHUB_REVIEWER_TEAM=111111
export HUBOT_GITHUB_WITH_AVATAR=0
$ exec $SHELL

Githubのtokenは事前に作成しておいてくださいね。 Githubのページから Settings -> Personal access tokens で作成できます。

  • チームIDがわからない場合
$ curl -u 自分のアカウント:TOKEN https://api.github.com/orgs/ORGANIZATION/teams

上記コマンドを発行後、 ORGANIZATION内のチームに関する情報がjsonで返ってきますので、 レビューを行うチームのIDを控えて、HUBOT_GITHUB_REVIEWER_TEAMに登録してください。

  • 動作テスト
$ bin/hubot
hubot> hubot reviwer for REPO PULLREQUESTID
例) hubot review for helloworld 1

これで、GITHUB_REVIEWER_TEAM内の誰かにアサインしてくれます。

Slackとの連携

Slackとの連携部分は結構簡単で、
事前にhubotのインテグレーションを設定してtokenを発行し、zshrcに書くだけ

export HUBOT_GITHUB_TOKEN=xxxxxxx

んで、

$ npm install hubot-slack
$ bin/hubot --adapter slack

とやるだけでOKです。

問題点

SlackとGithubのアカウント名が違う場合、ちょっと厄介です。
どこかでマッピング作業をやる必要があります。

とこんな感じでしょうか。

おまけ

slackでコマンドを発行した場合、
自分宛にメンションがつくのでここは不要かなと思い、
forkして自分仕様にカスタマイズしました(^o^)

GitHub - 328--/hubot-reviewer-lotto: A reviewer lottery script for Hubot