diff options
author | Douwe Maan <douwe@selenight.nl> | 2018-06-18 17:47:20 +0200 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2018-06-18 17:47:29 +0200 |
commit | 96f8ad0683619bb852931f4005f0b83c8337e8e6 (patch) | |
tree | f4b198926abd63f92bbc16898d726d19d359ecae | |
parent | 99fdbe4c230205510e1d7061e68bb1a003913d4b (diff) | |
download | gitlab-ce-96f8ad0683619bb852931f4005f0b83c8337e8e6.tar.gz |
Properly detect label reference if followed by period or question mark
-rw-r--r-- | app/models/label.rb | 15 | ||||
-rw-r--r-- | changelogs/unreleased/dm-label-reference-period.yml | 5 | ||||
-rw-r--r-- | spec/lib/banzai/filter/label_reference_filter_spec.rb | 4 |
3 files changed, 17 insertions, 7 deletions
diff --git a/app/models/label.rb b/app/models/label.rb index 1cf04976602..7bbcaa121ca 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -85,11 +85,16 @@ class Label < ActiveRecord::Base (#{Project.reference_pattern})? #{Regexp.escape(reference_prefix)} (?: - (?<label_id>\d+(?!\S\w)\b) | # Integer-based label ID, or - (?<label_name> - [A-Za-z0-9_\-\?\.&]+ | # String-based single-word label title, or - ".+?" # String-based multi-word label surrounded in quotes - ) + (?<label_id>\d+(?!\S\w)\b) + | # Integer-based label ID, or + (?<label_name> + # String-based single-word label title, or + [A-Za-z0-9_\-\?\.&]+ + (?<!\.|\?) + | + # String-based multi-word label surrounded in quotes + ".+?" + ) ) }x end diff --git a/changelogs/unreleased/dm-label-reference-period.yml b/changelogs/unreleased/dm-label-reference-period.yml new file mode 100644 index 00000000000..9fdd590641d --- /dev/null +++ b/changelogs/unreleased/dm-label-reference-period.yml @@ -0,0 +1,5 @@ +--- +title: Properly detect label reference if followed by period or question mark +merge_request: +author: +type: fixed diff --git a/spec/lib/banzai/filter/label_reference_filter_spec.rb b/spec/lib/banzai/filter/label_reference_filter_spec.rb index b30f3661e70..f34d3dc935b 100644 --- a/spec/lib/banzai/filter/label_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/label_reference_filter_spec.rb @@ -149,8 +149,8 @@ describe Banzai::Filter::LabelReferenceFilter do end it 'links with adjacent text' do - doc = reference_filter("Label (#{reference}).") - expect(doc.to_html).to match(%r(\(<a.+><span.+>\?g\.fm&</span></a>\)\.)) + doc = reference_filter("Label #{reference}.") + expect(doc.to_html).to match(%r(<a.+><span.+>\?g\.fm&</span></a>\.)) end it 'ignores invalid label names' do |