diff options
author | Chantal Rollison <crollison@gitlab.com> | 2018-05-11 11:05:14 -0700 |
---|---|---|
committer | Chantal Rollison <crollison@gitlab.com> | 2018-05-11 14:51:21 -0700 |
commit | be73838bdfa01b7a80d087e421505dccf625ae55 (patch) | |
tree | 0a83d74e5a26ffbe041a4502dda4d6fd81153f20 | |
parent | aa3004c48d6062c4f6f0dcaad91a9774445966e8 (diff) | |
download | gitlab-ce-ccr/regexp_anchor.tar.gz |
Add anchor for incoming email regex, closes 44989ccr/regexp_anchor
-rw-r--r-- | changelogs/unreleased/ccr-incoming-email-regex-anchor.yml | 3 | ||||
-rw-r--r-- | lib/gitlab/incoming_email.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/incoming_email_spec.rb | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/changelogs/unreleased/ccr-incoming-email-regex-anchor.yml b/changelogs/unreleased/ccr-incoming-email-regex-anchor.yml new file mode 100644 index 00000000000..a0d787e570e --- /dev/null +++ b/changelogs/unreleased/ccr-incoming-email-regex-anchor.yml @@ -0,0 +1,3 @@ +title: Add anchor for incoming email regex +merge_request: !18917 +type: added diff --git a/lib/gitlab/incoming_email.rb b/lib/gitlab/incoming_email.rb index c9122a23568..d323cb9dadf 100644 --- a/lib/gitlab/incoming_email.rb +++ b/lib/gitlab/incoming_email.rb @@ -57,7 +57,7 @@ module Gitlab regex = Regexp.escape(wildcard_address) regex = regex.sub(Regexp.escape(WILDCARD_PLACEHOLDER), '(.+)') - Regexp.new(regex).freeze + Regexp.new(/\A#{regex}\z/).freeze end end end diff --git a/spec/lib/gitlab/incoming_email_spec.rb b/spec/lib/gitlab/incoming_email_spec.rb index ad087f42e06..4c0c3fcbcc7 100644 --- a/spec/lib/gitlab/incoming_email_spec.rb +++ b/spec/lib/gitlab/incoming_email_spec.rb @@ -83,6 +83,10 @@ describe Gitlab::IncomingEmail do it "returns reply key" do expect(described_class.key_from_address("replies+key@example.com")).to eq("key") end + + it 'does not match emails with extra bits' do + expect(described_class.key_from_address('somereplies+somekey@example.com.someotherdomain.com')).to be nil + end end context 'self.key_from_fallback_message_id' do |