Skip to content
Snippets Groups Projects
Commit 62c14ba2 authored by Douwe Maan's avatar Douwe Maan
Browse files

Render commit reference using short sha, but include full sha in comment.

parent bd4ab21c
No related branches found
No related tags found
1 merge request!9888Add New Feature File finder(recreate - #9855)
Loading
Loading
@@ -86,6 +86,14 @@ class Commit
end
 
def to_reference(from_project = nil)
if cross_project_reference?(from_project)
project.to_reference + self.class.reference_prefix + self.id
else
self.id
end
end
def reference_link_text(from_project = nil)
if cross_project_reference?(from_project)
project.to_reference + self.class.reference_prefix + self.short_id
else
Loading
Loading
Loading
Loading
@@ -95,6 +95,14 @@ class CommitRange
alias_method :id, :to_s
 
def to_reference(from_project = nil)
if cross_project_reference?(from_project)
reference = project.to_reference + self.class.reference_prefix + self.id
else
self.id
end
end
def reference_link_text(from_project = nil)
reference = ref_from + notation + ref_to
 
if cross_project_reference?(from_project)
Loading
Loading
Loading
Loading
@@ -21,6 +21,10 @@ module Referable
''
end
 
def reference_link_text(from_project = nil)
to_reference(from_project)
end
module ClassMethods
# The character that prefixes the actual reference identifier
#
Loading
Loading
Loading
Loading
@@ -82,7 +82,7 @@ module Gitlab
data = data_attribute(project: project.id, object_sym => object.id, original: match)
url = matches[:url] || url_for_object(object, project)
 
text = object.to_reference(context[:project])
text = object.reference_link_text(context[:project])
 
extras = object_link_text_extras(object, matches)
text += " (#{extras.join(", ")})" if extras.any?
Loading
Loading
Loading
Loading
@@ -53,7 +53,7 @@ module Gitlab::Markdown
it 'links with adjacent text' do
doc = filter("See (#{reference}.)")
 
exp = Regexp.escape(range.to_reference)
exp = Regexp.escape(range.reference_link_text)
expect(doc.to_html).to match(/\(<a.+>#{exp}<\/a>\.\)/)
end
 
Loading
Loading
@@ -125,7 +125,7 @@ module Gitlab::Markdown
it 'links with adjacent text' do
doc = filter("Fixed (#{reference}.)")
 
exp = Regexp.escape("#{project2.to_reference}@#{range.to_reference}")
exp = Regexp.escape("#{project2.to_reference}@#{range.reference_link_text}")
expect(doc.to_html).to match(/\(<a.+>#{exp}<\/a>\.\)/)
end
 
Loading
Loading
@@ -163,7 +163,7 @@ module Gitlab::Markdown
it 'links with adjacent text' do
doc = filter("Fixed (#{reference}.)")
 
exp = Regexp.escape(range.to_reference(project))
exp = Regexp.escape(range.reference_link_text(project))
expect(doc.to_html).to match(/\(<a.+>#{exp}<\/a>\.\)/)
end
 
Loading
Loading
Loading
Loading
@@ -148,7 +148,7 @@ module Gitlab::Markdown
it 'links with adjacent text' do
doc = filter("Fixed (#{reference}.)")
 
expect(doc.to_html).to match(/\(<a.+>#{commit.to_reference(project)}<\/a>\.\)/)
expect(doc.to_html).to match(/\(<a.+>#{commit.reference_link_text(project)}<\/a>\.\)/)
end
 
it 'ignores invalid commit IDs on the referenced project' do
Loading
Loading
Loading
Loading
@@ -38,15 +38,31 @@ describe CommitRange do
let(:cross) { create(:project) }
 
it 'returns a String reference to the object' do
expect(range.to_reference).to eq "#{sha_from}...#{sha_to}"
expect(range.to_reference).to eq "#{full_sha_from}...#{full_sha_to}"
end
 
it 'returns a String reference to the object' do
expect(range2.to_reference).to eq "#{sha_from}..#{sha_to}"
expect(range2.to_reference).to eq "#{full_sha_from}..#{full_sha_to}"
end
 
it 'supports a cross-project reference' do
expect(range.to_reference(cross)).to eq "#{project.to_reference}@#{sha_from}...#{sha_to}"
expect(range.to_reference(cross)).to eq "#{project.to_reference}@#{full_sha_from}...#{full_sha_to}"
end
end
describe '#reference_link_text' do
let(:cross) { create(:project) }
it 'returns a String reference to the object' do
expect(range.reference_link_text).to eq "#{sha_from}...#{sha_to}"
end
it 'returns a String reference to the object' do
expect(range2.reference_link_text).to eq "#{sha_from}..#{sha_to}"
end
it 'supports a cross-project reference' do
expect(range.reference_link_text(cross)).to eq "#{project.to_reference}@#{sha_from}...#{sha_to}"
end
end
 
Loading
Loading
Loading
Loading
@@ -15,12 +15,23 @@ describe Commit do
 
describe '#to_reference' do
it 'returns a String reference to the object' do
expect(commit.to_reference).to eq commit.short_id
expect(commit.to_reference).to eq commit.id
end
 
it 'supports a cross-project reference' do
cross = double('project')
expect(commit.to_reference(cross)).to eq "#{project.to_reference}@#{commit.short_id}"
expect(commit.to_reference(cross)).to eq "#{project.to_reference}@#{commit.id}"
end
end
describe '#reference_link_text' do
it 'returns a String reference to the object' do
expect(commit.reference_link_text).to eq commit.short_id
end
it 'supports a cross-project reference' do
cross = double('project')
expect(commit.reference_link_text(cross)).to eq "#{project.to_reference}@#{commit.short_id}"
end
end
 
Loading
Loading
@@ -88,7 +99,7 @@ eos
subject { create(:project).commit }
 
let(:author) { create(:user, email: subject.author_email) }
let(:backref_text) { "commit #{subject.short_id}" }
let(:backref_text) { "commit #{subject.id}" }
let(:set_mentionable_text) do
->(txt) { allow(subject).to receive(:safe_message).and_return(txt) }
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment