LoginSignup
43
40

More than 5 years have passed since last update.

Hubotにお願いしてPull Requestの一覧を表示

Last updated at Posted at 2014-08-25

Hipchat(Slack)上でHubotを使い、開発中のレポジトリでOpenしているPull Requestの一覧を取得する。

準備

手順

hubot-scripts

GitHub社が公式でHubotスクリプト集を公開している。

その中の、hubot-scripts/github-pulls.coffee を利用する。

Hubotインストール時に上記スクリプト群は同梱されている(/path/to/hubot/node_modules/hubot-scripts/src/scripts/以下)ので、利用する際はhubot-scripts.jsonに利用するスクリプトの名前を追記していけば良い。

/path/to/hubot/hubot-scripts.json
[..., "github-pulls.coffee"]

githubot

github-pulls.coffeeは、githubotという外部モジュールに依存している。
iangreenleaf/githubot

このgithubotは、GitHub APIを簡単に扱えるNode.js用ラッパーで、HUBOT_GITHUB_TOKENという環境変数にGitHubのアクセストークンを設定すれば利用可能。

例えば、

example.coffee
github = require('githubot')
github.get 'https://api.github.com/user/repos', { type: 'private' }, (repos) ->
  console.log repos[0].name

のように書けば、ユーザーが管理しているプライベートリポジトリの情報を取得することができる。詳しくはREADME参照。

ということで、利用するためにインストールしておく。

$ npm install githubot --save

レポジトリのPull Request一覧をチャット上で表示

ここまで来たら手順としてはほぼ完了している。github-pulls.coffeeを確認しつつ、追加で環境変数を設定すれば良い。とりあえず必要なのは、

  • HUBOT_GITHUB_TOKEN(先ほど述べたやつ)
  • HUBOT_GITHUB_USER

の2つ。HUBOT_GITHUB_USERにはGitHubでのユーザー名を入れる。

$ export HUBOT_GITHUB_TOKEN = <トークン>
$ export HUBOT_GITHUB_USER = <GitHubのユーザー名>

このあとHubotを再起動すれば完了。

Hubotにお願いするコマンドは、

$ hubot show [me] <レポジトリ名> pulls

実際にチャット上で実行すると、

> hubot show hogehoge pulls
> I found 5 open pull requests for <ユーザー名>/hogehoge
  (略)

といった感じで、現在open中のPR一覧がURL付きで表示される。

ちなみに、github-pulls.coffeeの中身を覗いてみると、正規表現を使ったPRタイトルの検索もできるようだ。

例えば、

> hubot show hogehoge pulls with WIP

と実行すれば、タイトルに"WIP"が含まれるものだけが表示される。Work in progressのものだけ確認したいときに良いかもしれない。

終わり

こんな感じで、Hubotを利用して簡単にGitHub上の情報を表示したりできる。github/hubot-scriptsには、他にも色々なスクリプトが置いてあるので触ってみると面白そう。

43
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
40