summaryrefslogtreecommitdiff
path: root/app/models/commit.rb
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-05-14 16:59:39 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-05-26 15:48:32 -0400
commitb88da58cb6272a86b6df2e4efe392f10e689a6b2 (patch)
tree1271524cfe6fa5d733cc847c72b96a19810d06aa /app/models/commit.rb
parent94af050117df20a661e03055a5002cae90282d6d (diff)
downloadgitlab-ce-b88da58cb6272a86b6df2e4efe392f10e689a6b2.tar.gz
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}"