LoginSignup
28
27

More than 5 years have passed since last update.

ChatworkにGitLabのプッシュやマージリクエストの通知を自動投稿する

Last updated at Posted at 2014-06-14

最近、Chatworkを開発メンバーで使う機会が多く、せっかくなのでGitLabのプッシュ通知なども投稿されたら便利だなというわけで、調べてみたらchabotという素晴らしいものが公開されていたので使ってみた。

前提

  • GitLab
  • Chatwork
  • Heroku

この3つ使う。Herokuはすでに登録済みの前提。

Herokuコマンドラインツールのインストール

HerokuはWebブラウザの管理画面から操作可能だが、ちょっと面倒なのでコマンドラインツールをインストールしておく。

ダウンロードしたら、普通にインストール。

$ heroku login
Enter your Heroku credentials.
Email: 
Password:

これでHerokuにもログイン済みになる。

chabotのインストール

$ npm install chabot -g

超簡単。

chabotの設定

chabotコマンドが使えるようになっているので、chabot createでchabotプロジェクトファイルを生成する。今回は ~/Sites/chabot-sample/ ディレクトリに作った。

$ chabot create chabot-sample -d ~/Sites/ -f
$ cd ~/Sites/chabot-sample
$ git init

続いて、Herokuにアプリ登録をする。これでURLとgitのリポジトリが発行される。

$ heroku apps:create chabot-sample
$ git remote -v
heroku  git@heroku.com:chabot-sample.git (fetch)
heroku  git@heroku.com:chabot-sample.git (push)

chabotの設定ファイル config.json を修正する。

config.json
{
    "port": 5000,
    "bots": {
        "github": {
            "hostname": "chabot-sample.herokuapp.com",
            "token": "【chatworkのAPITOKEN】",
            "route": "/gitlab/hooks/:roomid"
        }
    }
}

hostnameには、heroku createで生成されたホスト名を指定。tokenはChatworkのAPIトークンを指定。なお、ChatworkのAPIは今プレビュー版らしく、申請しないと使えない。

チャットワークAPI(プレビュー版)お申込み

なお、わりとすぐ発行されるけど、一度Chatworkからログアウトしないとメニューに出てこなかった…ので注意。

最後に、nodeを起動するためのProcfileを作成。

web: node app.js

chabotの起動

$ git add .
$ git commit -m 'first commit'
$ git push heroku master

これでHerokuにアプリケーションが転送され、無事chabotが起動する。起動の確認には heroku logs コマンドが便利。

$ heroku logs

GitLabのWebHooksに登録する

プッシュ通知したいGitLabのリポジトリ画面に行き、Settingsメニューを開くと左側に「Web Hooks」というメニューがある。

そこに先ほどHerokuで発行したホスト名 + config.jsonで指定した route のURL + 通知したいChatworkのルームIDを指定する。

今回の例だと http://chabot-sample.herokuapp.com/gitlab/hooks/0000000 こんな感じ。

chabot1.png

なお、ChatworkのルームIDはURL末尾のridを除いた数字のみ。

これにて無事プッシュ通知がChatworkに自動投稿される。

おまけ:マージリクエストとかIssueも通知したい

今回のchabotではプッシュにしか対応していないが、マージリクエストやIssueの通知も行いたかったので、スクリプトをちょっと修正した。

/example/bots/gitlab_push.js
/example/templates/gitlab_push.js

この2ファイルをそのまま上書きすればOK。

28
27
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
28
27