summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Provaznik <jprovaznik@gitlab.com>2017-12-07 08:07:51 +0100
committerJan Provaznik <jprovaznik@gitlab.com>2017-12-07 08:42:51 +0100
commit896b14a19f66f6c53747600a6af156a2767afa0c (patch)
tree9eec95cc74b8a4cc39962d819cf27123db6e390a
parent29e39e55c3d4b5c6c34c6faec84b0dcd5a3efffa (diff)
downloadgitlab-ce-jprovaznik-numbers.tar.gz
Change order of banzai filtersjprovaznik-numbers
TableOfContents filter is moved later in the pipeline because it generates anchor links which are then considered as issue references by IssueReference filter. Closes #38473
-rw-r--r--changelogs/unreleased/anchor-issue-references.yml6
-rw-r--r--lib/banzai/pipeline/gfm_pipeline.rb3
-rw-r--r--spec/lib/gitlab/reference_extractor_spec.rb9
3 files changed, 17 insertions, 1 deletions
diff --git a/changelogs/unreleased/anchor-issue-references.yml b/changelogs/unreleased/anchor-issue-references.yml
new file mode 100644
index 00000000000..2e60c3a0781
--- /dev/null
+++ b/changelogs/unreleased/anchor-issue-references.yml
@@ -0,0 +1,6 @@
+---
+title: Fix false positive issue references in merge requests caused by header anchor
+ links.
+merge_request:
+author: jprovaznik
+type: fixed
diff --git a/lib/banzai/pipeline/gfm_pipeline.rb b/lib/banzai/pipeline/gfm_pipeline.rb
index 55874ad50a3..875a5eec460 100644
--- a/lib/banzai/pipeline/gfm_pipeline.rb
+++ b/lib/banzai/pipeline/gfm_pipeline.rb
@@ -20,7 +20,6 @@ module Banzai
Filter::ImageLazyLoadFilter,
Filter::ImageLinkFilter,
Filter::EmojiFilter,
- Filter::TableOfContentsFilter,
Filter::AutolinkFilter,
Filter::ExternalLinkFilter,
@@ -34,6 +33,8 @@ module Banzai
Filter::LabelReferenceFilter,
Filter::MilestoneReferenceFilter,
+ Filter::TableOfContentsFilter,
+
Filter::TaskListFilter,
Filter::InlineDiffFilter,
diff --git a/spec/lib/gitlab/reference_extractor_spec.rb b/spec/lib/gitlab/reference_extractor_spec.rb
index 476a3f1998d..bce0fa2ea8f 100644
--- a/spec/lib/gitlab/reference_extractor_spec.rb
+++ b/spec/lib/gitlab/reference_extractor_spec.rb
@@ -115,6 +115,15 @@ describe Gitlab::ReferenceExtractor do
end
end
+ it 'does not include anchors from table of contents in issue references' do
+ issue1 = create(:issue, project: project)
+ issue2 = create(:issue, project: project)
+
+ subject.analyze("not real issue <h4>#{issue1.iid}</h4>, real issue #{issue2.to_reference}")
+
+ expect(subject.issues).to match_array([issue2])
+ end
+
it 'accesses valid issue objects' do
@i0 = create(:issue, project: project)
@i1 = create(:issue, project: project)