GitLabのメール通知をGmailで送る
GitLabはGitHubを参考にして作られたサービスであるため、似たような機能を数多く備えています。今回はGitHubにもあるメール通知をGmailのSMTPサーバーから送信する方法を書いていきます。
Gmailのアカウント設定
GitLabからGmailのSMTPサーバーにログインするにはセキュリティレベルを下げる必要があります。
ログインした状態で[安全性の低いアプリを許可]にアクセスし、"安全性の低いアプリのアクセス"をオンにします。文字通りセキュリティは弱くなるのでGitLab用のメールアカウントを用意するなどの対策をするとよいでしょう。
GitLabのメール設定
現状のバージョン(7.12.2)のOmnibusをインストールすると、"/etc/gitlab/gitlab.rb"を編集するだけですべて設定することができます。公式サイトの説明が一番わかりやすかったです。
/etc/gitlab/gitlab.rb
13行目から
# gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com' # gitlab_rails['time_zone'] = 'UTC' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '[YourMailAddress]@gmail.com' gitlab_rails['gitlab_email_display_name'] = '[好きなように決めてください]' gitlab_rails['gitlab_email_reply_to'] = '[YourMailAddress]@gmail.com' # gitlab_rails['gitlab_default_can_create_group'] = true # gitlab_rails['gitlab_username_changing_enabled'] = true
187行目から
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.gmail.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "[YourMailAddress]@gmail.com" gitlab_rails['smtp_password'] = "[YourPassword]" gitlab_rails['smtp_domain'] = "smtp.gmail.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert',$ # gitlab_rails['smtp_ca_path'] = "/etc/ssl/certs" # gitlab_rails['smtp_ca_file'] = "/etc/ssl/certs/ca-certificates.crt"
以上で設定できたので反映させます。
$ sudo gitlab-ctl reconfigure $ sudo gitlab-ctl restart
これで設定できたはずですが、テストメールを送る機能を見つけられていないので検証する際はIssueを自分で作成して発言するなどが良いかと思います。
GitLab CIのメール設定
前述したGitLabの設定を行っていれば、GitLab CIの設定は簡単です。
/etc/gitlab/gitlab.rb
412行目から
gitlab_ci['gitlab_ci_email_from'] = '[YourMailAddress]@gmail.com' gitlab_ci['gitlab_ci_support_email'] = '[YourMailAddress]@gmail.com' # gitlab_ci['gitlab_ci_all_broken_builds'] = true # gitlab_ci['gitlab_ci_add_pusher'] = true
同様に反映させて終了です。
$ sudo gitlab-ctl reconfigure $ sudo gitlab-ctl restart
自分は友人との開発用にGitLabのサーバーをVPNにおいているのですが、外出先でも即時通知してくれるメール機能は重宝しています。皆さんもぜひ使ってみてください。