diff --git a/lib/gitlab/email/handler.rb b/lib/gitlab/email/handler.rb index d4806af97a5..cebedb19dcc 100644 --- a/lib/gitlab/email/handler.rb +++ b/lib/gitlab/email/handler.rb @@ -3,8 +3,6 @@ module Gitlab module Email module Handler - HANDLER_ACTION_BASE_REGEX = /(?.+)-(?\d+)-(?.+)/.freeze - def self.handlers @handlers ||= load_handlers end diff --git a/lib/gitlab/email/handler/base_handler.rb b/lib/gitlab/email/handler/base_handler.rb index 3f34a7e1d38..f89d1d15010 100644 --- a/lib/gitlab/email/handler/base_handler.rb +++ b/lib/gitlab/email/handler/base_handler.rb @@ -6,6 +6,8 @@ module Gitlab class BaseHandler attr_reader :mail, :mail_key + HANDLER_ACTION_BASE_REGEX ||= /(?.+)-(?\d+)/.freeze + def initialize(mail, mail_key) @mail = mail @mail_key = mail_key diff --git a/lib/gitlab/email/handler/create_issue_handler.rb b/lib/gitlab/email/handler/create_issue_handler.rb index 179fc3a69f7..78a3a9489ac 100644 --- a/lib/gitlab/email/handler/create_issue_handler.rb +++ b/lib/gitlab/email/handler/create_issue_handler.rb @@ -11,7 +11,7 @@ module Gitlab class CreateIssueHandler < BaseHandler include ReplyProcessing - HANDLER_REGEX = /\A#{Gitlab::Email::Handler::HANDLER_ACTION_BASE_REGEX}-issue\z/.freeze + HANDLER_REGEX = /\A#{HANDLER_ACTION_BASE_REGEX}-(?.+)-issue\z/.freeze HANDLER_REGEX_LEGACY = /\A(?[^\+]*)\+(?.*)\z/.freeze def initialize(mail, mail_key) diff --git a/lib/gitlab/email/handler/create_merge_request_handler.rb b/lib/gitlab/email/handler/create_merge_request_handler.rb index 4cb983ceb73..b3b5063f2ca 100644 --- a/lib/gitlab/email/handler/create_merge_request_handler.rb +++ b/lib/gitlab/email/handler/create_merge_request_handler.rb @@ -12,7 +12,7 @@ module Gitlab class CreateMergeRequestHandler < BaseHandler include ReplyProcessing - HANDLER_REGEX = /\A#{Gitlab::Email::Handler::HANDLER_ACTION_BASE_REGEX}-merge-request\z/.freeze + HANDLER_REGEX = /\A#{HANDLER_ACTION_BASE_REGEX}-(?.+)-merge-request\z/.freeze HANDLER_REGEX_LEGACY = /\A(?[^\+]*)\+merge-request\+(?.*)/.freeze def initialize(mail, mail_key)