Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-29 15:09:08 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-29 15:09:08 +0300
commit7cc6872401eb487ed20dbb9d455f8bb9c97d9e39 (patch)
tree63f6ed5d4e6c5cec31c43363626d9f5b178eddf8 /app/models
parent46b10c0fc884400941c17e2777b242ac54d111e5 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models')
-rw-r--r--app/models/commit.rb6
-rw-r--r--app/models/commit_range.rb4
-rw-r--r--app/models/concerns/referable.rb8
-rw-r--r--app/models/issue.rb2
-rw-r--r--app/models/label.rb2
-rw-r--r--app/models/merge_request.rb2
-rw-r--r--app/models/milestone.rb2
-rw-r--r--app/models/project.rb13
-rw-r--r--app/models/snippet.rb2
9 files changed, 28 insertions, 13 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 460725b2016..31a890096e9 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -484,10 +484,10 @@ class Commit
end
def commit_reference(from, referable_commit_id, full: false)
- reference = project.to_reference(from, full: full)
+ base = project.to_reference_base(from, full: full)
- if reference.present?
- "#{reference}#{self.class.reference_prefix}#{referable_commit_id}"
+ if base.present?
+ "#{base}#{self.class.reference_prefix}#{referable_commit_id}"
else
referable_commit_id
end
diff --git a/app/models/commit_range.rb b/app/models/commit_range.rb
index 08ca86bc902..08f1eb3731e 100644
--- a/app/models/commit_range.rb
+++ b/app/models/commit_range.rb
@@ -92,7 +92,7 @@ class CommitRange
alias_method :id, :to_s
def to_reference(from = nil, full: false)
- project_reference = project.to_reference(from, full: full)
+ project_reference = project.to_reference_base(from, full: full)
if project_reference.present?
project_reference + self.class.reference_prefix + self.id
@@ -102,7 +102,7 @@ class CommitRange
end
def reference_link_text(from = nil)
- project_reference = project.to_reference(from)
+ project_reference = project.to_reference_base(from)
reference = ref_from + notation + ref_to
if project_reference.present?
diff --git a/app/models/concerns/referable.rb b/app/models/concerns/referable.rb
index 3b0606aa425..40edd3b3ead 100644
--- a/app/models/concerns/referable.rb
+++ b/app/models/concerns/referable.rb
@@ -23,6 +23,14 @@ module Referable
''
end
+ # If this referable object can serve as the base for the
+ # reference of child objects (e.g. projects are the base of
+ # issues), but it is formatted differently, then you may wish
+ # to override this method.
+ def to_reference_base(from = nil, full:)
+ to_reference(from, full: full)
+ end
+
def reference_link_text(from = nil)
to_reference(from)
end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index bf600278162..3823b5e0fba 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -173,7 +173,7 @@ class Issue < ApplicationRecord
def to_reference(from = nil, full: false)
reference = "#{self.class.reference_prefix}#{iid}"
- "#{project.to_reference(from, full: full)}#{reference}"
+ "#{project.to_reference_base(from, full: full)}#{reference}"
end
def suggested_branch_name
diff --git a/app/models/label.rb b/app/models/label.rb
index dbb96a2b9da..938ecb323e2 100644
--- a/app/models/label.rb
+++ b/app/models/label.rb
@@ -225,7 +225,7 @@ class Label < ApplicationRecord
reference = "#{self.class.reference_prefix}#{format_reference}"
if from
- "#{from.to_reference(target_project, full: full)}#{reference}"
+ "#{from.to_reference_base(target_project, full: full)}#{reference}"
else
reference
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 50346d97d8b..48c5c0152b5 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -396,7 +396,7 @@ class MergeRequest < ApplicationRecord
def to_reference(from = nil, full: false)
reference = "#{self.class.reference_prefix}#{iid}"
- "#{project.to_reference(from, full: full)}#{reference}"
+ "#{project.to_reference_base(from, full: full)}#{reference}"
end
def commits(limit: nil)
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index 5da92fc4bc5..f709e518047 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -228,7 +228,7 @@ class Milestone < ApplicationRecord
reference = "#{self.class.reference_prefix}#{format_reference}"
if project
- "#{project.to_reference(from, full: full)}#{reference}"
+ "#{project.to_reference_base(from, full: full)}#{reference}"
else
reference
end
diff --git a/app/models/project.rb b/app/models/project.rb
index f8c201d73e5..3aa8430f3a2 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1068,12 +1068,19 @@ class Project < ApplicationRecord
end
end
- def to_reference_with_postfix
- "#{to_reference(full: true)}#{self.class.reference_postfix}"
+ # Produce a valid reference (see Referable#to_reference)
+ #
+ # NB: For projects, all references are 'full' - i.e. they all include the
+ # full_path, rather than just the project name. For this reason, we ignore
+ # the value of `full:` passed to this method, which is part of the Referable
+ # interface.
+ def to_reference(from = nil, full: false)
+ base = to_reference_base(from, full: true)
+ "#{base}#{self.class.reference_postfix}"
end
# `from` argument can be a Namespace or Project.
- def to_reference(from = nil, full: false)
+ def to_reference_base(from = nil, full: false)
if full || cross_namespace_reference?(from)
full_path
elsif cross_project_reference?(from)
diff --git a/app/models/snippet.rb b/app/models/snippet.rb
index 19685cdb78e..77ec683f584 100644
--- a/app/models/snippet.rb
+++ b/app/models/snippet.rb
@@ -180,7 +180,7 @@ class Snippet < ApplicationRecord
reference = "#{self.class.reference_prefix}#{id}"
if project.present?
- "#{project.to_reference(from, full: full)}#{reference}"
+ "#{project.to_reference_base(from, full: full)}#{reference}"
else
reference
end