レビューをアサインする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