summaryrefslogtreecommitdiff
path: root/lib/gitlab/email/message
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2016-05-06 13:16:53 +0100
committerSean McGivern <sean@gitlab.com>2016-05-11 09:16:01 +0100
commit5f27e26bb4d073c04fd6d3f4116fc1a122db8c00 (patch)
treea0fea0df79f8e8fae17eb2d5bb1caed099d9b490 /lib/gitlab/email/message
parent48c80fdf43e44ae003753c81a832fc2c0eafdb5d (diff)
downloadgitlab-ce-5f27e26bb4d073c04fd6d3f4116fc1a122db8c00.tar.gz
Only generate repository push email once
The repository push email can be very expensive to generate, especially with syntax-highlighted diffs. Instead of generating the email for each recipient, generate one email object and reset the Message-Id and To headers for each recipient. (Cloning would also be expensive in the case of large emails, although probably not as bad as generating from scratch.)
Diffstat (limited to 'lib/gitlab/email/message')
-rw-r--r--lib/gitlab/email/message/repository_push.rb4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/gitlab/email/message/repository_push.rb b/lib/gitlab/email/message/repository_push.rb
index 8f9be6cd9a3..2c91a0487c3 100644
--- a/lib/gitlab/email/message/repository_push.rb
+++ b/lib/gitlab/email/message/repository_push.rb
@@ -2,7 +2,6 @@ module Gitlab
module Email
module Message
class RepositoryPush
- attr_accessor :recipient
attr_reader :author_id, :ref, :action
include Gitlab::Routing.url_helpers
@@ -11,13 +10,12 @@ module Gitlab
delegate :name, to: :author, prefix: :author
delegate :username, to: :author, prefix: :author
- def initialize(notify, project_id, recipient, opts = {})
+ def initialize(notify, project_id, opts = {})
raise ArgumentError, 'Missing options: author_id, ref, action' unless
opts[:author_id] && opts[:ref] && opts[:action]
@notify = notify
@project_id = project_id
- @recipient = recipient
@opts = opts.dup
@author_id = @opts.delete(:author_id)