GitLabとRocketChatとの連携

GitLabのアップデートが完了したので、RocketChatとの連携を試します。

GitLabの管理者画面の設定
GitLabの管理者画面の設定

まずGitLabの管理者アカウントでサインインし、レンチアイコンの管理者エリアから、「設定」「ネットワーク」と辿り、「Outbound requests」の中の「Allow requests to the local network from hooks and services」のチェックボックスにチェックを入れて「Save Changes」。

GitLabのプロジェクト内の設定
GitLabのプロジェクト内の設定

続いて連携したいプロジェクトの管理者権限があるアカウントでサインインし、プロジェクトの詳細画面から「設定」「インテグレーション」ページを開きます。

すると、最初に「URL」と「Secret Token」があるのが目に入ります。

この「URL」と「Secret Token」はRocketChatの方で予め設定しておくものになります。

RocketChatの管理者画面の設定
RocketChatの管理者画面の設定

RocketChatに管理者権限のあるアカウントでサインインし、「管理」メニューから「サービス連携」を開きます。続いて右側の「新しいサービス連携」をクリック。

RocketChatへのフックか、RocketChatからのフックかの設定
RocketChatへのフックか、RocketChatからのフックかの設定

すると、設定画面が続くので設定していきます。まずは(よそから)RocketChatへのフックか、RocketChatから(よそへ)のフックかの設定を選びます。

今回はGitLabからRocketChatへ連携させたいので、「着信WebHook」の方を選択。

RocketChatのWebHook設定
RocketChatのWebHook設定

続いてWebHook自体の設定。ここでは

  • 有効: 「はい」にチェック
  • 名前(オプション): 任意の名称を指定
  • 投稿先チャンネル: 通知を送りたいユーザ名またはチャンネルを指定。@#を忘れないように
  • エイリアス(オプション): 今回は「[自動通知]」というのを先頭に付けることにしました
  • 絵文字 (オプション): アイコンの代わりに絵文字を指定
  • スクリプトを有効にする: 「はい」にチェック
  • スクリプト: rocketchat-gitlab-hook/gitlab-rocketchat.hooks.js at master ・ malko/rocketchat-gitlab-hookを丸ごとコピペ

として「変更を保存」。

生成された「Webhook URL」と「Token」
生成された「Webhook URL」と「Token」

保存が完了すると、今の設定画面の途中の「Webhook URL」と「Token」が生成されます。この2つをGitLabに設定するので控えます。

RocketChatにWebHookが追加された
RocketChatにWebHookが追加された

設定が保存されると、WebHookの一覧に先ほど追加したWebHookが表示されるようになります。

GitLabのプロジェクト内の設定
GitLabのプロジェクト内の設定

確認が完了したらGitLabのプロジェクト内の「インテグレーション」の設定に戻り、先ほど控えた「Webhook URL」と「Token」を入力し、通知したいイベントを選択して「Add webhook」をクリック。

GitLabに追加されたWebHook
GitLabに追加されたWebHook

これでGitLabからRocketChatへの通知設定が完了し、「インテグレーション」設定画面の「Add webhook」の下にWebhookが追加されていることが確認できます。

GitLabからRocketChatへの通知テスト(Pushイベントの通知)
GitLabからRocketChatへの通知テスト(Pushイベントの通知)

テストすると、無事GitLabからRocketChatへ通知が飛ぶことが確認できました。

参考

この記事を書いた人

アバター

アルム=バンド

フルスタックエンジニアっぽい何か。LAMPやNodeからWP、gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。