# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: repository.proto for package 'gitaly'

require 'grpc'
require 'repository_pb'

module Gitaly
  module RepositoryService
    # RepositoryService is a service providing RPCs accessing repositories as a whole.
    class Service

      include ::GRPC::GenericService

      self.marshal_class_method = :encode
      self.unmarshal_class_method = :decode
      self.service_name = 'gitaly.RepositoryService'

      # This comment is left unintentionally blank.
      rpc :RepositoryExists, ::Gitaly::RepositoryExistsRequest, ::Gitaly::RepositoryExistsResponse
      # RepackIncremental is deprecated in favor of OptimizeRepository.
      rpc :RepackIncremental, ::Gitaly::RepackIncrementalRequest, ::Gitaly::RepackIncrementalResponse
      # RepackFull is deprecated in favor of OptimizeRepository.
      rpc :RepackFull, ::Gitaly::RepackFullRequest, ::Gitaly::RepackFullResponse
      # MidxRepack is deprecated in favor of OptimizeRepository.
      rpc :MidxRepack, ::Gitaly::MidxRepackRequest, ::Gitaly::MidxRepackResponse
      # GarbageCollect is deprecated in favor of OptimizeRepository.
      rpc :GarbageCollect, ::Gitaly::GarbageCollectRequest, ::Gitaly::GarbageCollectResponse
      # WriteCommitGraph is deprecated in favor of OptimizeRepository.
      rpc :WriteCommitGraph, ::Gitaly::WriteCommitGraphRequest, ::Gitaly::WriteCommitGraphResponse
      # This comment is left unintentionally blank.
      rpc :RepositorySize, ::Gitaly::RepositorySizeRequest, ::Gitaly::RepositorySizeResponse
      # This comment is left unintentionally blank.
      rpc :ApplyGitattributes, ::Gitaly::ApplyGitattributesRequest, ::Gitaly::ApplyGitattributesResponse
      # FetchRemote fetches references from a remote repository into the local
      # repository.
      rpc :FetchRemote, ::Gitaly::FetchRemoteRequest, ::Gitaly::FetchRemoteResponse
      # This comment is left unintentionally blank.
      rpc :CreateRepository, ::Gitaly::CreateRepositoryRequest, ::Gitaly::CreateRepositoryResponse
      # This comment is left unintentionally blank.
      rpc :GetArchive, ::Gitaly::GetArchiveRequest, stream(::Gitaly::GetArchiveResponse)
      # This comment is left unintentionally blank.
      rpc :HasLocalBranches, ::Gitaly::HasLocalBranchesRequest, ::Gitaly::HasLocalBranchesResponse
      # FetchSourceBranch fetches a branch from a second (potentially remote)
      # repository into the given repository.
      rpc :FetchSourceBranch, ::Gitaly::FetchSourceBranchRequest, ::Gitaly::FetchSourceBranchResponse
      # This comment is left unintentionally blank.
      rpc :Fsck, ::Gitaly::FsckRequest, ::Gitaly::FsckResponse
      # This comment is left unintentionally blank.
      rpc :WriteRef, ::Gitaly::WriteRefRequest, ::Gitaly::WriteRefResponse
      # This comment is left unintentionally blank.
      rpc :FindMergeBase, ::Gitaly::FindMergeBaseRequest, ::Gitaly::FindMergeBaseResponse
      # This comment is left unintentionally blank.
      rpc :CreateFork, ::Gitaly::CreateForkRequest, ::Gitaly::CreateForkResponse
      # This comment is left unintentionally blank.
      rpc :CreateRepositoryFromURL, ::Gitaly::CreateRepositoryFromURLRequest, ::Gitaly::CreateRepositoryFromURLResponse
      # CreateBundle creates a bundle from all refs
      rpc :CreateBundle, ::Gitaly::CreateBundleRequest, stream(::Gitaly::CreateBundleResponse)
      # CreateBundleFromRefList creates a bundle from a stream of ref patterns.
      # When the bundle would be empty the FailedPrecondition error code is returned.
      rpc :CreateBundleFromRefList, stream(::Gitaly::CreateBundleFromRefListRequest), stream(::Gitaly::CreateBundleFromRefListResponse)
      # FetchBundle fetches references from a bundle into the local repository.
      # Refs will be mirrored to the target repository with the refspec
      # "+refs/*:refs/*" and refs that do not exist in the bundle will be removed.
      rpc :FetchBundle, stream(::Gitaly::FetchBundleRequest), ::Gitaly::FetchBundleResponse
      # This comment is left unintentionally blank.
      rpc :CreateRepositoryFromBundle, stream(::Gitaly::CreateRepositoryFromBundleRequest), ::Gitaly::CreateRepositoryFromBundleResponse
      # GetConfig reads the target repository's gitconfig and streams its contents
      # back. Returns a NotFound error in case no gitconfig was found.
      rpc :GetConfig, ::Gitaly::GetConfigRequest, stream(::Gitaly::GetConfigResponse)
      # This comment is left unintentionally blank.
      rpc :FindLicense, ::Gitaly::FindLicenseRequest, ::Gitaly::FindLicenseResponse
      # This comment is left unintentionally blank.
      rpc :GetInfoAttributes, ::Gitaly::GetInfoAttributesRequest, stream(::Gitaly::GetInfoAttributesResponse)
      # This comment is left unintentionally blank.
      rpc :CalculateChecksum, ::Gitaly::CalculateChecksumRequest, ::Gitaly::CalculateChecksumResponse
      # Cleanup is deprecated in favor of OptimizeRepository.
      rpc :Cleanup, ::Gitaly::CleanupRequest, ::Gitaly::CleanupResponse
      # This comment is left unintentionally blank.
      rpc :GetSnapshot, ::Gitaly::GetSnapshotRequest, stream(::Gitaly::GetSnapshotResponse)
      # This comment is left unintentionally blank.
      rpc :CreateRepositoryFromSnapshot, ::Gitaly::CreateRepositoryFromSnapshotRequest, ::Gitaly::CreateRepositoryFromSnapshotResponse
      # This comment is left unintentionally blank.
      rpc :GetRawChanges, ::Gitaly::GetRawChangesRequest, stream(::Gitaly::GetRawChangesResponse)
      # This comment is left unintentionally blank.
      rpc :SearchFilesByContent, ::Gitaly::SearchFilesByContentRequest, stream(::Gitaly::SearchFilesByContentResponse)
      # This comment is left unintentionally blank.
      rpc :SearchFilesByName, ::Gitaly::SearchFilesByNameRequest, stream(::Gitaly::SearchFilesByNameResponse)
      # This comment is left unintentionally blank.
      rpc :RestoreCustomHooks, stream(::Gitaly::RestoreCustomHooksRequest), ::Gitaly::RestoreCustomHooksResponse
      # This comment is left unintentionally blank.
      rpc :BackupCustomHooks, ::Gitaly::BackupCustomHooksRequest, stream(::Gitaly::BackupCustomHooksResponse)
      # This comment is left unintentionally blank.
      rpc :GetObjectDirectorySize, ::Gitaly::GetObjectDirectorySizeRequest, ::Gitaly::GetObjectDirectorySizeResponse
      # RemoveRepository will move the repository to `+gitaly/tmp/<relative_path>_removed` and
      # eventually remove it. This ensures that even on networked filesystems the
      # data is actually removed even if there's someone still handling the data.
      rpc :RemoveRepository, ::Gitaly::RemoveRepositoryRequest, ::Gitaly::RemoveRepositoryResponse
      # This comment is left unintentionally blank.
      rpc :RenameRepository, ::Gitaly::RenameRepositoryRequest, ::Gitaly::RenameRepositoryResponse
      # This comment is left unintentionally blank.
      rpc :ReplicateRepository, ::Gitaly::ReplicateRepositoryRequest, ::Gitaly::ReplicateRepositoryResponse
      # OptimizeRepository performs all maintenance tasks in a repository to keep
      # it in an efficient state. It cleans up stale data, repacks objects,
      # updates auxiliary caches like commit-graphs and packs references. The
      # optimizations performed are based on heuristics and will adapt to the
      # repository's size. This RPC call is designed as a black-box such that
      # Gitaly has complete control of the on-disk state of repositories.
      rpc :OptimizeRepository, ::Gitaly::OptimizeRepositoryRequest, ::Gitaly::OptimizeRepositoryResponse
      # PruneUnreachableObjects will prune all objects which aren't reachable from
      # the repository's current set of references. Because pruning can only
      # happen for objects which aren't packed, you are required to first run
      # OptimizeRepository to explode any unreachable objects into loose objects.
      #
      # Furthermore, this RPC call has a grace period of 30 minutes: any
      # unreachable loose objects must not have been accessed or modified in the
      # last 30 minutes. This is a hard requirement to avoid repository corruption.
      #
      # To make proper use of this RPC you thus need to call OptimizeRepository,
      # wait 30 minutes, and then call PruneUnreachableObjects.
      rpc :PruneUnreachableObjects, ::Gitaly::PruneUnreachableObjectsRequest, ::Gitaly::PruneUnreachableObjectsResponse
      # SetFullPath writes the "gitlab.fullpath" configuration into the
      # repository's gitconfig. This is mainly to help debugging purposes in case
      # an admin inspects the repository's gitconfig such that he can easily see
      # what the repository name is.
      rpc :SetFullPath, ::Gitaly::SetFullPathRequest, ::Gitaly::SetFullPathResponse
      # FullPath reads the "gitlab.fullpath" configuration from the repository's
      # gitconfig. Returns an error in case the full path has not been configured.
      rpc :FullPath, ::Gitaly::FullPathRequest, ::Gitaly::FullPathResponse
    end

    Stub = Service.rpc_stub_class
  end
end
