Commit b3314704 authored by Douwe Maan's avatar Douwe Maan Committed by Valery Sizov

Update ExternalIssueReferenceFilter.

parent 0f30be02
...@@ -23,6 +23,18 @@ module Gitlab ...@@ -23,6 +23,18 @@ module Gitlab
end end
end end
def self.referenced_by(node)
project = Project.find(node.attr("data-project")) rescue nil
return unless project
id = node.attr("data-external-issue")
external_issue = ExternalIssue.new(id, project)
return unless external_issue
{ external_issue: external_issue }
end
def call def call
# Early return if the project isn't using an external tracker # Early return if the project isn't using an external tracker
return doc if project.nil? || project.default_issues_tracker? return doc if project.nil? || project.default_issues_tracker?
...@@ -43,15 +55,13 @@ module Gitlab ...@@ -43,15 +55,13 @@ module Gitlab
project = context[:project] project = context[:project]
self.class.references_in(text) do |match, id| self.class.references_in(text) do |match, id|
issue = ExternalIssue.new(id, project) ExternalIssue.new(id, project)
push_result(:external_issue, issue)
url = url_for_issue(id, project, only_path: context[:only_path]) url = url_for_issue(id, project, only_path: context[:only_path])
title = escape_once("Issue in #{project.external_issue_tracker.title}") title = escape_once("Issue in #{project.external_issue_tracker.title}")
klass = reference_class(:issue) klass = reference_class(:issue)
data = data_attribute(project: project.id) data = data_attribute(project: project.id, external_issue: id)
%(<a href="#{url}" #{data} %(<a href="#{url}" #{data}
title="#{title}" title="#{title}"
......
...@@ -78,7 +78,7 @@ module Gitlab::Markdown ...@@ -78,7 +78,7 @@ module Gitlab::Markdown
it 'adds to the results hash' do it 'adds to the results hash' do
ext = JiraIssue.new(reference, project) ext = JiraIssue.new(reference, project)
result = pipeline_result("Issue #{reference}") result = reference_pipeline_result("Issue #{reference}")
expect(result[:references][:external_issue]).not_to be_empty expect(result[:references][:external_issue]).not_to be_empty
expect(result[:references][:external_issue]).to eq [ext] expect(result[:references][:external_issue]).to eq [ext]
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment