summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-05-18 11:47:33 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-05-18 11:47:33 +0000
commit40663fb94556195c4fc591bf3ad94936d670427f (patch)
treecb5c6e1ce4b8869c05b18fb52519736db8be0f88
parent83660e5712dde52767a0a22023785b9006b81c21 (diff)
parentbe73838bdfa01b7a80d087e421505dccf625ae55 (diff)
downloadgitlab-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.yml3
-rw-r--r--lib/gitlab/incoming_email.rb2
-rw-r--r--spec/lib/gitlab/incoming_email_spec.rb4
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