summaryrefslogtreecommitdiff
path: root/lib/gitlab/gitaly_client/util.rb
blob: da43c616b9480bcd3458c7a5b5d2b17f4d44c58d (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
30
31
32
33
34
35
36
37
38
39
40
41
module Gitlab
  module GitalyClient
    module Util
      class << self
        def repository(repository_storage, relative_path, gl_repository)
          Gitaly::Repository.new(
            storage_name: repository_storage,
            relative_path: relative_path,
            gl_repository: gl_repository,
            git_object_directory: Gitlab::Git::Env['GIT_OBJECT_DIRECTORY'].to_s,
            git_alternate_object_directories: Array.wrap(Gitlab::Git::Env['GIT_ALTERNATE_OBJECT_DIRECTORIES'])
          )
        end

        def gitaly_user(gitlab_user)
          return unless gitlab_user

          Gitaly::User.new(
            gl_id: Gitlab::GlId.gl_id(gitlab_user),
            name: GitalyClient.encode(gitlab_user.name),
            email: GitalyClient.encode(gitlab_user.email)
          )
        end

        def gitlab_tag_from_gitaly_tag(repository, gitaly_tag)
          if gitaly_tag.target_commit.present?
            commit = Gitlab::Git::Commit.decorate(repository, gitaly_tag.target_commit)
          end

          Gitlab::Git::Tag.new(
            repository,
            Gitlab::EncodingHelper.encode!(gitaly_tag.name.dup),
            gitaly_tag.id,
            commit,
            Gitlab::EncodingHelper.encode!(gitaly_tag.message.chomp)
          )
        end
      end
    end
  end
end