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:
authorRobert Speicher <rspeicher@gmail.com>2015-05-14 23:59:39 +0300
committerRobert Speicher <rspeicher@gmail.com>2015-05-26 22:48:32 +0300
commitb88da58cb6272a86b6df2e4efe392f10e689a6b2 (patch)
tree1271524cfe6fa5d733cc847c72b96a19810d06aa /app/models/commit.rb
parent94af050117df20a661e03055a5002cae90282d6d (diff)
Add `reference_pattern` to Referable models
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r--app/models/commit.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 085f4e6398f..2c244fc0410 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -62,6 +62,19 @@ class Commit
(self.class === other) && (raw == other.raw)
end
+ def self.reference_prefix
+ '@'
+ end
+
+ # Pattern used to extract commit references from text
+ #
+ # The SHA can be between 6 and 40 hex characters.
+ #
+ # This pattern supports cross-project references.
+ def self.reference_pattern
+ %r{(?:#{Project.reference_pattern}#{reference_prefix})?(?<commit>\h{6,40})}
+ end
+
def to_reference(from_project = nil)
if cross_project_reference?(from_project)
"#{project.to_reference}@#{id}"