LoginSignup
7
6

More than 1 year has passed since last update.

GitlabChatwork を用いた、GitLab から ChatWork への自動投稿

Last updated at Posted at 2018-12-29

概要

GitLab には、プロジェクトの変更があったときに、Webhook に POST リクエストを行って通知する機能がある。Slack 等、よく利用されているものは、簡単な API 登録をするだけで使用できる。「ChatWork 投稿」は選択肢にないが、Webhook と Google Apps Script を使うと、無料・サーバレスで ChatWork に投稿する仕組みが構築できるので紹介したい。

Heroku を使うと ChatworkにGitLabのプッシュやマージリクエストの通知を自動投稿する のような例もある。

https://github.com/infra-workshop/gitlab_chatwork_gas で整形し、
https://github.com/cw-shibuya/chatwork-client-gas を利用して投稿ができる。

https://github.com/infra-workshop/gitlab_chatwork_gas のプルリクエストがあれば、お待ちしています!

使い方

エンドポイントの作成

準備

  1. https://script.google.com/home から、新規プロジェクトを作成する。
  2. プロジェクト名を入力する
  3. ライブラリの登録
    1. リソース->ライブラリに Chatwork Client for Google Apps ScriptM6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT を入力し、追加
    2. バージョンについて最新版を選択
    3. GitlabChatwork1X9e-skIjQXVAojqOr2l6lVJg2p2DmnqYp3y7WpVl-KH1Odx-FInM-yUg も同様に追加し、保存する
  4. ファイル->プロジェクトのプロパティ->スクリプトのプロパティ にて
    CHATWORK_ROOM_IDCHATWORK_API_KEY を設定

ソースコードを入力

function doPost(e) {
  var data = JSON.parse(e.postData.getDataAsString());
  var message = GitlabChatwork.constructChatworkMessageFromGitLab(data);

  GitlabChatwork.setChatworkAPIKey(PropertiesService.getScriptProperties().getProperty('CHATWORK_API_KEY'));
  GitlabChatwork.setChatworkRoomId(PropertiesService.getScriptProperties().getProperty('CHATWORK_ROOM_ID'));
  GitlabChatwork.setChatWorkClient(ChatWorkClient);
  GitlabChatwork.sendMessageToChatwork(message);
}

公開 URL の設定

  1. 公開->ウェブ アプリケーションとして導入 を押下し、「アプリケーションにアクセスできるユーザー:」を「全員(匿名ユーザを含む)」に変更して「導入」
  2. 「現在のウェブ アプリケーションの URL:」が得られる
  3. コピーして控えておく(Webhook URL と表記する)

GitLab に登録

プロジェクトの 設定->インテグレーション (settings/integrations) に URL を入力し、テストしてみる

これだけで ChatWork に投稿が可能!

7
6
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
7
6