diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-05-18 11:47:33 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-05-18 11:47:33 +0000 |
commit | 40663fb94556195c4fc591bf3ad94936d670427f (patch) | |
tree | cb5c6e1ce4b8869c05b18fb52519736db8be0f88 | |
parent | 83660e5712dde52767a0a22023785b9006b81c21 (diff) | |
parent | be73838bdfa01b7a80d087e421505dccf625ae55 (diff) | |
download | gitlab-ce-40663fb94556195c4fc591bf3ad94936d670427f.tar.gz |
Merge branch 'ccr/regexp_anchor' into 'master'
Add anchor for incoming email regex, closes 44989
See merge request gitlab-org/gitlab-ce!18917
-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 |