chatworkにzapierでgitlabから通知する
やってみたので備忘録を。
こちらを参考にさせていただいて大体同じようにしてみた次第。
・事前に
gitlab.com(SaaSのやつ)じゃなくて自前だとgitlabにzapierをアプリケーション登録する必要がある模様(へー)
https://zapier.com/help/gitlab/
・Trrigerをつくる
トリガを選択→とりあえずNew Commitをえらびました
Gitlabを選択してアプリケーション登録時に取得したIDとSecretを使って接続テストします
うまくいったらSaveで続ける
ProjectとBranchかTagを選択してつづける
今回はvol-testのrefactorブランチを選択しました
サンプルデータをえらんでおいてつづけます
・Actionをつくる
</>このコード入力するマークを選んでRunPythonを選択します
テンプレートのInputDataに以下を入力
id: サンプルデータのコミットIDが勝手にでてくるのでそれを選択
auther: サンプルデータのコミットしたユーザが勝手にでてくるのでそれを選択
Codeに以下を入力
import requests
import random
import json
from datetime import datetime, date, timedelta
# Get input_data
name = input_data['author']
mr_id = input_data['id']
# ChatWork ids
reviewer = [557xxx, 556xxx, 1128xxx]
# API Key
APIKEY = '81e0xxxxxxxxxxxxxxx3fbdf'
# ChatWork Room ID
ROOMID = '287xxxxx'
# API Call URL
URL = 'https://api.chatwork.com/v2'
url = '{0}/rooms/{1}/tasks'.format(URL, ROOMID)
# Elected 3 reviewer of random
ids = random.sample(reviewer,3)
to_ids = ','.join(map(str, ids))
# Review URL
mr_url = 'https://my-gitlab-server-addr/name-space/pj-name/commit/' + mr_id + ''
# Deadline of the task is 3 days later
limit = datetime.today() + timedelta(days=3)
# HTTP Request Body & Params & Headers
body = name + ' さんがコミットしたので確認してみてください(F)\n' + mr_url
params = { 'body': body, 'limit': int(limit.strftime('%s')), 'to_ids': to_ids }
headers = { 'X-ChatWorkToken': APIKEY }
# Run API Call
resp = requests.post(url,headers=headers,params=params)
ランダムとか別にいらないのですがまあターゲットのアカウントIDが3人しかいないので特に直していません
固有の値を書いたのは
APIKEY,ROOMID,reviewerとbodyのメッセージとmr_urlをマージリクエストじゃなくてコミットに変えたくらい
テストでぽちっとテストするとチャットワークに書きこまれるのでうまくいったら保存して有効化すると
たぶんコミットしたらメッセージがいくように。
アプリの登録したのでWebhookの設定いらんかった(たぶん)です。
15分おきzapで100回までなら0円でいけるっぽいです。
もうちょっと色々規模おおきくやりたい感じになったらAzureFunctionかfluentdのやつかなんかでなんとかするかんじでしょうか。
・さんこう
GitLabのコードレビュー依頼をChatWorkのタスク通知でランダムアサインしてみた | Developers.IO
Zapierとは?非エンジニアでもルーチン作業を自動化できるツールの使い方を解説|ferret [フェレット]
fluentd初心者がgitlabとChatWorkを連携してみた - くりにっき
【管理者さま向け】各種ツールとの連携について | Uniposヘルプセンター
GitLab から ChatWork へ 通知を飛ばす - 約束の地
astronaughts/chabot: Chabot is Web-hook receiver for ChatWork.
Azure Functionsを使ってGitLabのWebhookをDiscordに通知するようにしたって話 - kokeiro’s blog
Azure Functionsでエラー検知してChatworkにメッセージを送る - Qiita
Author And Source
この問題について(chatworkにzapierでgitlabから通知する), 我々は、より多くの情報をここで見つけました https://qiita.com/smallpalace/items/e45ef8e6464c050e6d3f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .