gitlab-ce/lib/gitlab/bare_repository_import/repository.rb

43 lines
961 B
Ruby

module Gitlab
module BareRepositoryImport
class Repository
attr_reader :group_path, :project_name, :repo_path
def initialize(root_path, repo_path)
@root_path = root_path
@repo_path = repo_path
# Split path into 'all/the/namespaces' and 'project_name'
@group_path, _, @project_name = repo_relative_path.rpartition('/')
end
def wiki_exists?
File.exist?(wiki_path)
end
def wiki?
@wiki ||= repo_path.end_with?('.wiki.git')
end
def wiki_path
@wiki_path ||= repo_path.sub(/\.git$/, '.wiki.git')
end
def hashed?
@hashed ||= group_path.start_with?('@hashed')
end
def project_full_path
@project_full_path ||= "#{group_path}/#{project_name}"
end
private
def repo_relative_path
# Remove root path and `.git` at the end
repo_path[@root_path.size...-4]
end
end
end
end