engineers_blogこんにちは。エンジニアの石田です。今回は開発プロセス改善ネタをテーマに、GitLabからChatWorkにマージリクエストのレビュー依頼を自動通知するHubotスクリプトを作ってみました。実際に作ったHubotスクリプトのコードと、ひと通りの導入手順を説明します。背景マネーフォワードのソースコード管理にはGitLabを、全社コミュニケーションにはChatWorkを利用しています(一部、HipChatやSlackも利用しています)。Request)ベースの開発フローを採用しています。Requestは、基本的にチームメンバー全員がレビューをしています。現状私の所属するチームでは、レビュー依頼をChatWorkに手入力しています。近頃のChatOps界隈でよく利用されているHubotで遊んでみたい、という動機でレビュー依頼を自動通知してくれるツール(Hubotスクリプト)を作ってみました。appを使うなどの方法もあります。ツールの概要GitLab->Hubotの連絡には、GitLabのWebHook機能を利用します。開発者がマージリクエストをしてから、レビュー依頼されるまでの全体の流れは次のとおりです。API利用申請をしてTokenを取得します。GitLabの設定画面よりWebHookを追加します。WebHookを追加するためには、Owner以上のユーザ権限が必要です。WebHook先には次のURLを指定します。your_room_idは適宜置き換えて下さいhttp://<your_gitlab_host>:5000/gitlab_hook/?gitlab_group=<your_group>&gitlab_project=<your_project>&chatwork_room=<your_room_id>リッスンポート(5000)は変更可です。その際は、後述のrun_hubot.shもあわせて変更してください。CHATWORK_IMG_PREVIEW_TAGを適宜編集してください。CHATWORK_IMG_PREVIEW_TAGは、ChatWorkの画像プレビューのためのタグです。開発チームメンバーがコードレビューをしたくなるような画像にします。プレビュータグを利用するためには、事前にチャット内に画像投稿をする必要があります。ht=150]」のような文字列がプレビュータグです。これをコピー&ペーストすることで、以降プレビュータグを利用できるようになります。./run_hubot.shこれで準備完了です。実際にGitLabにマージリクエストすると、ChatWorkに下記のようなレビュー通知が届きます。合わせる形でHubotとChatWorkを連携させましたが、そういった制約条件がなければ現状ではChatWorkよりもHipChatやSlackと連携させるほうが楽しそうです。チャットのメッセージ一覧を取得するAPIがChatWorkに未実装のため、Hubotとユーザとの双方向のコミュニケーションが取りづらいためです。