diff --git a/lib/gitlab/gfm/reference_rewriter.rb b/lib/gitlab/gfm/reference_rewriter.rb index edc96a5e83b71a3e94c9933f2f62a4eb2a044e02..a1c6ee7bd6908642d6b2c9fc401f6f7c1e8cf34e 100644 --- a/lib/gitlab/gfm/reference_rewriter.rb +++ b/lib/gitlab/gfm/reference_rewriter.rb @@ -49,12 +49,14 @@ module Gitlab def unfold_reference(reference, match, target_project) before = @text[0...match.begin(0)] after = @text[match.end(0)..-1] - referable = find_referable(reference) + referable = find_referable(reference) return reference unless referable + cross_reference = referable.to_reference(target_project) - new_text = before + cross_reference + after + return reference if reference == cross_reference + new_text = before + cross_reference + after substitution_valid?(new_text) ? cross_reference : reference end