GitLabでリポジトリへプッシュされた際にメールで通知したい場合、どういった設定が必要になるのか試してみました。

GitLabのメール通知とは

GitLabの対象のリポジトリにプッシュした際、指定したメンバーへメールで通知することが可能です。
メールを通知する事で、いつ、だれが、どのファイルに変更を加えたかを即座に把握できるため、
プロジェクト内の状況把握やコミュニケーションを円滑に進める点で役に立ちます。

前提

以下のような前提で設定を行いました。

  • Dockerを使用してGitLabを独立したコンテナとして構築した
  • GitLab上にリポジトリが既に存在している
  • 環境
    • Dockerのバージョン:20.10.21
    • docker-composeのバージョン:1.29.2
    • GitLabのバージョン:15.4.0

設定手順

docker-compose.ymlファイルに必要な情報を設定

※docker-compose.ymlファイルはコンテナを落としている状態で変更を行います。

※設定例に記載しているパラメータ等についての詳細は、公式のリファレンスを参照ください。
 https://docs.gitlab.com/omnibus/settings/smtp.html

(設定例)

   gitlab_rails['smtp_enable'] = true
   gitlab_rails['smtp_address'] = 'xxx.xx.xxx.xxx'
   gitlab_rails['smtp_port'] = xx
   gitlab_rails['smtp_domain'] = 'xxxxxx'
   gitlab_rails['smtp_authentication'] = 'false'
   gitlab_rails['smtp_enable_starttls_auto'] = false
   gitlab_rails['smtp_tls'] = false
   gitlab_rails['smtp_openssl_verify_mode'] = 'none'

   gitlab_rails['gitlab_email_enabled'] = true
   gitlab_rails['gitlab_email_from'] = 'xxxx@example.co.jp'
   gitlab_rails['gitlab_email_display_name'] = 'GitLab@xxx.xx.xxx.xxx'
   gitlab_rails['gitlab_email_reply_to'] = 'xxxx@example.co.jp'
  • smtp_addressにはIPアドレス、smtp_portにはポート番号、smtp_domainにはドメイン名 を指定し、SMTPサーバの情報を指定する必要があります。
  • gitlab_email_from、gitlab_email_display_name、gitlab_email_reply_to、それぞれに設定が必要です。

docker-compose.ymlの設定内容を反映

コンテナを再起動し以下のコマンドを実行して設定内容を反映させます。

 $ gitlab-ctl reconfigure

GitLabのWebUIからインテグレーションを設定

GitLabのWebUIを開き、メールの通知設定を行いたいリポジトリ > 設定 > インテグレーション > プッシュ時のEメール を選択します。

通知を受け取りたいメールアドレスを設定

プッシュ時のEメールの設定で、Recipients欄にて通知を受け取りたいメールアドレスを記載して、設定を保存します。

※メールアドレスの設定は、社内でのプロジェクト毎のグループメールアドレスを設定する事も可能です。また、メールアドレスを一人ずつ追加する場合は、スペース区切りで複数のユーザーを指定する事も可能です。

まとめ

このように簡単な設定で、プッシュ時のメール通知が行えるようになります。プロジェクト内のコミュニケーションを促進するきっかけとなれば幸いです。