summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2015-10-13 22:26:05 +0000
committerRobert Speicher <robert@gitlab.com>2015-10-13 22:26:05 +0000
commit82da19cecd6390d2372bad36da0a9f89b21abb38 (patch)
tree93713d526a2fafdc8b8cd2bac795711bff44a237
parent52983a84b9dbb8beaef3ebaf3d502c6ec34f7362 (diff)
parentc2c8f8acc41747280356e157e749c1cafbd807e3 (diff)
downloadgitlab-ce-82da19cecd6390d2372bad36da0a9f89b21abb38.tar.gz
Merge branch 'mailroom-arbitration' into 'master'
Enable arbitration in MailRoom Fixes #2870. See merge request !1566
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock4
-rw-r--r--config/mail_room.yml.example12
-rw-r--r--doc/incoming_email/README.md34
4 files changed, 44 insertions, 8 deletions
diff --git a/Gemfile b/Gemfile
index e8cdb7a4a97..967092994a6 100644
--- a/Gemfile
+++ b/Gemfile
@@ -290,7 +290,7 @@ gem 'newrelic-grape'
gem 'octokit', '~> 3.7.0'
-gem "mail_room", "~> 0.5.2"
+gem "mail_room", "~> 0.6.0"
gem 'email_reply_parser', '~> 0.5.8'
diff --git a/Gemfile.lock b/Gemfile.lock
index 9911904d304..58426a60683 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -392,7 +392,7 @@ GEM
systemu (~> 2.6.2)
mail (2.6.3)
mime-types (>= 1.16, < 3)
- mail_room (0.5.2)
+ mail_room (0.6.0)
method_source (0.8.2)
mime-types (1.25.1)
mimemagic (0.3.0)
@@ -854,7 +854,7 @@ DEPENDENCIES
jquery-ui-rails (~> 4.2.1)
kaminari (~> 0.16.3)
letter_opener (~> 1.1.2)
- mail_room (~> 0.5.2)
+ mail_room (~> 0.6.0)
minitest (~> 5.7.0)
mousetrap-rails (~> 1.4.6)
mysql2 (~> 0.3.16)
diff --git a/config/mail_room.yml.example b/config/mail_room.yml.example
index ed4a5193a6a..bb624e8a187 100644
--- a/config/mail_room.yml.example
+++ b/config/mail_room.yml.example
@@ -12,8 +12,10 @@
# :email: "gitlab-incoming@gmail.com"
# # Email account password
# :password: "password"
+
# # The name of the mailbox where incoming mail will end up. Usually "inbox".
# :name: "inbox"
+
# # Always "sidekiq".
# :delivery_method: sidekiq
# # Always true.
@@ -25,5 +27,13 @@
# :namespace: resque:gitlab
# # Always "incoming_email".
# :queue: incoming_email
- # # Always "EmailReceiverWorker"
+ # # Always "EmailReceiverWorker".
# :worker: EmailReceiverWorker
+
+ # # Always "redis".
+ # :arbitration_method: redis
+ # :arbitration_options:
+ # # The URL to the Redis server. Should match the URL in config/resque.yml.
+ # :redis_url: redis://localhost:6379
+ # # Always "mail_room:gitlab".
+ # :namespace: mail_room:gitlab
diff --git a/doc/incoming_email/README.md b/doc/incoming_email/README.md
index 87267423471..aafa2345fab 100644
--- a/doc/incoming_email/README.md
+++ b/doc/incoming_email/README.md
@@ -2,10 +2,6 @@
GitLab can be set up to allow users to comment on issues and merge requests by replying to notification emails.
-**Warning**: Do not enable Reply by email if you have **multiple GitLab application servers**.
-Due to an issue with the way incoming emails are read from the mail server, every incoming reply-by-email email will result in as many comments being created as you have application servers.
-[A fix is being worked on.](https://github.com/tpitale/mail_room/issues/46)
-
## Get a mailbox
Reply by email requires an IMAP-enabled email account, with a provider or server that supports [email sub-addressing](https://en.wikipedia.org/wiki/Email_address#Sub-addressing). Sub-addressing is a feature where any email to `user+some_arbitrary_tag@example.com` will end up in the mailbox for `user@example.com`, and is supported by providers such as Gmail, Yahoo! Mail, Outlook.com and iCloud, as well as the Postfix mail server which you can run on-premises.
@@ -118,8 +114,10 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow [these
:email: "incoming"
# Email account password
:password: "[REDACTED]"
+
# The name of the mailbox where incoming mail will end up. Usually "inbox".
:name: "inbox"
+
# Always "sidekiq".
:delivery_method: sidekiq
# Always true.
@@ -133,6 +131,14 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow [these
:queue: incoming_email
# Always "EmailReceiverWorker"
:worker: EmailReceiverWorker
+
+ # Always "redis".
+ :arbitration_method: redis
+ :arbitration_options:
+ # The URL to the Redis server. Should match the URL in config/resque.yml.
+ :redis_url: redis://localhost:6379
+ # Always "mail_room:gitlab".
+ :namespace: mail_room:gitlab
```
```yaml
@@ -151,8 +157,10 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow [these
:email: "gitlab-incoming@gmail.com"
# Email account password
:password: "[REDACTED]"
+
# The name of the mailbox where incoming mail will end up. Usually "inbox".
:name: "inbox"
+
# Always "sidekiq".
:delivery_method: sidekiq
# Always true.
@@ -166,6 +174,14 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow [these
:queue: incoming_email
# Always "EmailReceiverWorker"
:worker: EmailReceiverWorker
+
+ # Always "redis".
+ :arbitration_method: redis
+ :arbitration_options:
+ # The URL to the Redis server. Should match the URL in config/resque.yml.
+ :redis_url: redis://localhost:6379
+ # Always "mail_room:gitlab".
+ :namespace: mail_room:gitlab
```
5. Edit the init script configuration at `/etc/default/gitlab` to enable `mail_room`:
@@ -228,8 +244,10 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow [these
:email: "gitlab-incoming@gmail.com"
# Email account password
:password: "[REDACTED]"
+
# The name of the mailbox where incoming mail will end up. Usually "inbox".
:name: "inbox"
+
# Always "sidekiq".
:delivery_method: sidekiq
# Always true.
@@ -243,6 +261,14 @@ To set up a basic Postfix mail server with IMAP access on Ubuntu, follow [these
:queue: incoming_email
# Always "EmailReceiverWorker"
:worker: EmailReceiverWorker
+
+ # Always "redis".
+ :arbitration_method: redis
+ :arbitration_options:
+ # The URL to the Redis server. Should match the URL in config/resque.yml.
+ :redis_url: redis://localhost:6379
+ # Always "mail_room:gitlab".
+ :namespace: mail_room:gitlab
```
4. Uncomment the `mail_room` line in your `Procfile`: