バージョン管理ソフトを使っているとやっぱり更新通知は実装したくなるよね。
まずは通知するデータのやりとりを行うためcurlをインストールしましょう。ターミナルで環境にログインした後以下の手順でインストールします。
sudo apt update
sudo apt install curl
curl --version
Slackのアプリの追加から、Incoming Webhook アプリを追加し設定画面から通知を行いたいリポジトリのWebhook URLをメモしておきます。
リポジトリのhooks フォルダにある post-commit.tmpl ファイルを複製してpost-commitとし、中身を書き換えます。
export LANG=ja_JP.UTF-8
REPOS="$1"
REV="$2"
TXN_NAME="$3"
# Slackのチェンネル名
channel="#proj-xxxx"
# 通知ユーザ名
username="SVN"
# 通知するユーザのアイコン
iconemoji=":shell:"
# WebHookURL
webhookUrl="Webhook のURLを入れてください"
#Docker 外からの確認用パス
svnlook_path="/usr/bin/svnlook"
author=$($svnlook_path author -r $REV $REPOS)
commit_msg=$($svnlook_path log -r $REV $REPOS | tr '\n' '\\' | sed 's/\\/\\n/g')
commit_summary=$($svnlook_path changed -r $REV $REPOS | tr '\n' '\\' | sed 's/\\/\\n/g')
header="1 new commit by ${author} \n ${commit_msg}"
value="$commit_summary"
# Slackに通知する
/usr/bin/curl -X POST --data-urlencode "payload={\"channel\": \"${channel}\", \"username\": \"${username}\", \"text\": \"${header}\", \"attachments\": [{ \"fallback\": \"${header}\", \"color\": \"good\", \"fields\": [{\"title\": \"\", \"value\":\"${value}\" }] }], \"icon_emoji\": \"${iconemoji}\"}" ${webhookUrl}
試しに適当なファイルに差分を作りファイルをコミットしてみます。
うまく動作しました。
Proudly powered by WordPress