diff --git a/lib/gitlab/email/handler/create_issue_handler.rb b/lib/gitlab/email/handler/create_issue_handler.rb index cba8f2b61f6c72ad87670f1f617e9b49d634155f..7e3506bbd3f07b4ee51e6fd53029cb9bc438d6dc 100644 --- a/lib/gitlab/email/handler/create_issue_handler.rb +++ b/lib/gitlab/email/handler/create_issue_handler.rb @@ -5,8 +5,16 @@ module Gitlab module Email module Handler class CreateIssueHandler < BaseHandler + attr_reader :project_namespace, :authentication_token + + def initialize(mail, mail_key) + super(mail, mail_key) + @project_namespace, @authentication_token = + mail_key && mail_key.split('+', 2) + end + def can_handle? - !!project + !!(project_namespace && project) end def execute @@ -28,14 +36,6 @@ module Gitlab end private - def authentication_token - mail_key[/[^\+]+$/] - end - - def project_namespace - mail_key[/^[^\+]+/] - end - def create_issue Issues::CreateService.new( project, diff --git a/lib/gitlab/email/handler/create_note_handler.rb b/lib/gitlab/email/handler/create_note_handler.rb index 282f1844097cfb1fb542ceb0c5206084507a641e..b91dd6231618902d225e652d2ac335bd1241cc78 100644 --- a/lib/gitlab/email/handler/create_note_handler.rb +++ b/lib/gitlab/email/handler/create_note_handler.rb @@ -6,7 +6,7 @@ module Gitlab module Handler class CreateNoteHandler < BaseHandler def can_handle? - !!sent_notification + !!(mail_key && sent_notification) end def execute diff --git a/lib/gitlab/email/receiver.rb b/lib/gitlab/email/receiver.rb index 7038346192b8fe9d6f061aaf77b723b84f903a02..a497d09b0a82672c994e3a231f79910915d12d3b 100644 --- a/lib/gitlab/email/receiver.rb +++ b/lib/gitlab/email/receiver.rb @@ -28,8 +28,6 @@ module Gitlab mail = build_mail mail_key = extract_mail_key(mail) - raise SentNotificationNotFoundError unless mail_key - if handler = Handler.for(mail, mail_key) handler.execute elsif mail_key =~ %r{/|\+}