GitLab のWebhookを受けてSlackに通知を行います。
現在、Merge request eventsにのみ対応しています。
GitLabの最新バージョンを使えばGitLab上でSlack通知設定できますが、古いバージョンだとWebhookしか使えない...そんなときにお使いください。
当ツールは Hubot フレームワークを基に作られたSlack用botです。
ここでは Heroku を利用する場合の手順を記載します。
以下を前提とします。
- Herokuアカウントを持っていること
- Heroku Toolbelt がインストールされていること
Personal appを作成してデプロイします。
% heroku create
% git push heroku master
Slack App Directory から対象のSlackドメインに Hubot Integration をインストールします。
通知時のユーザーネーム、アイコンなどを設定します。
Integrationを追加するとbotが1ユーザーとしてSlackに参加する。
通知を受け取るチャンネルにbotを招待します。
/invite @<botname>
Integrationを追加した際に発行されたAPI Tokenを設定します。
% heroku config:set HUBOT_SLACK_TOKEN=<api-token>
また、対象のGitLabのドメイン(例: https://example.gitlab.com
)を設定します。
% heroku config:set GITLAB_URL=<url>
対象リポジトリの Settings > Web Hooks にてWebhookの設定を行います。
URLには以下を設定します。
https://<heroku-domain>/merge_request/<slack-channel-name>
例: チャンネル名が #hoge
の場合: https://example.heroku.com/merge_request/hoge
botは、マージリクエストが作成された際にSlackの当該チャンネルに以下の内容を発言します。
- 作成者名
- 作成日時
- マージリクエストURL
- タイトル
- 説明