summaryrefslogtreecommitdiff
path: root/lib/gitlab/email
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/email')
-rw-r--r--lib/gitlab/email/handler/create_issue_handler.rb3
-rw-r--r--lib/gitlab/email/handler/reply_processing.rb16
-rw-r--r--lib/gitlab/email/handler/service_desk_handler.rb16
-rw-r--r--lib/gitlab/email/message/in_product_marketing/verify.rb2
-rw-r--r--lib/gitlab/email/receiver.rb9
5 files changed, 26 insertions, 20 deletions
diff --git a/lib/gitlab/email/handler/create_issue_handler.rb b/lib/gitlab/email/handler/create_issue_handler.rb
index e927a5641e5..b110d39818d 100644
--- a/lib/gitlab/email/handler/create_issue_handler.rb
+++ b/lib/gitlab/email/handler/create_issue_handler.rb
@@ -61,7 +61,8 @@ module Gitlab
params: {
title: mail.subject,
description: message_including_reply
- }
+ },
+ spam_params: nil
).execute
end
diff --git a/lib/gitlab/email/handler/reply_processing.rb b/lib/gitlab/email/handler/reply_processing.rb
index fd3143488b1..d508cf9360e 100644
--- a/lib/gitlab/email/handler/reply_processing.rb
+++ b/lib/gitlab/email/handler/reply_processing.rb
@@ -4,14 +4,6 @@ module Gitlab
module Email
module Handler
module ReplyProcessing
- private
-
- attr_reader :project_id, :project_slug, :project_path, :incoming_email_token
-
- def author
- raise NotImplementedError
- end
-
# rubocop:disable Gitlab/ModuleWithInstanceVariables
def project
return @project if instance_variable_defined?(:@project)
@@ -27,6 +19,14 @@ module Gitlab
end
# rubocop:enable Gitlab/ModuleWithInstanceVariables
+ private
+
+ attr_reader :project_id, :project_slug, :project_path, :incoming_email_token
+
+ def author
+ raise NotImplementedError
+ end
+
def message
@message ||= process_message
end
diff --git a/lib/gitlab/email/handler/service_desk_handler.rb b/lib/gitlab/email/handler/service_desk_handler.rb
index 05daa08530e..84b55079cea 100644
--- a/lib/gitlab/email/handler/service_desk_handler.rb
+++ b/lib/gitlab/email/handler/service_desk_handler.rb
@@ -42,18 +42,10 @@ module Gitlab
end
end
- def metrics_params
- super.merge(project: project&.full_path)
- end
-
def metrics_event
:receive_email_service_desk
end
- private
-
- attr_reader :project_id, :project_path, :service_desk_key
-
def project
strong_memoize(:project) do
@project = service_desk_key ? project_from_key : super
@@ -62,6 +54,10 @@ module Gitlab
end
end
+ private
+
+ attr_reader :project_id, :project_path, :service_desk_key
+
def project_from_key
return unless match = service_desk_key.match(PROJECT_KEY_PATTERN)
@@ -83,7 +79,8 @@ module Gitlab
description: message_including_template,
confidential: true,
external_author: from_address
- }
+ },
+ spam_params: nil
).execute
raise InvalidIssueError unless @issue.persisted?
@@ -95,6 +92,7 @@ module Gitlab
def send_thank_you_email
Notify.service_desk_thank_you_email(@issue.id).deliver_later
+ Gitlab::Metrics::BackgroundTransaction.current&.add_event(:service_desk_thank_you_email)
end
def message_including_template
diff --git a/lib/gitlab/email/message/in_product_marketing/verify.rb b/lib/gitlab/email/message/in_product_marketing/verify.rb
index d563de6c77e..88140c67804 100644
--- a/lib/gitlab/email/message/in_product_marketing/verify.rb
+++ b/lib/gitlab/email/message/in_product_marketing/verify.rb
@@ -68,7 +68,7 @@ module Gitlab
private
def ci_link
- link(s_('InProductMarketing|how easy it is to get started'), help_page_url('ci/README'))
+ link(s_('InProductMarketing|how easy it is to get started'), help_page_url('ci/index'))
end
def quick_start_link
diff --git a/lib/gitlab/email/receiver.rb b/lib/gitlab/email/receiver.rb
index 8139a294269..242def826be 100644
--- a/lib/gitlab/email/receiver.rb
+++ b/lib/gitlab/email/receiver.rb
@@ -22,6 +22,9 @@ module Gitlab
handler.execute.tap do
Gitlab::Metrics::BackgroundTransaction.current&.add_event(handler.metrics_event, handler.metrics_params)
end
+ rescue StandardError => e
+ Gitlab::Metrics::BackgroundTransaction.current&.add_event('email_receiver_error', error: e.class.name)
+ raise e
end
def mail_metadata
@@ -33,7 +36,11 @@ module Gitlab
references: Array(mail.references),
delivered_to: delivered_to.map(&:value),
envelope_to: envelope_to.map(&:value),
- x_envelope_to: x_envelope_to.map(&:value)
+ x_envelope_to: x_envelope_to.map(&:value),
+ meta: {
+ client_id: "email/#{mail.from.first}",
+ project: handler&.project&.full_path
+ }
}
end