Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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

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 に投稿が可能!

infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です
https://wp.infra-workshop.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした