Commit f2669204 authored by Rémy Coutable's avatar Rémy Coutable Committed by Alejandro Rodríguez

Merge branch 'mailroom_idle_timeout' into 'master'

Allows configuration of idle_timeout for incoming email.

https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1087

See merge request !7423
parent 29b6d4d5
---
title: Allow mail_room idle_timeout option to be configurable
merge_request: 7423
author:
...@@ -138,6 +138,8 @@ production: &base ...@@ -138,6 +138,8 @@ production: &base
# The mailbox where incoming mail will end up. Usually "inbox". # The mailbox where incoming mail will end up. Usually "inbox".
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout.
idle_timeout: 60
## Build Artifacts ## Build Artifacts
artifacts: artifacts:
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
:start_tls: <%= config[:start_tls].to_json %> :start_tls: <%= config[:start_tls].to_json %>
:email: <%= config[:user].to_json %> :email: <%= config[:user].to_json %>
:password: <%= config[:password].to_json %> :password: <%= config[:password].to_json %>
:idle_timeout: 60 :idle_timeout: <%= config[:idle_timeout].to_json %>
:name: <%= config[:mailbox].to_json %> :name: <%= config[:mailbox].to_json %>
......
...@@ -105,6 +105,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow ...@@ -105,6 +105,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow
# The mailbox where incoming mail will end up. Usually "inbox". # The mailbox where incoming mail will end up. Usually "inbox".
gitlab_rails['incoming_email_mailbox_name'] = "inbox" gitlab_rails['incoming_email_mailbox_name'] = "inbox"
# The IDLE command timeout.
gitlab_rails['incoming_email_idle_timeout'] = 60
``` ```
```ruby ```ruby
...@@ -133,6 +135,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow ...@@ -133,6 +135,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow
# The mailbox where incoming mail will end up. Usually "inbox". # The mailbox where incoming mail will end up. Usually "inbox".
gitlab_rails['incoming_email_mailbox_name'] = "inbox" gitlab_rails['incoming_email_mailbox_name'] = "inbox"
# The IDLE command timeout.
gitlab_rails['incoming_email_idle_timeout'] = 60
``` ```
1. Reconfigure GitLab and restart mailroom for the changes to take effect: 1. Reconfigure GitLab and restart mailroom for the changes to take effect:
...@@ -192,6 +196,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow ...@@ -192,6 +196,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow
# The mailbox where incoming mail will end up. Usually "inbox". # The mailbox where incoming mail will end up. Usually "inbox".
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout.
idle_timeout: 60
``` ```
```yaml ```yaml
...@@ -221,6 +227,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow ...@@ -221,6 +227,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow
# The mailbox where incoming mail will end up. Usually "inbox". # The mailbox where incoming mail will end up. Usually "inbox".
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout.
idle_timeout: 60
``` ```
1. Enable `mail_room` in the init script at `/etc/default/gitlab`: 1. Enable `mail_room` in the init script at `/etc/default/gitlab`:
...@@ -277,6 +285,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow ...@@ -277,6 +285,8 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow
# The mailbox where incoming mail will end up. Usually "inbox". # The mailbox where incoming mail will end up. Usually "inbox".
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout.
idle_timeout: 60
``` ```
As mentioned, the part after `+` is ignored, and this will end up in the mailbox for `gitlab-incoming@gmail.com`. As mentioned, the part after `+` is ignored, and this will end up in the mailbox for `gitlab-incoming@gmail.com`.
......
...@@ -31,6 +31,7 @@ module Gitlab ...@@ -31,6 +31,7 @@ module Gitlab
config[:ssl] = false if config[:ssl].nil? config[:ssl] = false if config[:ssl].nil?
config[:start_tls] = false if config[:start_tls].nil? config[:start_tls] = false if config[:start_tls].nil?
config[:mailbox] = 'inbox' if config[:mailbox].nil? config[:mailbox] = 'inbox' if config[:mailbox].nil?
config[:idle_timeout] = 60 if config[:idle_timeout].nil?
if config[:enabled] && config[:address] if config[:enabled] && config[:address]
gitlab_redis = Gitlab::Redis.new(rails_env) gitlab_redis = Gitlab::Redis.new(rails_env)
......
...@@ -47,6 +47,7 @@ describe 'mail_room.yml' do ...@@ -47,6 +47,7 @@ describe 'mail_room.yml' do
expect(mailbox[:email]).to eq('gitlab-incoming@gmail.com') expect(mailbox[:email]).to eq('gitlab-incoming@gmail.com')
expect(mailbox[:password]).to eq('[REDACTED]') expect(mailbox[:password]).to eq('[REDACTED]')
expect(mailbox[:name]).to eq('inbox') expect(mailbox[:name]).to eq('inbox')
expect(mailbox[:idle_timeout]).to eq(60)
redis_url = gitlab_redis.url redis_url = gitlab_redis.url
sentinels = gitlab_redis.sentinels sentinels = gitlab_redis.sentinels
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment