開発をしていると、通知ってすごい大事だと思います。
「Gitでリクエストを作った後に、Slackでも「PR作成しました」みたいなメッセージを送る」
これが地味に面倒臭い、、、。
できれば
「リクエストが作成された時点で、Asigneeの人に自動で通知されて欲しい」
「レビュワーの人にとっては、マージされた時にも通知されて欲しい」
これぜーんぶ自動化できたら、いいなと思ってCIをいじっていたら実現しました。
mainブランチにマージされると、こういうメッセージをSlackに飛ばしてくれます^^
手順
- GitLabでvariableにSLACK_WEBHOOK_URLを設定する
- 以下のコードをリポジトリルートに作成する
.gitlab-ci.yml
stages:
- deploy
slack-notify:
stage: deploy
only:
refs:
- main
script:
- 'curl -X POST --data-urlencode "payload={
\"channel\": \"#gitlab-notify\",
\"username\": \"GitLab\",
\"text\": \"
マージは人生の喜び\n
$CI_PROJECT_NAME\n
$CI_PROJECT_TITLE\n
CI_MERGE_REQUEST_TITLE\n
$CI_COMMIT_TITLE\n
$CI_PIPELINE_URL
\",
\"icon_emoji\": \":ghost:\"
}" $SLACK_WEBHOOK_URL'
これはcurlコマンドで実装しているので、GitLabとSlackで何か特別なアプリなどを入れる必要はありません。
そこが、イケてるところですね。
- GitLabでmainブランチにマージされる。
- Slackのチャンネルにメッセージが自動送信される。
これでかなり開発環境の衛生状態が改善されましたね!