GitLabのService Deskの設定方法

目次

概要

GitLabのService Deskを使えるように設定しました。その設定方法について説明します。

環境

  • GitLab 15.8

Service Deskについて

GitLabは、Gitのホスティングサービスです。GitLab.comという名前のGitLab公式のサービスもありますが、自分でサーバーを用意して、GitLabをインストールして使うことができます。

私が現在利用しているGitLabは、自分で用意したサーバーにインストールしたセルフホスティングのGitLabです。

このGitLabでは、自分で色々と用意する必要はありますが、設定をすることで様々な機能を使うことができます。今回のService Deskもそのひとつです。

Service Deskは、メールを利用してGitLabのプロジェクトのIssueを追加できる機能です。この方法で追加したIssueは、ConfidentialなIssueとして、特定の権限以上のメンバーしか見られないIssueとなります。

メールを利用してIssueを追加する機能は、By sending an emailという名前で既にあります。Service Deskとの主な違いは、ConfidentialなIssueとなる点です。外部の人間からの連絡を受け取りたいときは、Service Deskを使うなど使い分けをします。

Service Deskはデフォルトで無効化されており、自分で設定を追加する必要があります。

ここからは設定方法について説明する

設定方法

Service Deskの設定をするには、あらかじめ、メールサーバーを用意しておく必要があります。

このメールサーバーは、example+なんらかの文字列@example.comのようなメールアドレスに送った際に、[email protected]にメールが送られるという、エイリアス機能があるメールサーバーが必要です。代表的な所ではGmailなどが対応しています。

そのため、ここではGmailのメールアドレスがあるということを前提に設定方法を説明します。

設定は、/etc/gitlab/gitlab.rbに記述します。

最初に、Service Deskの設定を追加します。この設定ではproject_[email protected]宛にメールが届きます。メールアドレスやパスワードは自分で用意したもので置き換えてください。

gitlab_rails['service_desk_email_enabled'] = true
gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@gmail.com"
gitlab_rails['service_desk_email_email'] = "[email protected]"
gitlab_rails['service_desk_email_password'] = "password"
gitlab_rails['service_desk_email_mailbox_name'] = "inbox"
gitlab_rails['service_desk_email_idle_timeout'] = 60
gitlab_rails['service_desk_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
gitlab_rails['service_desk_email_host'] = "imap.gmail.com"
gitlab_rails['service_desk_email_port'] = 993
gitlab_rails['service_desk_email_ssl'] = true
gitlab_rails['service_desk_email_start_tls'] = false

これだけでは、設定は不十分です。さらに、Incoming emailの設定をします。この設定では[email protected]宛にメールが届きます。メールアドレスやパスワードは自分で用意したもので置き換えてください。

gitlab_rails['incoming_email_enabled'] = true
gitlab_rails['incoming_email_address'] = "gitlab-incoming+%{key}@gmail.com"
gitlab_rails['incoming_email_email'] = "[email protected]"
gitlab_rails['incoming_email_password'] = "password"
gitlab_rails['incoming_email_host'] = "imap.gmail.com"
gitlab_rails['incoming_email_port'] = 993
gitlab_rails['incoming_email_ssl'] = true
gitlab_rails['incoming_email_start_tls'] = false
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
gitlab_rails['incoming_email_idle_timeout'] = 60
gitlab_rails['incoming_email_delete_after_delivery'] = true
gitlab_rails['incoming_email_expunge_deleted'] = true

これで設定は終わりです。最後に、設定を反映させます。

sudo gitlab-ctl reconfigure

ちゃんと設定できていれば、GitLabの管理者ダッシュボードで、「Reply by email」にチェックがつきます。

18ec8b63f2e0063a8ba93d3e238131c4.png

これで、Service Deskの利用ができるようになりました。

さいごに

Service Deskを利用する場合は、Service Deskの設定だけでなく、Incoming emailの設定も必要です。忘れずに設定するようにしてください。