summaryrefslogtreecommitdiff
path: root/lib/gitlab/gitaly_client/util.rb
blob: dce5d6a8ad0f47720c33148af985a623f5e60aa9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

module Gitlab
  module GitalyClient
    module Util
      class << self
        def repository(repository_storage, relative_path, gl_repository)
          git_env = Gitlab::Git::HookEnv.all(gl_repository)
          git_object_directory = git_env['GIT_OBJECT_DIRECTORY_RELATIVE'].presence
          git_alternate_object_directories = Array.wrap(git_env['GIT_ALTERNATE_OBJECT_DIRECTORIES_RELATIVE'])

          Gitaly::Repository.new(
            storage_name: repository_storage,
            relative_path: relative_path,
            gl_repository: gl_repository.to_s,
            git_object_directory: git_object_directory.to_s,
            git_alternate_object_directories: git_alternate_object_directories
          )
        end

        def git_repository(gitaly_repository)
          Gitlab::Git::Repository.new(gitaly_repository.storage_name,
                                      gitaly_repository.relative_path,
                                      gitaly_repository.gl_repository)
        end
      end
    end
  end
end