diff --git a/conftest.py b/conftest.py
index 869f612e932c96964406699478a1dc2d364573af_Y29uZnRlc3QucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_Y29uZnRlc3QucHk= 100644
--- a/conftest.py
+++ b/conftest.py
@@ -12,7 +12,7 @@
 from hgitaly.stub.commit_pb2_grpc import add_CommitServiceServicer_to_server
 from hgitaly.stub.ref_pb2_grpc import add_RefServiceServicer_to_server
 from hgitaly.stub.diff_pb2_grpc import add_DiffServiceServicer_to_server
-from hgitaly.stub.repository_service_pb2_grpc import (
+from hgitaly.stub.repository_pb2_grpc import (
     add_RepositoryServiceServicer_to_server
 )
 from hgitaly.stub.mercurial_changeset_pb2_grpc import (
diff --git a/generate-stubs b/generate-stubs
index 869f612e932c96964406699478a1dc2d364573af_Z2VuZXJhdGUtc3R1YnM=..b1170af16fc094077f2e3096568883a0ba7590c7_Z2VuZXJhdGUtc3R1YnM= 100755
--- a/generate-stubs
+++ b/generate-stubs
@@ -5,7 +5,7 @@
 PROTOS_DIR=./protos
 STUBS_DIR=hgitaly/stub
 
-for PROTO in lint shared blob commit diff ref repository-service server mercurial-repository mercurial-changeset; do
+for PROTO in lint shared errors blob commit diff ref repository server mercurial-repository mercurial-changeset; do
     python -m grpc_tools.protoc \
       -I${PROTOS_DIR} \
       --python_out=${STUBS_DIR} \
diff --git a/hgitaly/server/mono.py b/hgitaly/server/mono.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zZXJ2ZXIvbW9uby5weQ==..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zZXJ2ZXIvbW9uby5weQ== 100644
--- a/hgitaly/server/mono.py
+++ b/hgitaly/server/mono.py
@@ -36,7 +36,7 @@
 from ..stub.commit_pb2_grpc import add_CommitServiceServicer_to_server
 from ..stub.ref_pb2_grpc import add_RefServiceServicer_to_server
 from ..stub.diff_pb2_grpc import add_DiffServiceServicer_to_server
-from ..stub.repository_service_pb2_grpc import (
+from ..stub.repository_pb2_grpc import (
     add_RepositoryServiceServicer_to_server
 )
 from ..stub.mercurial_changeset_pb2_grpc import (
diff --git a/hgitaly/service/diff.py b/hgitaly/service/diff.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zZXJ2aWNlL2RpZmYucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zZXJ2aWNlL2RpZmYucHk= 100644
--- a/hgitaly/service/diff.py
+++ b/hgitaly/service/diff.py
@@ -481,8 +481,8 @@
             if ctx is None:
                 yield not_found(
                     context, FindChangedPathsResponse,
-                    'FindChangedPaths: commit: %s can not be '
-                    'found' % pycompat.sysstr(cid)
+                    'resolving commit: '
+                    'revision can not be found: "%s"' % pycompat.sysstr(cid)
                 )
                 return
             csets.append(ctx)
diff --git a/hgitaly/service/repository.py b/hgitaly/service/repository.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zZXJ2aWNlL3JlcG9zaXRvcnkucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zZXJ2aWNlL3JlcG9zaXRvcnkucHk= 100644
--- a/hgitaly/service/repository.py
+++ b/hgitaly/service/repository.py
@@ -61,7 +61,7 @@
     gitlab_revision_changeset,
     resolve_revspecs_positive_negative,
 )
-from ..stub.repository_service_pb2 import (
+from ..stub.repository_pb2 import (
     BackupCustomHooksRequest,
     BackupCustomHooksResponse,
     CreateBundleRequest,
@@ -99,7 +99,7 @@
     ApplyGitattributesRequest,
     ApplyGitattributesResponse,
 )
-from ..stub.repository_service_pb2_grpc import RepositoryServiceServicer
+from ..stub.repository_pb2_grpc import RepositoryServiceServicer
 from ..stub.shared_pb2 import (
     Repository,
 )
diff --git a/hgitaly/service/tests/test_default_branch.py b/hgitaly/service/tests/test_default_branch.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfZGVmYXVsdF9icmFuY2gucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfZGVmYXVsdF9icmFuY2gucHk= 100644
--- a/hgitaly/service/tests/test_default_branch.py
+++ b/hgitaly/service/tests/test_default_branch.py
@@ -12,8 +12,8 @@
 
 from hgitaly.stub.ref_pb2 import FindDefaultBranchNameRequest
 from hgitaly.stub.ref_pb2_grpc import RefServiceStub
-from hgitaly.stub.repository_service_pb2 import WriteRefRequest
-from hgitaly.stub.repository_service_pb2_grpc import RepositoryServiceStub
+from hgitaly.stub.repository_pb2 import WriteRefRequest
+from hgitaly.stub.repository_pb2_grpc import RepositoryServiceStub
 from ..ref import DEFAULT_BRANCH_FILE_NAME
 
 DEFAULT_BRANCH_FILE_NAME = pycompat.sysstr(DEFAULT_BRANCH_FILE_NAME)
diff --git a/hgitaly/service/tests/test_diff.py b/hgitaly/service/tests/test_diff.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfZGlmZi5weQ==..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfZGlmZi5weQ== 100644
--- a/hgitaly/service/tests/test_diff.py
+++ b/hgitaly/service/tests/test_diff.py
@@ -522,8 +522,4 @@
     with pytest.raises(grpc.RpcError) as exc_info:
         do_rpc([wrong_cid])
     assert exc_info.value.code() == grpc.StatusCode.NOT_FOUND
-    assert (
-        'FindChangedPaths: commit: %s can not be found' % (sysstr(wrong_cid))
-        ==
-        exc_info.value.details()
-    )
+    assert sysstr(wrong_cid) in exc_info.value.details()
diff --git a/hgitaly/service/tests/test_repository_service.py b/hgitaly/service/tests/test_repository_service.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfcmVwb3NpdG9yeV9zZXJ2aWNlLnB5..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfcmVwb3NpdG9yeV9zZXJ2aWNlLnB5 100644
--- a/hgitaly/service/tests/test_repository_service.py
+++ b/hgitaly/service/tests/test_repository_service.py
@@ -33,7 +33,7 @@
 from hgitaly.stub.shared_pb2 import Repository
 from hgitaly import stream
 
-from hgitaly.stub.repository_service_pb2 import (
+from hgitaly.stub.repository_pb2 import (
     BackupCustomHooksRequest,
     CreateBundleRequest,
     CreateRepositoryFromBundleRequest,
@@ -49,7 +49,7 @@
     SetFullPathRequest,
     WriteRefRequest,
 )
-from hgitaly.stub.repository_service_pb2_grpc import RepositoryServiceStub
+from hgitaly.stub.repository_pb2_grpc import RepositoryServiceStub
 from mercurial import (
     error,
     node as node_mod,
diff --git a/hgitaly/stub/blob_pb2.py b/hgitaly/stub/blob_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL2Jsb2JfcGIyLnB5..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL2Jsb2JfcGIyLnB5 100644
--- a/hgitaly/stub/blob_pb2.py
+++ b/hgitaly/stub/blob_pb2.py
@@ -19,5 +19,5 @@
   name='blob.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -23,5 +23,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\nblob.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"Z\n\x0eGetBlobRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x03\":\n\x0fGetBlobResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03oid\x18\x03 \x01(\t\"\xbc\x01\n\x0fGetBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12<\n\x0erevision_paths\x18\x02 \x03(\x0b\x32$.gitaly.GetBlobsRequest.RevisionPath\x12\r\n\x05limit\x18\x03 \x01(\x03\x1a.\n\x0cRevisionPath\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\"\xa1\x01\n\x10GetBlobsResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03oid\x18\x03 \x01(\t\x12\x14\n\x0cis_submodule\x18\x04 \x01(\x08\x12\x0c\n\x04mode\x18\x05 \x01(\x05\x12\x10\n\x08revision\x18\x06 \x01(\t\x12\x0c\n\x04path\x18\x07 \x01(\x0c\x12 \n\x04type\x18\x08 \x01(\x0e\x32\x12.gitaly.ObjectType\"\x8b\x01\n\x10ListBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\t\x12\r\n\x05limit\x18\x03 \x01(\r\x12\x13\n\x0b\x62ytes_limit\x18\x04 \x01(\x03\x12\x12\n\nwith_paths\x18\x05 \x01(\x08\"\x81\x01\n\x11ListBlobsResponse\x12-\n\x05\x62lobs\x18\x01 \x03(\x0b\x32\x1e.gitaly.ListBlobsResponse.Blob\x1a=\n\x04\x42lob\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0c\n\x04path\x18\x04 \x01(\x0c\"g\n\x13ListAllBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05limit\x18\x02 \x01(\r\x12\x13\n\x0b\x62ytes_limit\x18\x03 \x01(\x03\"y\n\x14ListAllBlobsResponse\x12\x30\n\x05\x62lobs\x18\x01 \x03(\x0b\x32!.gitaly.ListAllBlobsResponse.Blob\x1a/\n\x04\x42lob\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"5\n\nLFSPointer\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03oid\x18\x03 \x01(\t\"8\n\rNewBlobObject\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\x0c\"W\n\x15GetLFSPointersRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08\x62lob_ids\x18\x02 \x03(\t\"B\n\x16GetLFSPointersResponse\x12(\n\x0clfs_pointers\x18\x01 \x03(\x0b\x32\x12.gitaly.LFSPointer\"h\n\x16ListLFSPointersRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"C\n\x17ListLFSPointersResponse\x12(\n\x0clfs_pointers\x18\x01 \x03(\x0b\x32\x12.gitaly.LFSPointer\"X\n\x19ListAllLFSPointersRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05limit\x18\x03 \x01(\x05\"F\n\x1aListAllLFSPointersResponse\x12(\n\x0clfs_pointers\x18\x01 \x03(\x0b\x32\x12.gitaly.LFSPointer2\xdd\x04\n\x0b\x42lobService\x12\x44\n\x07GetBlob\x12\x16.gitaly.GetBlobRequest\x1a\x17.gitaly.GetBlobResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12G\n\x08GetBlobs\x12\x17.gitaly.GetBlobsRequest\x1a\x18.gitaly.GetBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tListBlobs\x12\x18.gitaly.ListBlobsRequest\x1a\x19.gitaly.ListBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12S\n\x0cListAllBlobs\x12\x1b.gitaly.ListAllBlobsRequest\x1a\x1c.gitaly.ListAllBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eGetLFSPointers\x12\x1d.gitaly.GetLFSPointersRequest\x1a\x1e.gitaly.GetLFSPointersResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\\\n\x0fListLFSPointers\x12\x1e.gitaly.ListLFSPointersRequest\x1a\x1f.gitaly.ListLFSPointersResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x65\n\x12ListAllLFSPointers\x12!.gitaly.ListAllLFSPointersRequest\x1a\".gitaly.ListAllLFSPointersResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\nblob.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"Z\n\x0eGetBlobRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\x03\":\n\x0fGetBlobResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03oid\x18\x03 \x01(\t\"\xbc\x01\n\x0fGetBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12<\n\x0erevision_paths\x18\x02 \x03(\x0b\x32$.gitaly.GetBlobsRequest.RevisionPath\x12\r\n\x05limit\x18\x03 \x01(\x03\x1a.\n\x0cRevisionPath\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\"\xa1\x01\n\x10GetBlobsResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03oid\x18\x03 \x01(\t\x12\x14\n\x0cis_submodule\x18\x04 \x01(\x08\x12\x0c\n\x04mode\x18\x05 \x01(\x05\x12\x10\n\x08revision\x18\x06 \x01(\t\x12\x0c\n\x04path\x18\x07 \x01(\x0c\x12 \n\x04type\x18\x08 \x01(\x0e\x32\x12.gitaly.ObjectType\"\x8b\x01\n\x10ListBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\t\x12\r\n\x05limit\x18\x03 \x01(\r\x12\x13\n\x0b\x62ytes_limit\x18\x04 \x01(\x03\x12\x12\n\nwith_paths\x18\x05 \x01(\x08\"\x81\x01\n\x11ListBlobsResponse\x12-\n\x05\x62lobs\x18\x01 \x03(\x0b\x32\x1e.gitaly.ListBlobsResponse.Blob\x1a=\n\x04\x42lob\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0c\n\x04path\x18\x04 \x01(\x0c\"g\n\x13ListAllBlobsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05limit\x18\x02 \x01(\r\x12\x13\n\x0b\x62ytes_limit\x18\x03 \x01(\x03\"y\n\x14ListAllBlobsResponse\x12\x30\n\x05\x62lobs\x18\x01 \x03(\x0b\x32!.gitaly.ListAllBlobsResponse.Blob\x1a/\n\x04\x42lob\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"5\n\nLFSPointer\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03oid\x18\x03 \x01(\t\"8\n\rNewBlobObject\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\x0c\"W\n\x15GetLFSPointersRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08\x62lob_ids\x18\x02 \x03(\t\"B\n\x16GetLFSPointersResponse\x12(\n\x0clfs_pointers\x18\x01 \x03(\x0b\x32\x12.gitaly.LFSPointer\"h\n\x16ListLFSPointersRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\t\x12\r\n\x05limit\x18\x03 \x01(\x05\"C\n\x17ListLFSPointersResponse\x12(\n\x0clfs_pointers\x18\x01 \x03(\x0b\x32\x12.gitaly.LFSPointer\"X\n\x19ListAllLFSPointersRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05limit\x18\x03 \x01(\x05\"F\n\x1aListAllLFSPointersResponse\x12(\n\x0clfs_pointers\x18\x01 \x03(\x0b\x32\x12.gitaly.LFSPointer2\xdd\x04\n\x0b\x42lobService\x12\x44\n\x07GetBlob\x12\x16.gitaly.GetBlobRequest\x1a\x17.gitaly.GetBlobResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12G\n\x08GetBlobs\x12\x17.gitaly.GetBlobsRequest\x1a\x18.gitaly.GetBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tListBlobs\x12\x18.gitaly.ListBlobsRequest\x1a\x19.gitaly.ListBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12S\n\x0cListAllBlobs\x12\x1b.gitaly.ListAllBlobsRequest\x1a\x1c.gitaly.ListAllBlobsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eGetLFSPointers\x12\x1d.gitaly.GetLFSPointersRequest\x1a\x1e.gitaly.GetLFSPointersResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\\\n\x0fListLFSPointers\x12\x1e.gitaly.ListLFSPointersRequest\x1a\x1f.gitaly.ListLFSPointersResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x65\n\x12ListAllLFSPointers\x12!.gitaly.ListAllLFSPointersRequest\x1a\".gitaly.ListAllLFSPointersResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[lint__pb2.DESCRIPTOR,shared__pb2.DESCRIPTOR,])
 
diff --git a/hgitaly/stub/commit_pb2.py b/hgitaly/stub/commit_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL2NvbW1pdF9wYjIucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL2NvbW1pdF9wYjIucHk= 100644
--- a/hgitaly/stub/commit_pb2.py
+++ b/hgitaly/stub/commit_pb2.py
@@ -20,5 +20,5 @@
   name='commit.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -24,5 +24,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x0c\x63ommit.proto\x12\x06gitaly\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\x1a\x0cshared.proto\"\xd4\x03\n\x12ListCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\t\x12\x36\n\x11pagination_params\x18\x03 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\x12/\n\x05order\x18\x04 \x01(\x0e\x32 .gitaly.ListCommitsRequest.Order\x12\x0f\n\x07reverse\x18\x0b \x01(\x08\x12\x13\n\x0bmax_parents\x18\x05 \x01(\r\x12\x14\n\x0c\x64isable_walk\x18\x06 \x01(\x08\x12\x14\n\x0c\x66irst_parent\x18\x07 \x01(\x08\x12)\n\x05\x61\x66ter\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06\x62\x65\x66ore\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x61uthor\x18\n \x01(\x0c\x12\x13\n\x0bignore_case\x18\x0c \x01(\x08\x12\x1f\n\x17\x63ommit_message_patterns\x18\r \x03(\x0c\"%\n\x05Order\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04TOPO\x10\x01\x12\x08\n\x04\x44\x41TE\x10\x02\"9\n\x13ListCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"}\n\x15ListAllCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x36\n\x11pagination_params\x18\x02 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\"<\n\x16ListAllCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"T\n\x12\x43ommitStatsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"H\n\x13\x43ommitStatsResponse\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x11\n\tadditions\x18\x02 \x01(\x05\x12\x11\n\tdeletions\x18\x03 \x01(\x05\"n\n\x17\x43ommitIsAncestorRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x0b\x61ncestor_id\x18\x02 \x01(\t\x12\x10\n\x08\x63hild_id\x18\x03 \x01(\t\")\n\x18\x43ommitIsAncestorResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\x81\x01\n\x10TreeEntryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\r\n\x05limit\x18\x04 \x01(\x03\x12\x10\n\x08max_size\x18\x05 \x01(\x03\"\xb5\x01\n\x11TreeEntryResponse\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.gitaly.TreeEntryResponse.ObjectType\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0c\n\x04mode\x18\x04 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\"5\n\nObjectType\x12\n\n\x06\x43OMMIT\x10\x00\x12\x08\n\x04\x42LOB\x10\x01\x12\x08\n\x04TREE\x10\x02\x12\x07\n\x03TAG\x10\x03\"\x9f\x02\n\x13\x43ountCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12)\n\x05\x61\x66ter\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06\x62\x65\x66ore\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\x11\n\tmax_count\x18\x06 \x01(\x05\x12\x0b\n\x03\x61ll\x18\x07 \x01(\x08\x12\x14\n\x0c\x66irst_parent\x18\x08 \x01(\x08\x12-\n\x0eglobal_options\x18\t \x01(\x0b\x32\x15.gitaly.GlobalOptions\"%\n\x14\x43ountCommitsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"\x8b\x01\n\x1c\x43ountDivergingCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x66rom\x18\x02 \x01(\x0c\x12\n\n\x02to\x18\x03 \x01(\x0c\x12\x11\n\tmax_count\x18\x07 \x01(\x05J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"H\n\x1d\x43ountDivergingCommitsResponse\x12\x12\n\nleft_count\x18\x01 \x01(\x05\x12\x13\n\x0bright_count\x18\x02 \x01(\x05\"\xc5\x01\n\tTreeEntry\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x10\n\x08root_oid\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12)\n\x04type\x18\x04 \x01(\x0e\x32\x1b.gitaly.TreeEntry.EntryType\x12\x0c\n\x04mode\x18\x05 \x01(\x05\x12\x12\n\ncommit_oid\x18\x06 \x01(\t\x12\x11\n\tflat_path\x18\x07 \x01(\x0c\"+\n\tEntryType\x12\x08\n\x04\x42LOB\x10\x00\x12\x08\n\x04TREE\x10\x01\x12\n\n\x06\x43OMMIT\x10\x03\"\x8c\x02\n\x15GetTreeEntriesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12\x32\n\x04sort\x18\x05 \x01(\x0e\x32$.gitaly.GetTreeEntriesRequest.SortBy\x12\x36\n\x11pagination_params\x18\x06 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\"&\n\x06SortBy\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0f\n\x0bTREES_FIRST\x10\x01\"q\n\x16GetTreeEntriesResponse\x12\"\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x11.gitaly.TreeEntry\x12\x33\n\x11pagination_cursor\x18\x02 \x01(\x0b\x32\x18.gitaly.PaginationCursor\"R\n\x10ListFilesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"\"\n\x11ListFilesResponse\x12\r\n\x05paths\x18\x01 \x03(\x0c\"e\n\x11\x46indCommitRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x10\n\x08trailers\x18\x03 \x01(\x08\"7\n\x12\x46indCommitResponse\x12!\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x11.gitaly.GitCommit\"T\n\x17ListCommitsByOidRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03oid\x18\x02 \x03(\t\">\n\x18ListCommitsByOidResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"^\n\x1bListCommitsByRefNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tref_names\x18\x02 \x03(\x0c\"\xb1\x01\n\x1cListCommitsByRefNameResponse\x12\x46\n\x0b\x63ommit_refs\x18\x02 \x03(\x0b\x32\x31.gitaly.ListCommitsByRefNameResponse.CommitForRef\x1a\x43\n\x0c\x43ommitForRef\x12!\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x11.gitaly.GitCommit\x12\x10\n\x08ref_name\x18\x02 \x01(\x0cJ\x04\x08\x01\x10\x02\"\xd3\x01\n\x15\x46indAllCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x11\n\tmax_count\x18\x03 \x01(\x05\x12\x0c\n\x04skip\x18\x04 \x01(\x05\x12\x32\n\x05order\x18\x05 \x01(\x0e\x32#.gitaly.FindAllCommitsRequest.Order\"%\n\x05Order\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04TOPO\x10\x01\x12\x08\n\x04\x44\x41TE\x10\x02\"<\n\x16\x46indAllCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"\xd6\x03\n\x12\x46indCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\r\n\x05paths\x18\x05 \x03(\x0c\x12\x0e\n\x06\x66ollow\x18\x06 \x01(\x08\x12\x13\n\x0bskip_merges\x18\x07 \x01(\x08\x12\x14\n\x0c\x64isable_walk\x18\x08 \x01(\x08\x12)\n\x05\x61\x66ter\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06\x62\x65\x66ore\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03\x61ll\x18\x0b \x01(\x08\x12\x14\n\x0c\x66irst_parent\x18\x0c \x01(\x08\x12\x0e\n\x06\x61uthor\x18\r \x01(\x0c\x12/\n\x05order\x18\x0e \x01(\x0e\x32 .gitaly.FindCommitsRequest.Order\x12-\n\x0eglobal_options\x18\x0f \x01(\x0b\x32\x15.gitaly.GlobalOptions\x12\x10\n\x08trailers\x18\x10 \x01(\x08\"\x1b\n\x05Order\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04TOPO\x10\x01\"9\n\x13\x46indCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"X\n\x16\x43ommitLanguagesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"\xb1\x01\n\x17\x43ommitLanguagesResponse\x12;\n\tlanguages\x18\x01 \x03(\x0b\x32(.gitaly.CommitLanguagesResponse.Language\x1aY\n\x08Language\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05share\x18\x02 \x01(\x02\x12\r\n\x05\x63olor\x18\x03 \x01(\t\x12\x12\n\nfile_count\x18\x04 \x01(\r\x12\r\n\x05\x62ytes\x18\x05 \x01(\x04\"n\n\x0fRawBlameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\r\n\x05range\x18\x04 \x01(\x0c\" \n\x10RawBlameResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xb1\x01\n\x18LastCommitForPathRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\x18\n\x10literal_pathspec\x18\x04 \x01(\x08\x12-\n\x0eglobal_options\x18\x05 \x01(\x0b\x32\x15.gitaly.GlobalOptions\">\n\x19LastCommitForPathResponse\x12!\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x11.gitaly.GitCommit\"\xd9\x01\n\x1dListLastCommitsForTreeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x01(\x05\x12\x1c\n\x10literal_pathspec\x18\x06 \x01(\x08\x42\x02\x18\x01\x12-\n\x0eglobal_options\x18\x07 \x01(\x0b\x32\x15.gitaly.GlobalOptions\"\xbb\x01\n\x1eListLastCommitsForTreeResponse\x12\x45\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x34.gitaly.ListLastCommitsForTreeResponse.CommitForTree\x1aR\n\rCommitForTree\x12!\n\x06\x63ommit\x18\x02 \x01(\x0b\x32\x11.gitaly.GitCommit\x12\x12\n\npath_bytes\x18\x04 \x01(\x0cJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04\"\xc4\x01\n\x17\x43ommitsByMessageRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0e\n\x06offset\x18\x03 \x01(\x05\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\r\n\x05query\x18\x06 \x01(\t\x12-\n\x0eglobal_options\x18\x07 \x01(\x0b\x32\x15.gitaly.GlobalOptions\">\n\x18\x43ommitsByMessageResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"]\n\x1f\x46ilterShasWithSignaturesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04shas\x18\x02 \x03(\x0c\"0\n FilterShasWithSignaturesResponse\x12\x0c\n\x04shas\x18\x01 \x03(\x0c\"`\n\x1d\x45xtractCommitSignatureRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\"H\n\x1e\x45xtractCommitSignatureResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x13\n\x0bsigned_text\x18\x02 \x01(\x0c\"^\n\x1aGetCommitSignaturesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x12\n\ncommit_ids\x18\x02 \x03(\t\"X\n\x1bGetCommitSignaturesResponse\x12\x11\n\tcommit_id\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x13\n\x0bsigned_text\x18\x03 \x01(\x0c\"\\\n\x18GetCommitMessagesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x12\n\ncommit_ids\x18\x02 \x03(\t\"?\n\x19GetCommitMessagesResponse\x12\x11\n\tcommit_id\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\x0c\"[\n\x18\x43heckObjectsExistRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"\x96\x01\n\x19\x43heckObjectsExistResponse\x12\x46\n\trevisions\x18\x01 \x03(\x0b\x32\x33.gitaly.CheckObjectsExistResponse.RevisionExistence\x1a\x31\n\x11RevisionExistence\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x0e\n\x06\x65xists\x18\x02 \x01(\x08\x32\xf1\x10\n\rCommitService\x12P\n\x0bListCommits\x12\x1a.gitaly.ListCommitsRequest\x1a\x1b.gitaly.ListCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eListAllCommits\x12\x1d.gitaly.ListAllCommitsRequest\x1a\x1e.gitaly.ListAllCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12]\n\x10\x43ommitIsAncestor\x12\x1f.gitaly.CommitIsAncestorRequest\x1a .gitaly.CommitIsAncestorResponse\"\x06\xfa\x97(\x02\x08\x02\x12J\n\tTreeEntry\x12\x18.gitaly.TreeEntryRequest\x1a\x19.gitaly.TreeEntryResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Q\n\x0c\x43ountCommits\x12\x1b.gitaly.CountCommitsRequest\x1a\x1c.gitaly.CountCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x12l\n\x15\x43ountDivergingCommits\x12$.gitaly.CountDivergingCommitsRequest\x1a%.gitaly.CountDivergingCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x12Y\n\x0eGetTreeEntries\x12\x1d.gitaly.GetTreeEntriesRequest\x1a\x1e.gitaly.GetTreeEntriesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tListFiles\x12\x18.gitaly.ListFilesRequest\x1a\x19.gitaly.ListFilesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12K\n\nFindCommit\x12\x19.gitaly.FindCommitRequest\x1a\x1a.gitaly.FindCommitResponse\"\x06\xfa\x97(\x02\x08\x02\x12N\n\x0b\x43ommitStats\x12\x1a.gitaly.CommitStatsRequest\x1a\x1b.gitaly.CommitStatsResponse\"\x06\xfa\x97(\x02\x08\x02\x12Y\n\x0e\x46indAllCommits\x12\x1d.gitaly.FindAllCommitsRequest\x1a\x1e.gitaly.FindAllCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x46indCommits\x12\x1a.gitaly.FindCommitsRequest\x1a\x1b.gitaly.FindCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Z\n\x0f\x43ommitLanguages\x12\x1e.gitaly.CommitLanguagesRequest\x1a\x1f.gitaly.CommitLanguagesResponse\"\x06\xfa\x97(\x02\x08\x02\x12G\n\x08RawBlame\x12\x17.gitaly.RawBlameRequest\x1a\x18.gitaly.RawBlameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12`\n\x11LastCommitForPath\x12 .gitaly.LastCommitForPathRequest\x1a!.gitaly.LastCommitForPathResponse\"\x06\xfa\x97(\x02\x08\x02\x12q\n\x16ListLastCommitsForTree\x12%.gitaly.ListLastCommitsForTreeRequest\x1a&.gitaly.ListLastCommitsForTreeResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10\x43ommitsByMessage\x12\x1f.gitaly.CommitsByMessageRequest\x1a .gitaly.CommitsByMessageResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10ListCommitsByOid\x12\x1f.gitaly.ListCommitsByOidRequest\x1a .gitaly.ListCommitsByOidResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12k\n\x14ListCommitsByRefName\x12#.gitaly.ListCommitsByRefNameRequest\x1a$.gitaly.ListCommitsByRefNameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12y\n\x18\x46ilterShasWithSignatures\x12\'.gitaly.FilterShasWithSignaturesRequest\x1a(.gitaly.FilterShasWithSignaturesResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x12h\n\x13GetCommitSignatures\x12\".gitaly.GetCommitSignaturesRequest\x1a#.gitaly.GetCommitSignaturesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11GetCommitMessages\x12 .gitaly.GetCommitMessagesRequest\x1a!.gitaly.GetCommitMessagesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x64\n\x11\x43heckObjectsExist\x12 .gitaly.CheckObjectsExistRequest\x1a!.gitaly.CheckObjectsExistResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\x0c\x63ommit.proto\x12\x06gitaly\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\x1a\x0cshared.proto\"\xd4\x03\n\x12ListCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\t\x12\x36\n\x11pagination_params\x18\x03 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\x12/\n\x05order\x18\x04 \x01(\x0e\x32 .gitaly.ListCommitsRequest.Order\x12\x0f\n\x07reverse\x18\x0b \x01(\x08\x12\x13\n\x0bmax_parents\x18\x05 \x01(\r\x12\x14\n\x0c\x64isable_walk\x18\x06 \x01(\x08\x12\x14\n\x0c\x66irst_parent\x18\x07 \x01(\x08\x12)\n\x05\x61\x66ter\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06\x62\x65\x66ore\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x61uthor\x18\n \x01(\x0c\x12\x13\n\x0bignore_case\x18\x0c \x01(\x08\x12\x1f\n\x17\x63ommit_message_patterns\x18\r \x03(\x0c\"%\n\x05Order\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04TOPO\x10\x01\x12\x08\n\x04\x44\x41TE\x10\x02\"9\n\x13ListCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"}\n\x15ListAllCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x36\n\x11pagination_params\x18\x02 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\"<\n\x16ListAllCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"T\n\x12\x43ommitStatsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"H\n\x13\x43ommitStatsResponse\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x11\n\tadditions\x18\x02 \x01(\x05\x12\x11\n\tdeletions\x18\x03 \x01(\x05\"n\n\x17\x43ommitIsAncestorRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x0b\x61ncestor_id\x18\x02 \x01(\t\x12\x10\n\x08\x63hild_id\x18\x03 \x01(\t\")\n\x18\x43ommitIsAncestorResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\x81\x01\n\x10TreeEntryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\r\n\x05limit\x18\x04 \x01(\x03\x12\x10\n\x08max_size\x18\x05 \x01(\x03\"\xb5\x01\n\x11TreeEntryResponse\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.gitaly.TreeEntryResponse.ObjectType\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x0c\n\x04mode\x18\x04 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\"5\n\nObjectType\x12\n\n\x06\x43OMMIT\x10\x00\x12\x08\n\x04\x42LOB\x10\x01\x12\x08\n\x04TREE\x10\x02\x12\x07\n\x03TAG\x10\x03\"\x9f\x02\n\x13\x43ountCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12)\n\x05\x61\x66ter\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06\x62\x65\x66ore\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\x11\n\tmax_count\x18\x06 \x01(\x05\x12\x0b\n\x03\x61ll\x18\x07 \x01(\x08\x12\x14\n\x0c\x66irst_parent\x18\x08 \x01(\x08\x12-\n\x0eglobal_options\x18\t \x01(\x0b\x32\x15.gitaly.GlobalOptions\"%\n\x14\x43ountCommitsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"\x8b\x01\n\x1c\x43ountDivergingCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x66rom\x18\x02 \x01(\x0c\x12\n\n\x02to\x18\x03 \x01(\x0c\x12\x11\n\tmax_count\x18\x07 \x01(\x05J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"H\n\x1d\x43ountDivergingCommitsResponse\x12\x12\n\nleft_count\x18\x01 \x01(\x05\x12\x13\n\x0bright_count\x18\x02 \x01(\x05\"\xc5\x01\n\tTreeEntry\x12\x0b\n\x03oid\x18\x01 \x01(\t\x12\x10\n\x08root_oid\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12)\n\x04type\x18\x04 \x01(\x0e\x32\x1b.gitaly.TreeEntry.EntryType\x12\x0c\n\x04mode\x18\x05 \x01(\x05\x12\x12\n\ncommit_oid\x18\x06 \x01(\t\x12\x11\n\tflat_path\x18\x07 \x01(\x0c\"+\n\tEntryType\x12\x08\n\x04\x42LOB\x10\x00\x12\x08\n\x04TREE\x10\x01\x12\n\n\x06\x43OMMIT\x10\x03\"\x8c\x02\n\x15GetTreeEntriesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\x11\n\trecursive\x18\x04 \x01(\x08\x12\x32\n\x04sort\x18\x05 \x01(\x0e\x32$.gitaly.GetTreeEntriesRequest.SortBy\x12\x36\n\x11pagination_params\x18\x06 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\"&\n\x06SortBy\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0f\n\x0bTREES_FIRST\x10\x01\"q\n\x16GetTreeEntriesResponse\x12\"\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x11.gitaly.TreeEntry\x12\x33\n\x11pagination_cursor\x18\x02 \x01(\x0b\x32\x18.gitaly.PaginationCursor\"R\n\x10ListFilesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"\"\n\x11ListFilesResponse\x12\r\n\x05paths\x18\x01 \x03(\x0c\"e\n\x11\x46indCommitRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x10\n\x08trailers\x18\x03 \x01(\x08\"7\n\x12\x46indCommitResponse\x12!\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x11.gitaly.GitCommit\"T\n\x17ListCommitsByOidRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03oid\x18\x02 \x03(\t\">\n\x18ListCommitsByOidResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"^\n\x1bListCommitsByRefNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tref_names\x18\x02 \x03(\x0c\"\xb1\x01\n\x1cListCommitsByRefNameResponse\x12\x46\n\x0b\x63ommit_refs\x18\x02 \x03(\x0b\x32\x31.gitaly.ListCommitsByRefNameResponse.CommitForRef\x1a\x43\n\x0c\x43ommitForRef\x12!\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x11.gitaly.GitCommit\x12\x10\n\x08ref_name\x18\x02 \x01(\x0cJ\x04\x08\x01\x10\x02\"\xd3\x01\n\x15\x46indAllCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x11\n\tmax_count\x18\x03 \x01(\x05\x12\x0c\n\x04skip\x18\x04 \x01(\x05\x12\x32\n\x05order\x18\x05 \x01(\x0e\x32#.gitaly.FindAllCommitsRequest.Order\"%\n\x05Order\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04TOPO\x10\x01\x12\x08\n\x04\x44\x41TE\x10\x02\"<\n\x16\x46indAllCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"\xd6\x03\n\x12\x46indCommitsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\r\n\x05paths\x18\x05 \x03(\x0c\x12\x0e\n\x06\x66ollow\x18\x06 \x01(\x08\x12\x13\n\x0bskip_merges\x18\x07 \x01(\x08\x12\x14\n\x0c\x64isable_walk\x18\x08 \x01(\x08\x12)\n\x05\x61\x66ter\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06\x62\x65\x66ore\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03\x61ll\x18\x0b \x01(\x08\x12\x14\n\x0c\x66irst_parent\x18\x0c \x01(\x08\x12\x0e\n\x06\x61uthor\x18\r \x01(\x0c\x12/\n\x05order\x18\x0e \x01(\x0e\x32 .gitaly.FindCommitsRequest.Order\x12-\n\x0eglobal_options\x18\x0f \x01(\x0b\x32\x15.gitaly.GlobalOptions\x12\x10\n\x08trailers\x18\x10 \x01(\x08\"\x1b\n\x05Order\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04TOPO\x10\x01\"9\n\x13\x46indCommitsResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"X\n\x16\x43ommitLanguagesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"\xb1\x01\n\x17\x43ommitLanguagesResponse\x12;\n\tlanguages\x18\x01 \x03(\x0b\x32(.gitaly.CommitLanguagesResponse.Language\x1aY\n\x08Language\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05share\x18\x02 \x01(\x02\x12\r\n\x05\x63olor\x18\x03 \x01(\t\x12\x12\n\nfile_count\x18\x04 \x01(\r\x12\r\n\x05\x62ytes\x18\x05 \x01(\x04\"n\n\x0fRawBlameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\r\n\x05range\x18\x04 \x01(\x0c\" \n\x10RawBlameResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xb1\x01\n\x18LastCommitForPathRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\x18\n\x10literal_pathspec\x18\x04 \x01(\x08\x12-\n\x0eglobal_options\x18\x05 \x01(\x0b\x32\x15.gitaly.GlobalOptions\">\n\x19LastCommitForPathResponse\x12!\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x11.gitaly.GitCommit\"\xd9\x01\n\x1dListLastCommitsForTreeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\x0c\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x01(\x05\x12\x1c\n\x10literal_pathspec\x18\x06 \x01(\x08\x42\x02\x18\x01\x12-\n\x0eglobal_options\x18\x07 \x01(\x0b\x32\x15.gitaly.GlobalOptions\"\xbb\x01\n\x1eListLastCommitsForTreeResponse\x12\x45\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x34.gitaly.ListLastCommitsForTreeResponse.CommitForTree\x1aR\n\rCommitForTree\x12!\n\x06\x63ommit\x18\x02 \x01(\x0b\x32\x11.gitaly.GitCommit\x12\x12\n\npath_bytes\x18\x04 \x01(\x0cJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04\"\xc4\x01\n\x17\x43ommitsByMessageRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\x12\x0e\n\x06offset\x18\x03 \x01(\x05\x12\r\n\x05limit\x18\x04 \x01(\x05\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\r\n\x05query\x18\x06 \x01(\t\x12-\n\x0eglobal_options\x18\x07 \x01(\x0b\x32\x15.gitaly.GlobalOptions\">\n\x18\x43ommitsByMessageResponse\x12\"\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x11.gitaly.GitCommit\"]\n\x1f\x46ilterShasWithSignaturesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04shas\x18\x02 \x03(\x0c\"0\n FilterShasWithSignaturesResponse\x12\x0c\n\x04shas\x18\x01 \x03(\x0c\"`\n\x1d\x45xtractCommitSignatureRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\"H\n\x1e\x45xtractCommitSignatureResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x13\n\x0bsigned_text\x18\x02 \x01(\x0c\"^\n\x1aGetCommitSignaturesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x12\n\ncommit_ids\x18\x02 \x03(\t\"X\n\x1bGetCommitSignaturesResponse\x12\x11\n\tcommit_id\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x13\n\x0bsigned_text\x18\x03 \x01(\x0c\"\\\n\x18GetCommitMessagesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x12\n\ncommit_ids\x18\x02 \x03(\t\"?\n\x19GetCommitMessagesResponse\x12\x11\n\tcommit_id\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\x0c\"[\n\x18\x43heckObjectsExistRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"\x96\x01\n\x19\x43heckObjectsExistResponse\x12\x46\n\trevisions\x18\x01 \x03(\x0b\x32\x33.gitaly.CheckObjectsExistResponse.RevisionExistence\x1a\x31\n\x11RevisionExistence\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x0e\n\x06\x65xists\x18\x02 \x01(\x08\x32\xf1\x10\n\rCommitService\x12P\n\x0bListCommits\x12\x1a.gitaly.ListCommitsRequest\x1a\x1b.gitaly.ListCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eListAllCommits\x12\x1d.gitaly.ListAllCommitsRequest\x1a\x1e.gitaly.ListAllCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12]\n\x10\x43ommitIsAncestor\x12\x1f.gitaly.CommitIsAncestorRequest\x1a .gitaly.CommitIsAncestorResponse\"\x06\xfa\x97(\x02\x08\x02\x12J\n\tTreeEntry\x12\x18.gitaly.TreeEntryRequest\x1a\x19.gitaly.TreeEntryResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Q\n\x0c\x43ountCommits\x12\x1b.gitaly.CountCommitsRequest\x1a\x1c.gitaly.CountCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x12l\n\x15\x43ountDivergingCommits\x12$.gitaly.CountDivergingCommitsRequest\x1a%.gitaly.CountDivergingCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x12Y\n\x0eGetTreeEntries\x12\x1d.gitaly.GetTreeEntriesRequest\x1a\x1e.gitaly.GetTreeEntriesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tListFiles\x12\x18.gitaly.ListFilesRequest\x1a\x19.gitaly.ListFilesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12K\n\nFindCommit\x12\x19.gitaly.FindCommitRequest\x1a\x1a.gitaly.FindCommitResponse\"\x06\xfa\x97(\x02\x08\x02\x12N\n\x0b\x43ommitStats\x12\x1a.gitaly.CommitStatsRequest\x1a\x1b.gitaly.CommitStatsResponse\"\x06\xfa\x97(\x02\x08\x02\x12Y\n\x0e\x46indAllCommits\x12\x1d.gitaly.FindAllCommitsRequest\x1a\x1e.gitaly.FindAllCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x46indCommits\x12\x1a.gitaly.FindCommitsRequest\x1a\x1b.gitaly.FindCommitsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Z\n\x0f\x43ommitLanguages\x12\x1e.gitaly.CommitLanguagesRequest\x1a\x1f.gitaly.CommitLanguagesResponse\"\x06\xfa\x97(\x02\x08\x02\x12G\n\x08RawBlame\x12\x17.gitaly.RawBlameRequest\x1a\x18.gitaly.RawBlameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12`\n\x11LastCommitForPath\x12 .gitaly.LastCommitForPathRequest\x1a!.gitaly.LastCommitForPathResponse\"\x06\xfa\x97(\x02\x08\x02\x12q\n\x16ListLastCommitsForTree\x12%.gitaly.ListLastCommitsForTreeRequest\x1a&.gitaly.ListLastCommitsForTreeResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10\x43ommitsByMessage\x12\x1f.gitaly.CommitsByMessageRequest\x1a .gitaly.CommitsByMessageResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10ListCommitsByOid\x12\x1f.gitaly.ListCommitsByOidRequest\x1a .gitaly.ListCommitsByOidResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12k\n\x14ListCommitsByRefName\x12#.gitaly.ListCommitsByRefNameRequest\x1a$.gitaly.ListCommitsByRefNameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12y\n\x18\x46ilterShasWithSignatures\x12\'.gitaly.FilterShasWithSignaturesRequest\x1a(.gitaly.FilterShasWithSignaturesResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x12h\n\x13GetCommitSignatures\x12\".gitaly.GetCommitSignaturesRequest\x1a#.gitaly.GetCommitSignaturesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11GetCommitMessages\x12 .gitaly.GetCommitMessagesRequest\x1a!.gitaly.GetCommitMessagesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x64\n\x11\x43heckObjectsExist\x12 .gitaly.CheckObjectsExistRequest\x1a!.gitaly.CheckObjectsExistResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,lint__pb2.DESCRIPTOR,shared__pb2.DESCRIPTOR,])
 
diff --git a/hgitaly/stub/diff_pb2.py b/hgitaly/stub/diff_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL2RpZmZfcGIyLnB5..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL2RpZmZfcGIyLnB5 100644
--- a/hgitaly/stub/diff_pb2.py
+++ b/hgitaly/stub/diff_pb2.py
@@ -19,5 +19,5 @@
   name='diff.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -23,5 +23,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\ndiff.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"\xcb\x03\n\x11\x43ommitDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12 \n\x18ignore_whitespace_change\x18\x04 \x01(\x08\x12\r\n\x05paths\x18\x05 \x03(\x0c\x12\x16\n\x0e\x63ollapse_diffs\x18\x06 \x01(\x08\x12\x16\n\x0e\x65nforce_limits\x18\x07 \x01(\x08\x12\x11\n\tmax_files\x18\x08 \x01(\x05\x12\x11\n\tmax_lines\x18\t \x01(\x05\x12\x11\n\tmax_bytes\x18\n \x01(\x05\x12\x17\n\x0fmax_patch_bytes\x18\x0e \x01(\x05\x12\x16\n\x0esafe_max_files\x18\x0b \x01(\x05\x12\x16\n\x0esafe_max_lines\x18\x0c \x01(\x05\x12\x16\n\x0esafe_max_bytes\x18\r \x01(\x05\x12\x35\n\tdiff_mode\x18\x0f \x01(\x0e\x32\".gitaly.CommitDiffRequest.DiffMode\"%\n\x08\x44iffMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08WORDDIFF\x10\x01\"\xff\x01\n\x12\x43ommitDiffResponse\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\x12\x0e\n\x06\x62inary\x18\x07 \x01(\x08\x12\x16\n\x0eraw_patch_data\x18\t \x01(\x0c\x12\x14\n\x0c\x65nd_of_patch\x18\n \x01(\x08\x12\x17\n\x0foverflow_marker\x18\x0b \x01(\x08\x12\x11\n\tcollapsed\x18\x0c \x01(\x08\x12\x11\n\ttoo_large\x18\r \x01(\x08J\x04\x08\x08\x10\t\"\x82\x01\n\x12\x43ommitDeltaRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12\r\n\x05paths\x18\x04 \x03(\x0c\"u\n\x0b\x43ommitDelta\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\":\n\x13\x43ommitDeltaResponse\x12#\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x13.gitaly.CommitDelta\"o\n\x0eRawDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"\x1f\n\x0fRawDiffResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"p\n\x0fRawPatchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\" \n\x10RawPatchResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"q\n\x10\x44iffStatsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"Q\n\tDiffStats\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12\x11\n\tadditions\x18\x02 \x01(\x05\x12\x11\n\tdeletions\x18\x03 \x01(\x05\x12\x10\n\x08old_path\x18\x04 \x01(\x0c\"5\n\x11\x44iffStatsResponse\x12 \n\x05stats\x18\x01 \x03(\x0b\x32\x11.gitaly.DiffStats\"X\n\x17\x46indChangedPathsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0f\n\x07\x63ommits\x18\x02 \x03(\t\"?\n\x18\x46indChangedPathsResponse\x12#\n\x05paths\x18\x01 \x03(\x0b\x32\x14.gitaly.ChangedPaths\"\x96\x01\n\x0c\x43hangedPaths\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.gitaly.ChangedPaths.Status\"K\n\x06Status\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x00\x12\x0c\n\x08MODIFIED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0f\n\x0bTYPE_CHANGE\x10\x03\x12\n\n\x06\x43OPIED\x10\x04\x32\xea\x03\n\x0b\x44iffService\x12M\n\nCommitDiff\x12\x19.gitaly.CommitDiffRequest\x1a\x1a.gitaly.CommitDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x43ommitDelta\x12\x1a.gitaly.CommitDeltaRequest\x1a\x1b.gitaly.CommitDeltaResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x44\n\x07RawDiff\x12\x16.gitaly.RawDiffRequest\x1a\x17.gitaly.RawDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12G\n\x08RawPatch\x12\x17.gitaly.RawPatchRequest\x1a\x18.gitaly.RawPatchResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tDiffStats\x12\x18.gitaly.DiffStatsRequest\x1a\x19.gitaly.DiffStatsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10\x46indChangedPaths\x12\x1f.gitaly.FindChangedPathsRequest\x1a .gitaly.FindChangedPathsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\ndiff.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"\xcb\x03\n\x11\x43ommitDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12 \n\x18ignore_whitespace_change\x18\x04 \x01(\x08\x12\r\n\x05paths\x18\x05 \x03(\x0c\x12\x16\n\x0e\x63ollapse_diffs\x18\x06 \x01(\x08\x12\x16\n\x0e\x65nforce_limits\x18\x07 \x01(\x08\x12\x11\n\tmax_files\x18\x08 \x01(\x05\x12\x11\n\tmax_lines\x18\t \x01(\x05\x12\x11\n\tmax_bytes\x18\n \x01(\x05\x12\x17\n\x0fmax_patch_bytes\x18\x0e \x01(\x05\x12\x16\n\x0esafe_max_files\x18\x0b \x01(\x05\x12\x16\n\x0esafe_max_lines\x18\x0c \x01(\x05\x12\x16\n\x0esafe_max_bytes\x18\r \x01(\x05\x12\x35\n\tdiff_mode\x18\x0f \x01(\x0e\x32\".gitaly.CommitDiffRequest.DiffMode\"%\n\x08\x44iffMode\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08WORDDIFF\x10\x01\"\xff\x01\n\x12\x43ommitDiffResponse\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\x12\x0e\n\x06\x62inary\x18\x07 \x01(\x08\x12\x16\n\x0eraw_patch_data\x18\t \x01(\x0c\x12\x14\n\x0c\x65nd_of_patch\x18\n \x01(\x08\x12\x17\n\x0foverflow_marker\x18\x0b \x01(\x08\x12\x11\n\tcollapsed\x18\x0c \x01(\x08\x12\x11\n\ttoo_large\x18\r \x01(\x08J\x04\x08\x08\x10\t\"\x82\x01\n\x12\x43ommitDeltaRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\x12\r\n\x05paths\x18\x04 \x03(\x0c\"u\n\x0b\x43ommitDelta\x12\x11\n\tfrom_path\x18\x01 \x01(\x0c\x12\x0f\n\x07to_path\x18\x02 \x01(\x0c\x12\x0f\n\x07\x66rom_id\x18\x03 \x01(\t\x12\r\n\x05to_id\x18\x04 \x01(\t\x12\x10\n\x08old_mode\x18\x05 \x01(\x05\x12\x10\n\x08new_mode\x18\x06 \x01(\x05\":\n\x13\x43ommitDeltaResponse\x12#\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x13.gitaly.CommitDelta\"o\n\x0eRawDiffRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"\x1f\n\x0fRawDiffResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"p\n\x0fRawPatchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\" \n\x10RawPatchResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"q\n\x10\x44iffStatsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0eleft_commit_id\x18\x02 \x01(\t\x12\x17\n\x0fright_commit_id\x18\x03 \x01(\t\"Q\n\tDiffStats\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12\x11\n\tadditions\x18\x02 \x01(\x05\x12\x11\n\tdeletions\x18\x03 \x01(\x05\x12\x10\n\x08old_path\x18\x04 \x01(\x0c\"5\n\x11\x44iffStatsResponse\x12 \n\x05stats\x18\x01 \x03(\x0b\x32\x11.gitaly.DiffStats\"\xdc\x03\n\x17\x46indChangedPathsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x07\x63ommits\x18\x02 \x03(\tB\x02\x18\x01\x12\x39\n\x08requests\x18\x03 \x03(\x0b\x32\'.gitaly.FindChangedPathsRequest.Request\x1a\xc2\x02\n\x07Request\x12K\n\x0ctree_request\x18\x01 \x01(\x0b\x32\x33.gitaly.FindChangedPathsRequest.Request.TreeRequestH\x00\x12O\n\x0e\x63ommit_request\x18\x02 \x01(\x0b\x32\x35.gitaly.FindChangedPathsRequest.Request.CommitRequestH\x00\x1a\x46\n\x0bTreeRequest\x12\x1a\n\x12left_tree_revision\x18\x01 \x01(\t\x12\x1b\n\x13right_tree_revision\x18\x02 \x01(\t\x1aI\n\rCommitRequest\x12\x17\n\x0f\x63ommit_revision\x18\x01 \x01(\t\x12\x1f\n\x17parent_commit_revisions\x18\x02 \x03(\tB\x06\n\x04type\"?\n\x18\x46indChangedPathsResponse\x12#\n\x05paths\x18\x01 \x03(\x0b\x32\x14.gitaly.ChangedPaths\"\x96\x01\n\x0c\x43hangedPaths\x12\x0c\n\x04path\x18\x01 \x01(\x0c\x12+\n\x06status\x18\x02 \x01(\x0e\x32\x1b.gitaly.ChangedPaths.Status\"K\n\x06Status\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x00\x12\x0c\n\x08MODIFIED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0f\n\x0bTYPE_CHANGE\x10\x03\x12\n\n\x06\x43OPIED\x10\x04\x32\xea\x03\n\x0b\x44iffService\x12M\n\nCommitDiff\x12\x19.gitaly.CommitDiffRequest\x1a\x1a.gitaly.CommitDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x43ommitDelta\x12\x1a.gitaly.CommitDeltaRequest\x1a\x1b.gitaly.CommitDeltaResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x44\n\x07RawDiff\x12\x16.gitaly.RawDiffRequest\x1a\x17.gitaly.RawDiffResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12G\n\x08RawPatch\x12\x17.gitaly.RawPatchRequest\x1a\x18.gitaly.RawPatchResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12J\n\tDiffStats\x12\x18.gitaly.DiffStatsRequest\x1a\x19.gitaly.DiffStatsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10\x46indChangedPaths\x12\x1f.gitaly.FindChangedPathsRequest\x1a .gitaly.FindChangedPathsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[lint__pb2.DESCRIPTOR,shared__pb2.DESCRIPTOR,])
 
@@ -87,8 +87,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1858,
-  serialized_end=1933,
+  serialized_start=2247,
+  serialized_end=2322,
 )
 _sym_db.RegisterEnumDescriptor(_CHANGEDPATHS_STATUS)
 
@@ -772,6 +772,125 @@
 )
 
 
+_FINDCHANGEDPATHSREQUEST_REQUEST_TREEREQUEST = _descriptor.Descriptor(
+  name='TreeRequest',
+  full_name='gitaly.FindChangedPathsRequest.Request.TreeRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='left_tree_revision', full_name='gitaly.FindChangedPathsRequest.Request.TreeRequest.left_tree_revision', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='right_tree_revision', full_name='gitaly.FindChangedPathsRequest.Request.TreeRequest.right_tree_revision', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1951,
+  serialized_end=2021,
+)
+
+_FINDCHANGEDPATHSREQUEST_REQUEST_COMMITREQUEST = _descriptor.Descriptor(
+  name='CommitRequest',
+  full_name='gitaly.FindChangedPathsRequest.Request.CommitRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='commit_revision', full_name='gitaly.FindChangedPathsRequest.Request.CommitRequest.commit_revision', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='parent_commit_revisions', full_name='gitaly.FindChangedPathsRequest.Request.CommitRequest.parent_commit_revisions', index=1,
+      number=2, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2023,
+  serialized_end=2096,
+)
+
+_FINDCHANGEDPATHSREQUEST_REQUEST = _descriptor.Descriptor(
+  name='Request',
+  full_name='gitaly.FindChangedPathsRequest.Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='tree_request', full_name='gitaly.FindChangedPathsRequest.Request.tree_request', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='commit_request', full_name='gitaly.FindChangedPathsRequest.Request.commit_request', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[_FINDCHANGEDPATHSREQUEST_REQUEST_TREEREQUEST, _FINDCHANGEDPATHSREQUEST_REQUEST_COMMITREQUEST, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='type', full_name='gitaly.FindChangedPathsRequest.Request.type',
+      index=0, containing_type=None,
+      create_key=_descriptor._internal_create_key,
+    fields=[]),
+  ],
+  serialized_start=1782,
+  serialized_end=2104,
+)
+
 _FINDCHANGEDPATHSREQUEST = _descriptor.Descriptor(
   name='FindChangedPathsRequest',
   full_name='gitaly.FindChangedPathsRequest',
@@ -793,7 +912,14 @@
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
+      serialized_options=b'\030\001', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='requests', full_name='gitaly.FindChangedPathsRequest.requests', index=2,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
@@ -796,8 +922,8 @@
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
-  nested_types=[],
+  nested_types=[_FINDCHANGEDPATHSREQUEST_REQUEST, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -806,8 +932,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1627,
-  serialized_end=1715,
+  serialized_start=1628,
+  serialized_end=2104,
 )
 
 
@@ -838,8 +964,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1717,
-  serialized_end=1780,
+  serialized_start=2106,
+  serialized_end=2169,
 )
 
 
@@ -878,8 +1004,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1783,
-  serialized_end=1933,
+  serialized_start=2172,
+  serialized_end=2322,
 )
 
 _COMMITDIFFREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
@@ -891,4 +1017,15 @@
 _RAWPATCHREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
 _DIFFSTATSREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
 _DIFFSTATSRESPONSE.fields_by_name['stats'].message_type = _DIFFSTATS
+_FINDCHANGEDPATHSREQUEST_REQUEST_TREEREQUEST.containing_type = _FINDCHANGEDPATHSREQUEST_REQUEST
+_FINDCHANGEDPATHSREQUEST_REQUEST_COMMITREQUEST.containing_type = _FINDCHANGEDPATHSREQUEST_REQUEST
+_FINDCHANGEDPATHSREQUEST_REQUEST.fields_by_name['tree_request'].message_type = _FINDCHANGEDPATHSREQUEST_REQUEST_TREEREQUEST
+_FINDCHANGEDPATHSREQUEST_REQUEST.fields_by_name['commit_request'].message_type = _FINDCHANGEDPATHSREQUEST_REQUEST_COMMITREQUEST
+_FINDCHANGEDPATHSREQUEST_REQUEST.containing_type = _FINDCHANGEDPATHSREQUEST
+_FINDCHANGEDPATHSREQUEST_REQUEST.oneofs_by_name['type'].fields.append(
+  _FINDCHANGEDPATHSREQUEST_REQUEST.fields_by_name['tree_request'])
+_FINDCHANGEDPATHSREQUEST_REQUEST.fields_by_name['tree_request'].containing_oneof = _FINDCHANGEDPATHSREQUEST_REQUEST.oneofs_by_name['type']
+_FINDCHANGEDPATHSREQUEST_REQUEST.oneofs_by_name['type'].fields.append(
+  _FINDCHANGEDPATHSREQUEST_REQUEST.fields_by_name['commit_request'])
+_FINDCHANGEDPATHSREQUEST_REQUEST.fields_by_name['commit_request'].containing_oneof = _FINDCHANGEDPATHSREQUEST_REQUEST.oneofs_by_name['type']
 _FINDCHANGEDPATHSREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
@@ -894,4 +1031,5 @@
 _FINDCHANGEDPATHSREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
+_FINDCHANGEDPATHSREQUEST.fields_by_name['requests'].message_type = _FINDCHANGEDPATHSREQUEST_REQUEST
 _FINDCHANGEDPATHSRESPONSE.fields_by_name['paths'].message_type = _CHANGEDPATHS
 _CHANGEDPATHS.fields_by_name['status'].enum_type = _CHANGEDPATHS_STATUS
 _CHANGEDPATHS_STATUS.containing_type = _CHANGEDPATHS
@@ -997,8 +1135,29 @@
 _sym_db.RegisterMessage(DiffStatsResponse)
 
 FindChangedPathsRequest = _reflection.GeneratedProtocolMessageType('FindChangedPathsRequest', (_message.Message,), {
+
+  'Request' : _reflection.GeneratedProtocolMessageType('Request', (_message.Message,), {
+
+    'TreeRequest' : _reflection.GeneratedProtocolMessageType('TreeRequest', (_message.Message,), {
+      'DESCRIPTOR' : _FINDCHANGEDPATHSREQUEST_REQUEST_TREEREQUEST,
+      '__module__' : 'diff_pb2'
+      # @@protoc_insertion_point(class_scope:gitaly.FindChangedPathsRequest.Request.TreeRequest)
+      })
+    ,
+
+    'CommitRequest' : _reflection.GeneratedProtocolMessageType('CommitRequest', (_message.Message,), {
+      'DESCRIPTOR' : _FINDCHANGEDPATHSREQUEST_REQUEST_COMMITREQUEST,
+      '__module__' : 'diff_pb2'
+      # @@protoc_insertion_point(class_scope:gitaly.FindChangedPathsRequest.Request.CommitRequest)
+      })
+    ,
+    'DESCRIPTOR' : _FINDCHANGEDPATHSREQUEST_REQUEST,
+    '__module__' : 'diff_pb2'
+    # @@protoc_insertion_point(class_scope:gitaly.FindChangedPathsRequest.Request)
+    })
+  ,
   'DESCRIPTOR' : _FINDCHANGEDPATHSREQUEST,
   '__module__' : 'diff_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FindChangedPathsRequest)
   })
 _sym_db.RegisterMessage(FindChangedPathsRequest)
@@ -1000,8 +1159,11 @@
   'DESCRIPTOR' : _FINDCHANGEDPATHSREQUEST,
   '__module__' : 'diff_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FindChangedPathsRequest)
   })
 _sym_db.RegisterMessage(FindChangedPathsRequest)
+_sym_db.RegisterMessage(FindChangedPathsRequest.Request)
+_sym_db.RegisterMessage(FindChangedPathsRequest.Request.TreeRequest)
+_sym_db.RegisterMessage(FindChangedPathsRequest.Request.CommitRequest)
 
 FindChangedPathsResponse = _reflection.GeneratedProtocolMessageType('FindChangedPathsResponse', (_message.Message,), {
   'DESCRIPTOR' : _FINDCHANGEDPATHSRESPONSE,
@@ -1025,6 +1187,7 @@
 _RAWPATCHREQUEST.fields_by_name['repository']._options = None
 _DIFFSTATSREQUEST.fields_by_name['repository']._options = None
 _FINDCHANGEDPATHSREQUEST.fields_by_name['repository']._options = None
+_FINDCHANGEDPATHSREQUEST.fields_by_name['commits']._options = None
 
 _DIFFSERVICE = _descriptor.ServiceDescriptor(
   name='DiffService',
@@ -1033,8 +1196,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=1936,
-  serialized_end=2426,
+  serialized_start=2325,
+  serialized_end=2815,
   methods=[
   _descriptor.MethodDescriptor(
     name='CommitDiff',
diff --git a/hgitaly/stub/errors_pb2.py b/hgitaly/stub/errors_pb2.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL2Vycm9yc19wYjIucHk=
--- /dev/null
+++ b/hgitaly/stub/errors_pb2.py
@@ -0,0 +1,528 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: errors.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='errors.proto',
+  package='gitaly',
+  syntax='proto3',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
+  create_key=_descriptor._internal_create_key,
+  serialized_pb=b'\n\x0c\x65rrors.proto\x12\x06gitaly\x1a\x1egoogle/protobuf/duration.proto\"]\n\x10\x41\x63\x63\x65ssCheckError\x12\x15\n\rerror_message\x18\x01 \x01(\t\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x0f\n\x07\x63hanges\x18\x04 \x01(\x0c\"%\n\x15InvalidRefFormatError\x12\x0c\n\x04refs\x18\x02 \x03(\x0c\"C\n\x10NotAncestorError\x12\x17\n\x0fparent_revision\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63hild_revision\x18\x02 \x01(\x0c\"\x1c\n\x1a\x43hangesAlreadyAppliedError\"O\n\x12MergeConflictError\x12\x19\n\x11\x63onflicting_files\x18\x01 \x03(\x0c\x12\x1e\n\x16\x63onflicting_commit_ids\x18\x02 \x03(\t\"\x17\n\x15ReferencesLockedError\"P\n\x14ReferenceUpdateError\x12\x16\n\x0ereference_name\x18\x01 \x01(\x0c\x12\x0f\n\x07old_oid\x18\x02 \x01(\t\x12\x0f\n\x07new_oid\x18\x03 \x01(\t\"(\n\x14ResolveRevisionError\x12\x10\n\x08revision\x18\x01 \x01(\x0c\"S\n\nLimitError\x12\x15\n\rerror_message\x18\x01 \x01(\t\x12.\n\x0bretry_after\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xd8\x01\n\x0f\x43ustomHookError\x12\x0e\n\x06stdout\x18\x01 \x01(\x0c\x12\x0e\n\x06stderr\x18\x02 \x01(\x0c\x12\x33\n\thook_type\x18\x03 \x01(\x0e\x32 .gitaly.CustomHookError.HookType\"p\n\x08HookType\x12\x19\n\x15HOOK_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14HOOK_TYPE_PRERECEIVE\x10\x01\x12\x14\n\x10HOOK_TYPE_UPDATE\x10\x02\x12\x19\n\x15HOOK_TYPE_POSTRECEIVE\x10\x03\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
+  ,
+  dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,])
+
+
+
+_CUSTOMHOOKERROR_HOOKTYPE = _descriptor.EnumDescriptor(
+  name='HookType',
+  full_name='gitaly.CustomHookError.HookType',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='HOOK_TYPE_UNSPECIFIED', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='HOOK_TYPE_PRERECEIVE', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='HOOK_TYPE_UPDATE', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='HOOK_TYPE_POSTRECEIVE', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=709,
+  serialized_end=821,
+)
+_sym_db.RegisterEnumDescriptor(_CUSTOMHOOKERROR_HOOKTYPE)
+
+
+_ACCESSCHECKERROR = _descriptor.Descriptor(
+  name='AccessCheckError',
+  full_name='gitaly.AccessCheckError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='error_message', full_name='gitaly.AccessCheckError.error_message', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='protocol', full_name='gitaly.AccessCheckError.protocol', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='user_id', full_name='gitaly.AccessCheckError.user_id', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='changes', full_name='gitaly.AccessCheckError.changes', index=3,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=56,
+  serialized_end=149,
+)
+
+
+_INVALIDREFFORMATERROR = _descriptor.Descriptor(
+  name='InvalidRefFormatError',
+  full_name='gitaly.InvalidRefFormatError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='refs', full_name='gitaly.InvalidRefFormatError.refs', index=0,
+      number=2, type=12, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=151,
+  serialized_end=188,
+)
+
+
+_NOTANCESTORERROR = _descriptor.Descriptor(
+  name='NotAncestorError',
+  full_name='gitaly.NotAncestorError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='parent_revision', full_name='gitaly.NotAncestorError.parent_revision', index=0,
+      number=1, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='child_revision', full_name='gitaly.NotAncestorError.child_revision', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=190,
+  serialized_end=257,
+)
+
+
+_CHANGESALREADYAPPLIEDERROR = _descriptor.Descriptor(
+  name='ChangesAlreadyAppliedError',
+  full_name='gitaly.ChangesAlreadyAppliedError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=259,
+  serialized_end=287,
+)
+
+
+_MERGECONFLICTERROR = _descriptor.Descriptor(
+  name='MergeConflictError',
+  full_name='gitaly.MergeConflictError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='conflicting_files', full_name='gitaly.MergeConflictError.conflicting_files', index=0,
+      number=1, type=12, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='conflicting_commit_ids', full_name='gitaly.MergeConflictError.conflicting_commit_ids', index=1,
+      number=2, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=289,
+  serialized_end=368,
+)
+
+
+_REFERENCESLOCKEDERROR = _descriptor.Descriptor(
+  name='ReferencesLockedError',
+  full_name='gitaly.ReferencesLockedError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=370,
+  serialized_end=393,
+)
+
+
+_REFERENCEUPDATEERROR = _descriptor.Descriptor(
+  name='ReferenceUpdateError',
+  full_name='gitaly.ReferenceUpdateError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reference_name', full_name='gitaly.ReferenceUpdateError.reference_name', index=0,
+      number=1, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='old_oid', full_name='gitaly.ReferenceUpdateError.old_oid', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='new_oid', full_name='gitaly.ReferenceUpdateError.new_oid', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=395,
+  serialized_end=475,
+)
+
+
+_RESOLVEREVISIONERROR = _descriptor.Descriptor(
+  name='ResolveRevisionError',
+  full_name='gitaly.ResolveRevisionError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='revision', full_name='gitaly.ResolveRevisionError.revision', index=0,
+      number=1, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=477,
+  serialized_end=517,
+)
+
+
+_LIMITERROR = _descriptor.Descriptor(
+  name='LimitError',
+  full_name='gitaly.LimitError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='error_message', full_name='gitaly.LimitError.error_message', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='retry_after', full_name='gitaly.LimitError.retry_after', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=519,
+  serialized_end=602,
+)
+
+
+_CUSTOMHOOKERROR = _descriptor.Descriptor(
+  name='CustomHookError',
+  full_name='gitaly.CustomHookError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='stdout', full_name='gitaly.CustomHookError.stdout', index=0,
+      number=1, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='stderr', full_name='gitaly.CustomHookError.stderr', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"",
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='hook_type', full_name='gitaly.CustomHookError.hook_type', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _CUSTOMHOOKERROR_HOOKTYPE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=605,
+  serialized_end=821,
+)
+
+_LIMITERROR.fields_by_name['retry_after'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
+_CUSTOMHOOKERROR.fields_by_name['hook_type'].enum_type = _CUSTOMHOOKERROR_HOOKTYPE
+_CUSTOMHOOKERROR_HOOKTYPE.containing_type = _CUSTOMHOOKERROR
+DESCRIPTOR.message_types_by_name['AccessCheckError'] = _ACCESSCHECKERROR
+DESCRIPTOR.message_types_by_name['InvalidRefFormatError'] = _INVALIDREFFORMATERROR
+DESCRIPTOR.message_types_by_name['NotAncestorError'] = _NOTANCESTORERROR
+DESCRIPTOR.message_types_by_name['ChangesAlreadyAppliedError'] = _CHANGESALREADYAPPLIEDERROR
+DESCRIPTOR.message_types_by_name['MergeConflictError'] = _MERGECONFLICTERROR
+DESCRIPTOR.message_types_by_name['ReferencesLockedError'] = _REFERENCESLOCKEDERROR
+DESCRIPTOR.message_types_by_name['ReferenceUpdateError'] = _REFERENCEUPDATEERROR
+DESCRIPTOR.message_types_by_name['ResolveRevisionError'] = _RESOLVEREVISIONERROR
+DESCRIPTOR.message_types_by_name['LimitError'] = _LIMITERROR
+DESCRIPTOR.message_types_by_name['CustomHookError'] = _CUSTOMHOOKERROR
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+AccessCheckError = _reflection.GeneratedProtocolMessageType('AccessCheckError', (_message.Message,), {
+  'DESCRIPTOR' : _ACCESSCHECKERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.AccessCheckError)
+  })
+_sym_db.RegisterMessage(AccessCheckError)
+
+InvalidRefFormatError = _reflection.GeneratedProtocolMessageType('InvalidRefFormatError', (_message.Message,), {
+  'DESCRIPTOR' : _INVALIDREFFORMATERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.InvalidRefFormatError)
+  })
+_sym_db.RegisterMessage(InvalidRefFormatError)
+
+NotAncestorError = _reflection.GeneratedProtocolMessageType('NotAncestorError', (_message.Message,), {
+  'DESCRIPTOR' : _NOTANCESTORERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.NotAncestorError)
+  })
+_sym_db.RegisterMessage(NotAncestorError)
+
+ChangesAlreadyAppliedError = _reflection.GeneratedProtocolMessageType('ChangesAlreadyAppliedError', (_message.Message,), {
+  'DESCRIPTOR' : _CHANGESALREADYAPPLIEDERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.ChangesAlreadyAppliedError)
+  })
+_sym_db.RegisterMessage(ChangesAlreadyAppliedError)
+
+MergeConflictError = _reflection.GeneratedProtocolMessageType('MergeConflictError', (_message.Message,), {
+  'DESCRIPTOR' : _MERGECONFLICTERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.MergeConflictError)
+  })
+_sym_db.RegisterMessage(MergeConflictError)
+
+ReferencesLockedError = _reflection.GeneratedProtocolMessageType('ReferencesLockedError', (_message.Message,), {
+  'DESCRIPTOR' : _REFERENCESLOCKEDERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.ReferencesLockedError)
+  })
+_sym_db.RegisterMessage(ReferencesLockedError)
+
+ReferenceUpdateError = _reflection.GeneratedProtocolMessageType('ReferenceUpdateError', (_message.Message,), {
+  'DESCRIPTOR' : _REFERENCEUPDATEERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.ReferenceUpdateError)
+  })
+_sym_db.RegisterMessage(ReferenceUpdateError)
+
+ResolveRevisionError = _reflection.GeneratedProtocolMessageType('ResolveRevisionError', (_message.Message,), {
+  'DESCRIPTOR' : _RESOLVEREVISIONERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.ResolveRevisionError)
+  })
+_sym_db.RegisterMessage(ResolveRevisionError)
+
+LimitError = _reflection.GeneratedProtocolMessageType('LimitError', (_message.Message,), {
+  'DESCRIPTOR' : _LIMITERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.LimitError)
+  })
+_sym_db.RegisterMessage(LimitError)
+
+CustomHookError = _reflection.GeneratedProtocolMessageType('CustomHookError', (_message.Message,), {
+  'DESCRIPTOR' : _CUSTOMHOOKERROR,
+  '__module__' : 'errors_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.CustomHookError)
+  })
+_sym_db.RegisterMessage(CustomHookError)
+
+
+DESCRIPTOR._options = None
+# @@protoc_insertion_point(module_scope)
diff --git a/hgitaly/stub/errors_pb2_grpc.py b/hgitaly/stub/errors_pb2_grpc.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL2Vycm9yc19wYjJfZ3JwYy5weQ==
--- /dev/null
+++ b/hgitaly/stub/errors_pb2_grpc.py
@@ -0,0 +1,4 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
diff --git a/hgitaly/stub/lint_pb2.py b/hgitaly/stub/lint_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL2xpbnRfcGIyLnB5..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL2xpbnRfcGIyLnB5 100644
--- a/hgitaly/stub/lint_pb2.py
+++ b/hgitaly/stub/lint_pb2.py
@@ -18,5 +18,5 @@
   name='lint.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -22,5 +22,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\nlint.proto\x12\x06gitaly\x1a google/protobuf/descriptor.proto\"\xe5\x01\n\x0cOperationMsg\x12*\n\x02op\x18\x01 \x01(\x0e\x32\x1e.gitaly.OperationMsg.Operation\x12/\n\x0bscope_level\x18\x02 \x01(\x0e\x32\x1a.gitaly.OperationMsg.Scope\"D\n\tOperation\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07MUTATOR\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45SSOR\x10\x02\x12\x0f\n\x0bMAINTENANCE\x10\x03\"2\n\x05Scope\x12\x0e\n\nREPOSITORY\x10\x00\x12\x0b\n\x07STORAGE\x10\x02\"\x04\x08\x01\x10\x01*\x06SERVER:6\n\x0bintercepted\x12\x1f.google.protobuf.ServiceOptions\x18\xfe\x82\x05 \x01(\x08:G\n\x07op_type\x12\x1e.google.protobuf.MethodOptions\x18\xff\x82\x05 \x01(\x0b\x32\x14.gitaly.OperationMsg:<\n\x12intercepted_method\x12\x1e.google.protobuf.MethodOptions\x18\x80\x83\x05 \x01(\x08:0\n\x07storage\x12\x1d.google.protobuf.FieldOptions\x18\xe1\xc8\x05 \x01(\x08:3\n\nrepository\x12\x1d.google.protobuf.FieldOptions\x18\xe2\xc8\x05 \x01(\x08::\n\x11target_repository\x12\x1d.google.protobuf.FieldOptions\x18\xe3\xc8\x05 \x01(\x08:>\n\x15\x61\x64\x64itional_repository\x12\x1d.google.protobuf.FieldOptions\x18\xe4\xc8\x05 \x01(\x08\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\nlint.proto\x12\x06gitaly\x1a google/protobuf/descriptor.proto\"\xe5\x01\n\x0cOperationMsg\x12*\n\x02op\x18\x01 \x01(\x0e\x32\x1e.gitaly.OperationMsg.Operation\x12/\n\x0bscope_level\x18\x02 \x01(\x0e\x32\x1a.gitaly.OperationMsg.Scope\"D\n\tOperation\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07MUTATOR\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45SSOR\x10\x02\x12\x0f\n\x0bMAINTENANCE\x10\x03\"2\n\x05Scope\x12\x0e\n\nREPOSITORY\x10\x00\x12\x0b\n\x07STORAGE\x10\x02\"\x04\x08\x01\x10\x01*\x06SERVER:6\n\x0bintercepted\x12\x1f.google.protobuf.ServiceOptions\x18\xfe\x82\x05 \x01(\x08:G\n\x07op_type\x12\x1e.google.protobuf.MethodOptions\x18\xff\x82\x05 \x01(\x0b\x32\x14.gitaly.OperationMsg:<\n\x12intercepted_method\x12\x1e.google.protobuf.MethodOptions\x18\x80\x83\x05 \x01(\x08:0\n\x07storage\x12\x1d.google.protobuf.FieldOptions\x18\xe1\xc8\x05 \x01(\x08:3\n\nrepository\x12\x1d.google.protobuf.FieldOptions\x18\xe2\xc8\x05 \x01(\x08::\n\x11target_repository\x12\x1d.google.protobuf.FieldOptions\x18\xe3\xc8\x05 \x01(\x08:>\n\x15\x61\x64\x64itional_repository\x12\x1d.google.protobuf.FieldOptions\x18\xe4\xc8\x05 \x01(\x08\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])
 
diff --git a/hgitaly/stub/ref_pb2.py b/hgitaly/stub/ref_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL3JlZl9wYjIucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL3JlZl9wYjIucHk= 100644
--- a/hgitaly/stub/ref_pb2.py
+++ b/hgitaly/stub/ref_pb2.py
@@ -11,6 +11,7 @@
 _sym_db = _symbol_database.Default()
 
 
+from . import errors_pb2 as errors__pb2
 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
 from . import lint_pb2 as lint__pb2
 from . import shared_pb2 as shared__pb2
@@ -20,5 +21,5 @@
   name='ref.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -24,3 +25,3 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\tref.proto\x12\x06gitaly\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\x1a\x0cshared.proto\"L\n\x1c\x46indDefaultBranchNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"-\n\x1d\x46indDefaultBranchNameResponse\x12\x0c\n\x04name\x18\x01 \x01(\x0c\"I\n\x19\x46indAllBranchNamesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"+\n\x1a\x46indAllBranchNamesResponse\x12\r\n\x05names\x18\x01 \x03(\x0c\"F\n\x16\x46indAllTagNamesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"(\n\x17\x46indAllTagNamesResponse\x12\r\n\x05names\x18\x01 \x03(\x0c\"\xf1\x01\n\x18\x46indLocalBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x38\n\x07sort_by\x18\x02 \x01(\x0e\x32\'.gitaly.FindLocalBranchesRequest.SortBy\x12\x36\n\x11pagination_params\x18\x03 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\"5\n\x06SortBy\x12\x08\n\x04NAME\x10\x00\x12\x0f\n\x0bUPDATED_ASC\x10\x01\x12\x10\n\x0cUPDATED_DESC\x10\x02\"N\n\x19\x46indLocalBranchesResponse\x12\x31\n\x08\x62ranches\x18\x01 \x03(\x0b\x32\x1f.gitaly.FindLocalBranchResponse\"\xf0\x01\n\x17\x46indLocalBranchResponse\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x16\n\x0e\x63ommit_subject\x18\x03 \x01(\x0c\x12:\n\rcommit_author\x18\x04 \x01(\x0b\x32#.gitaly.FindLocalBranchCommitAuthor\x12=\n\x10\x63ommit_committer\x18\x05 \x01(\x0b\x32#.gitaly.FindLocalBranchCommitAuthor\x12!\n\x06\x63ommit\x18\x06 \x01(\x0b\x32\x11.gitaly.GitCommit\"v\n\x1b\x46indLocalBranchCommitAuthor\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05\x65mail\x18\x02 \x01(\x0c\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08timezone\x18\x04 \x01(\x0c\"t\n\x16\x46indAllBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x0bmerged_only\x18\x02 \x01(\x08\x12\x17\n\x0fmerged_branches\x18\x03 \x03(\x0c\"\x8e\x01\n\x17\x46indAllBranchesResponse\x12\x38\n\x08\x62ranches\x18\x01 \x03(\x0b\x32&.gitaly.FindAllBranchesResponse.Branch\x1a\x39\n\x06\x42ranch\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12!\n\x06target\x18\x02 \x01(\x0b\x32\x11.gitaly.GitCommit\"P\n\x0e\x46indTagRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08tag_name\x18\x02 \x01(\x0c\"+\n\x0f\x46indTagResponse\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.gitaly.Tag\"\xbc\x02\n\x12\x46indAllTagsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x32\n\x07sort_by\x18\x02 \x01(\x0b\x32!.gitaly.FindAllTagsRequest.SortBy\x12\x36\n\x11pagination_params\x18\x03 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\x1a\x8b\x01\n\x06SortBy\x12\x32\n\x03key\x18\x01 \x01(\x0e\x32%.gitaly.FindAllTagsRequest.SortBy.Key\x12(\n\tdirection\x18\x02 \x01(\x0e\x32\x15.gitaly.SortDirection\"#\n\x03Key\x12\x0b\n\x07REFNAME\x10\x00\x12\x0f\n\x0b\x43REATORDATE\x10\x01\"0\n\x13\x46indAllTagsResponse\x12\x19\n\x04tags\x18\x01 \x03(\x0b\x32\x0b.gitaly.Tag\"M\n\x10RefExistsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03ref\x18\x02 \x01(\x0c\"\"\n\x11RefExistsResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"f\n\x13\x43reateBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04name\x18\x02 \x01(\x0c\x12\x13\n\x0bstart_point\x18\x03 \x01(\x0c\"\xbb\x01\n\x14\x43reateBranchResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.gitaly.CreateBranchResponse.Status\x12\x1e\n\x06\x62ranch\x18\x02 \x01(\x0b\x32\x0e.gitaly.Branch\"N\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nERR_EXISTS\x10\x01\x12\x0f\n\x0b\x45RR_INVALID\x10\x02\x12\x1b\n\x17\x45RR_INVALID_START_POINT\x10\x03\"Q\n\x13\x44\x65leteBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04name\x18\x02 \x01(\x0c\"\x16\n\x14\x44\x65leteBranchResponse\"O\n\x11\x46indBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04name\x18\x02 \x01(\x0c\"4\n\x12\x46indBranchResponse\x12\x1e\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0e.gitaly.Branch\"k\n\x11\x44\x65leteRefsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x1a\n\x12\x65xcept_with_prefix\x18\x02 \x03(\x0c\x12\x0c\n\x04refs\x18\x03 \x03(\x0c\"\'\n\x12\x44\x65leteRefsResponse\x12\x11\n\tgit_error\x18\x01 \x01(\t\"x\n&ListBranchNamesContainingCommitRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\r\"E\n\'ListBranchNamesContainingCommitResponse\x12\x14\n\x0c\x62ranch_names\x18\x02 \x03(\x0cJ\x04\x08\x01\x10\x02\"u\n#ListTagNamesContainingCommitRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\r\"?\n$ListTagNamesContainingCommitResponse\x12\x11\n\ttag_names\x18\x02 \x03(\x0cJ\x04\x08\x01\x10\x02\"^\n\x17GetTagSignaturesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rtag_revisions\x18\x02 \x03(\t\"\xa1\x01\n\x18GetTagSignaturesResponse\x12\x41\n\nsignatures\x18\x01 \x03(\x0b\x32-.gitaly.GetTagSignaturesResponse.TagSignature\x1a\x42\n\x0cTagSignature\x12\x0e\n\x06tag_id\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\x0c\"g\n\x15GetTagMessagesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0f\n\x07tag_ids\x18\x03 \x03(\tJ\x04\x08\x02\x10\x03R\ttag_names\"I\n\x16GetTagMessagesResponse\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x0e\n\x06tag_id\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02R\x08tag_name\"a\n\x1c\x46indAllRemoteBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x0bremote_name\x18\x02 \x01(\t\"A\n\x1d\x46indAllRemoteBranchesResponse\x12 \n\x08\x62ranches\x18\x01 \x03(\x0b\x32\x0e.gitaly.Branch\"O\n\x0fPackRefsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01J\x04\x08\x02\x10\x03R\x08\x61ll_refs\"\x12\n\x10PackRefsResponse\"\xbe\x02\n\x0fListRefsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08patterns\x18\x02 \x03(\x0c\x12\x0c\n\x04head\x18\x03 \x01(\x08\x12/\n\x07sort_by\x18\x04 \x01(\x0b\x32\x1e.gitaly.ListRefsRequest.SortBy\x1a\xab\x01\n\x06SortBy\x12/\n\x03key\x18\x01 \x01(\x0e\x32\".gitaly.ListRefsRequest.SortBy.Key\x12(\n\tdirection\x18\x02 \x01(\x0e\x32\x15.gitaly.SortDirection\"F\n\x03Key\x12\x0b\n\x07REFNAME\x10\x00\x12\x0f\n\x0b\x43REATORDATE\x10\x01\x12\x0e\n\nAUTHORDATE\x10\x02\x12\x11\n\rCOMMITTERDATE\x10\x03\"u\n\x10ListRefsResponse\x12\x36\n\nreferences\x18\x01 \x03(\x0b\x32\".gitaly.ListRefsResponse.Reference\x1a)\n\tReference\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x0e\n\x06target\x18\x02 \x01(\t\"\x8a\x01\n\x14\x46indRefsByOIDRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\x14\n\x0cref_patterns\x18\x03 \x03(\t\x12\x12\n\nsort_field\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\r\"%\n\x15\x46indRefsByOIDResponse\x12\x0c\n\x04refs\x18\x01 \x03(\t2\xa5\r\n\nRefService\x12l\n\x15\x46indDefaultBranchName\x12$.gitaly.FindDefaultBranchNameRequest\x1a%.gitaly.FindDefaultBranchNameResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x65\n\x12\x46indAllBranchNames\x12!.gitaly.FindAllBranchNamesRequest\x1a\".gitaly.FindAllBranchNamesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\\\n\x0f\x46indAllTagNames\x12\x1e.gitaly.FindAllTagNamesRequest\x1a\x1f.gitaly.FindAllTagNamesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11\x46indLocalBranches\x12 .gitaly.FindLocalBranchesRequest\x1a!.gitaly.FindLocalBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\\\n\x0f\x46indAllBranches\x12\x1e.gitaly.FindAllBranchesRequest\x1a\x1f.gitaly.FindAllBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x46indAllTags\x12\x1a.gitaly.FindAllTagsRequest\x1a\x1b.gitaly.FindAllTagsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x42\n\x07\x46indTag\x12\x16.gitaly.FindTagRequest\x1a\x17.gitaly.FindTagResponse\"\x06\xfa\x97(\x02\x08\x02\x12n\n\x15\x46indAllRemoteBranches\x12$.gitaly.FindAllRemoteBranchesRequest\x1a%.gitaly.FindAllRemoteBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12H\n\tRefExists\x12\x18.gitaly.RefExistsRequest\x1a\x19.gitaly.RefExistsResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nFindBranch\x12\x19.gitaly.FindBranchRequest\x1a\x1a.gitaly.FindBranchResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nDeleteRefs\x12\x19.gitaly.DeleteRefsRequest\x1a\x1a.gitaly.DeleteRefsResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x8c\x01\n\x1fListBranchNamesContainingCommit\x12..gitaly.ListBranchNamesContainingCommitRequest\x1a/.gitaly.ListBranchNamesContainingCommitResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x83\x01\n\x1cListTagNamesContainingCommit\x12+.gitaly.ListTagNamesContainingCommitRequest\x1a,.gitaly.ListTagNamesContainingCommitResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10GetTagSignatures\x12\x1f.gitaly.GetTagSignaturesRequest\x1a .gitaly.GetTagSignaturesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eGetTagMessages\x12\x1d.gitaly.GetTagMessagesRequest\x1a\x1e.gitaly.GetTagMessagesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12H\n\x08PackRefs\x12\x17.gitaly.PackRefsRequest\x1a\x18.gitaly.PackRefsResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12G\n\x08ListRefs\x12\x17.gitaly.ListRefsRequest\x1a\x18.gitaly.ListRefsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12T\n\rFindRefsByOID\x12\x1c.gitaly.FindRefsByOIDRequest\x1a\x1d.gitaly.FindRefsByOIDResponse\"\x06\xfa\x97(\x02\x08\x02\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\tref.proto\x12\x06gitaly\x1a\x0c\x65rrors.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\x1a\x0cshared.proto\"L\n\x1c\x46indDefaultBranchNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"-\n\x1d\x46indDefaultBranchNameResponse\x12\x0c\n\x04name\x18\x01 \x01(\x0c\"I\n\x19\x46indAllBranchNamesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"+\n\x1a\x46indAllBranchNamesResponse\x12\r\n\x05names\x18\x01 \x03(\x0c\"F\n\x16\x46indAllTagNamesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"(\n\x17\x46indAllTagNamesResponse\x12\r\n\x05names\x18\x01 \x03(\x0c\"\xf1\x01\n\x18\x46indLocalBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x38\n\x07sort_by\x18\x02 \x01(\x0e\x32\'.gitaly.FindLocalBranchesRequest.SortBy\x12\x36\n\x11pagination_params\x18\x03 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\"5\n\x06SortBy\x12\x08\n\x04NAME\x10\x00\x12\x0f\n\x0bUPDATED_ASC\x10\x01\x12\x10\n\x0cUPDATED_DESC\x10\x02\"N\n\x19\x46indLocalBranchesResponse\x12\x31\n\x08\x62ranches\x18\x01 \x03(\x0b\x32\x1f.gitaly.FindLocalBranchResponse\"\xf0\x01\n\x17\x46indLocalBranchResponse\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x16\n\x0e\x63ommit_subject\x18\x03 \x01(\x0c\x12:\n\rcommit_author\x18\x04 \x01(\x0b\x32#.gitaly.FindLocalBranchCommitAuthor\x12=\n\x10\x63ommit_committer\x18\x05 \x01(\x0b\x32#.gitaly.FindLocalBranchCommitAuthor\x12!\n\x06\x63ommit\x18\x06 \x01(\x0b\x32\x11.gitaly.GitCommit\"v\n\x1b\x46indLocalBranchCommitAuthor\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05\x65mail\x18\x02 \x01(\x0c\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08timezone\x18\x04 \x01(\x0c\"t\n\x16\x46indAllBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x0bmerged_only\x18\x02 \x01(\x08\x12\x17\n\x0fmerged_branches\x18\x03 \x03(\x0c\"\x8e\x01\n\x17\x46indAllBranchesResponse\x12\x38\n\x08\x62ranches\x18\x01 \x03(\x0b\x32&.gitaly.FindAllBranchesResponse.Branch\x1a\x39\n\x06\x42ranch\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12!\n\x06target\x18\x02 \x01(\x0b\x32\x11.gitaly.GitCommit\"P\n\x0e\x46indTagRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08tag_name\x18\x02 \x01(\x0c\"+\n\x0f\x46indTagResponse\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.gitaly.Tag\"\xbc\x02\n\x12\x46indAllTagsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x32\n\x07sort_by\x18\x02 \x01(\x0b\x32!.gitaly.FindAllTagsRequest.SortBy\x12\x36\n\x11pagination_params\x18\x03 \x01(\x0b\x32\x1b.gitaly.PaginationParameter\x1a\x8b\x01\n\x06SortBy\x12\x32\n\x03key\x18\x01 \x01(\x0e\x32%.gitaly.FindAllTagsRequest.SortBy.Key\x12(\n\tdirection\x18\x02 \x01(\x0e\x32\x15.gitaly.SortDirection\"#\n\x03Key\x12\x0b\n\x07REFNAME\x10\x00\x12\x0f\n\x0b\x43REATORDATE\x10\x01\"0\n\x13\x46indAllTagsResponse\x12\x19\n\x04tags\x18\x01 \x03(\x0b\x32\x0b.gitaly.Tag\"M\n\x10RefExistsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03ref\x18\x02 \x01(\x0c\"\"\n\x11RefExistsResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"f\n\x13\x43reateBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04name\x18\x02 \x01(\x0c\x12\x13\n\x0bstart_point\x18\x03 \x01(\x0c\"\xbb\x01\n\x14\x43reateBranchResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.gitaly.CreateBranchResponse.Status\x12\x1e\n\x06\x62ranch\x18\x02 \x01(\x0b\x32\x0e.gitaly.Branch\"N\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nERR_EXISTS\x10\x01\x12\x0f\n\x0b\x45RR_INVALID\x10\x02\x12\x1b\n\x17\x45RR_INVALID_START_POINT\x10\x03\"Q\n\x13\x44\x65leteBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04name\x18\x02 \x01(\x0c\"\x16\n\x14\x44\x65leteBranchResponse\"O\n\x11\x46indBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04name\x18\x02 \x01(\x0c\"4\n\x12\x46indBranchResponse\x12\x1e\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0e.gitaly.Branch\"k\n\x11\x44\x65leteRefsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x1a\n\x12\x65xcept_with_prefix\x18\x02 \x03(\x0c\x12\x0c\n\x04refs\x18\x03 \x03(\x0c\"\'\n\x12\x44\x65leteRefsResponse\x12\x11\n\tgit_error\x18\x01 \x01(\t\"\x8f\x01\n\x0f\x44\x65leteRefsError\x12\x37\n\x0einvalid_format\x18\x01 \x01(\x0b\x32\x1d.gitaly.InvalidRefFormatErrorH\x00\x12:\n\x11references_locked\x18\x02 \x01(\x0b\x32\x1d.gitaly.ReferencesLockedErrorH\x00\x42\x07\n\x05\x65rror\"x\n&ListBranchNamesContainingCommitRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\r\"E\n\'ListBranchNamesContainingCommitResponse\x12\x14\n\x0c\x62ranch_names\x18\x02 \x03(\x0cJ\x04\x08\x01\x10\x02\"u\n#ListTagNamesContainingCommitRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\r\"?\n$ListTagNamesContainingCommitResponse\x12\x11\n\ttag_names\x18\x02 \x03(\x0cJ\x04\x08\x01\x10\x02\"^\n\x17GetTagSignaturesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rtag_revisions\x18\x02 \x03(\t\"\xa1\x01\n\x18GetTagSignaturesResponse\x12\x41\n\nsignatures\x18\x01 \x03(\x0b\x32-.gitaly.GetTagSignaturesResponse.TagSignature\x1a\x42\n\x0cTagSignature\x12\x0e\n\x06tag_id\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\x0c\"g\n\x15GetTagMessagesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0f\n\x07tag_ids\x18\x03 \x03(\tJ\x04\x08\x02\x10\x03R\ttag_names\"I\n\x16GetTagMessagesResponse\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x0e\n\x06tag_id\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02R\x08tag_name\"a\n\x1c\x46indAllRemoteBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x13\n\x0bremote_name\x18\x02 \x01(\t\"A\n\x1d\x46indAllRemoteBranchesResponse\x12 \n\x08\x62ranches\x18\x01 \x03(\x0b\x32\x0e.gitaly.Branch\"O\n\x0fPackRefsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01J\x04\x08\x02\x10\x03R\x08\x61ll_refs\"\x12\n\x10PackRefsResponse\"\xbe\x02\n\x0fListRefsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08patterns\x18\x02 \x03(\x0c\x12\x0c\n\x04head\x18\x03 \x01(\x08\x12/\n\x07sort_by\x18\x04 \x01(\x0b\x32\x1e.gitaly.ListRefsRequest.SortBy\x1a\xab\x01\n\x06SortBy\x12/\n\x03key\x18\x01 \x01(\x0e\x32\".gitaly.ListRefsRequest.SortBy.Key\x12(\n\tdirection\x18\x02 \x01(\x0e\x32\x15.gitaly.SortDirection\"F\n\x03Key\x12\x0b\n\x07REFNAME\x10\x00\x12\x0f\n\x0b\x43REATORDATE\x10\x01\x12\x0e\n\nAUTHORDATE\x10\x02\x12\x11\n\rCOMMITTERDATE\x10\x03\"u\n\x10ListRefsResponse\x12\x36\n\nreferences\x18\x01 \x03(\x0b\x32\".gitaly.ListRefsResponse.Reference\x1a)\n\tReference\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x0e\n\x06target\x18\x02 \x01(\t\"\x8a\x01\n\x14\x46indRefsByOIDRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03oid\x18\x02 \x01(\t\x12\x14\n\x0cref_patterns\x18\x03 \x03(\t\x12\x12\n\nsort_field\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\r\"%\n\x15\x46indRefsByOIDResponse\x12\x0c\n\x04refs\x18\x01 \x03(\t2\xa5\r\n\nRefService\x12l\n\x15\x46indDefaultBranchName\x12$.gitaly.FindDefaultBranchNameRequest\x1a%.gitaly.FindDefaultBranchNameResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x65\n\x12\x46indAllBranchNames\x12!.gitaly.FindAllBranchNamesRequest\x1a\".gitaly.FindAllBranchNamesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\\\n\x0f\x46indAllTagNames\x12\x1e.gitaly.FindAllTagNamesRequest\x1a\x1f.gitaly.FindAllTagNamesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11\x46indLocalBranches\x12 .gitaly.FindLocalBranchesRequest\x1a!.gitaly.FindLocalBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\\\n\x0f\x46indAllBranches\x12\x1e.gitaly.FindAllBranchesRequest\x1a\x1f.gitaly.FindAllBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12P\n\x0b\x46indAllTags\x12\x1a.gitaly.FindAllTagsRequest\x1a\x1b.gitaly.FindAllTagsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x42\n\x07\x46indTag\x12\x16.gitaly.FindTagRequest\x1a\x17.gitaly.FindTagResponse\"\x06\xfa\x97(\x02\x08\x02\x12n\n\x15\x46indAllRemoteBranches\x12$.gitaly.FindAllRemoteBranchesRequest\x1a%.gitaly.FindAllRemoteBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12H\n\tRefExists\x12\x18.gitaly.RefExistsRequest\x1a\x19.gitaly.RefExistsResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nFindBranch\x12\x19.gitaly.FindBranchRequest\x1a\x1a.gitaly.FindBranchResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nDeleteRefs\x12\x19.gitaly.DeleteRefsRequest\x1a\x1a.gitaly.DeleteRefsResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x8c\x01\n\x1fListBranchNamesContainingCommit\x12..gitaly.ListBranchNamesContainingCommitRequest\x1a/.gitaly.ListBranchNamesContainingCommitResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x83\x01\n\x1cListTagNamesContainingCommit\x12+.gitaly.ListTagNamesContainingCommitRequest\x1a,.gitaly.ListTagNamesContainingCommitResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12_\n\x10GetTagSignatures\x12\x1f.gitaly.GetTagSignaturesRequest\x1a .gitaly.GetTagSignaturesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12Y\n\x0eGetTagMessages\x12\x1d.gitaly.GetTagMessagesRequest\x1a\x1e.gitaly.GetTagMessagesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12H\n\x08PackRefs\x12\x17.gitaly.PackRefsRequest\x1a\x18.gitaly.PackRefsResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12G\n\x08ListRefs\x12\x17.gitaly.ListRefsRequest\x1a\x18.gitaly.ListRefsResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12T\n\rFindRefsByOID\x12\x1c.gitaly.FindRefsByOIDRequest\x1a\x1d.gitaly.FindRefsByOIDResponse\"\x06\xfa\x97(\x02\x08\x02\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
@@ -26,5 +27,5 @@
   ,
-  dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,lint__pb2.DESCRIPTOR,shared__pb2.DESCRIPTOR,])
+  dependencies=[errors__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,lint__pb2.DESCRIPTOR,shared__pb2.DESCRIPTOR,])
 
 
 
@@ -53,8 +54,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=628,
-  serialized_end=681,
+  serialized_start=642,
+  serialized_end=695,
 )
 _sym_db.RegisterEnumDescriptor(_FINDLOCALBRANCHESREQUEST_SORTBY)
 
@@ -78,8 +79,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1798,
-  serialized_end=1833,
+  serialized_start=1812,
+  serialized_end=1847,
 )
 _sym_db.RegisterEnumDescriptor(_FINDALLTAGSREQUEST_SORTBY_KEY)
 
@@ -113,8 +114,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2214,
-  serialized_end=2292,
+  serialized_start=2228,
+  serialized_end=2306,
 )
 _sym_db.RegisterEnumDescriptor(_CREATEBRANCHRESPONSE_STATUS)
 
@@ -148,8 +149,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=4019,
-  serialized_end=4089,
+  serialized_start=4179,
+  serialized_end=4249,
 )
 _sym_db.RegisterEnumDescriptor(_LISTREFSREQUEST_SORTBY_KEY)
 
@@ -181,8 +182,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=80,
-  serialized_end=156,
+  serialized_start=94,
+  serialized_end=170,
 )
 
 
@@ -213,8 +214,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=158,
-  serialized_end=203,
+  serialized_start=172,
+  serialized_end=217,
 )
 
 
@@ -245,8 +246,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=205,
-  serialized_end=278,
+  serialized_start=219,
+  serialized_end=292,
 )
 
 
@@ -277,8 +278,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=280,
-  serialized_end=323,
+  serialized_start=294,
+  serialized_end=337,
 )
 
 
@@ -309,8 +310,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=325,
-  serialized_end=395,
+  serialized_start=339,
+  serialized_end=409,
 )
 
 
@@ -341,8 +342,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=397,
-  serialized_end=437,
+  serialized_start=411,
+  serialized_end=451,
 )
 
 
@@ -388,8 +389,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=440,
-  serialized_end=681,
+  serialized_start=454,
+  serialized_end=695,
 )
 
 
@@ -420,8 +421,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=683,
-  serialized_end=761,
+  serialized_start=697,
+  serialized_end=775,
 )
 
 
@@ -487,8 +488,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=764,
-  serialized_end=1004,
+  serialized_start=778,
+  serialized_end=1018,
 )
 
 
@@ -540,8 +541,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1006,
-  serialized_end=1124,
+  serialized_start=1020,
+  serialized_end=1138,
 )
 
 
@@ -586,8 +587,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1126,
-  serialized_end=1242,
+  serialized_start=1140,
+  serialized_end=1256,
 )
 
 
@@ -625,8 +626,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1330,
-  serialized_end=1387,
+  serialized_start=1344,
+  serialized_end=1401,
 )
 
 _FINDALLBRANCHESRESPONSE = _descriptor.Descriptor(
@@ -656,8 +657,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1245,
-  serialized_end=1387,
+  serialized_start=1259,
+  serialized_end=1401,
 )
 
 
@@ -695,8 +696,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1389,
-  serialized_end=1469,
+  serialized_start=1403,
+  serialized_end=1483,
 )
 
 
@@ -727,8 +728,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1471,
-  serialized_end=1514,
+  serialized_start=1485,
+  serialized_end=1528,
 )
 
 
@@ -767,8 +768,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1694,
-  serialized_end=1833,
+  serialized_start=1708,
+  serialized_end=1847,
 )
 
 _FINDALLTAGSREQUEST = _descriptor.Descriptor(
@@ -812,8 +813,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1517,
-  serialized_end=1833,
+  serialized_start=1531,
+  serialized_end=1847,
 )
 
 
@@ -844,8 +845,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1835,
-  serialized_end=1883,
+  serialized_start=1849,
+  serialized_end=1897,
 )
 
 
@@ -883,8 +884,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1885,
-  serialized_end=1962,
+  serialized_start=1899,
+  serialized_end=1976,
 )
 
 
@@ -915,8 +916,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1964,
-  serialized_end=1998,
+  serialized_start=1978,
+  serialized_end=2012,
 )
 
 
@@ -961,8 +962,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2000,
-  serialized_end=2102,
+  serialized_start=2014,
+  serialized_end=2116,
 )
 
 
@@ -1001,8 +1002,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2105,
-  serialized_end=2292,
+  serialized_start=2119,
+  serialized_end=2306,
 )
 
 
@@ -1040,8 +1041,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2294,
-  serialized_end=2375,
+  serialized_start=2308,
+  serialized_end=2389,
 )
 
 
@@ -1065,8 +1066,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2377,
-  serialized_end=2399,
+  serialized_start=2391,
+  serialized_end=2413,
 )
 
 
@@ -1104,8 +1105,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2401,
-  serialized_end=2480,
+  serialized_start=2415,
+  serialized_end=2494,
 )
 
 
@@ -1136,8 +1137,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2482,
-  serialized_end=2534,
+  serialized_start=2496,
+  serialized_end=2548,
 )
 
 
@@ -1182,8 +1183,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2536,
-  serialized_end=2643,
+  serialized_start=2550,
+  serialized_end=2657,
 )
 
 
@@ -1214,8 +1215,52 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2645,
-  serialized_end=2684,
+  serialized_start=2659,
+  serialized_end=2698,
+)
+
+
+_DELETEREFSERROR = _descriptor.Descriptor(
+  name='DeleteRefsError',
+  full_name='gitaly.DeleteRefsError',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='invalid_format', full_name='gitaly.DeleteRefsError.invalid_format', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='references_locked', full_name='gitaly.DeleteRefsError.references_locked', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='error', full_name='gitaly.DeleteRefsError.error',
+      index=0, containing_type=None,
+      create_key=_descriptor._internal_create_key,
+    fields=[]),
+  ],
+  serialized_start=2701,
+  serialized_end=2844,
 )
 
 
@@ -1260,8 +1305,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2686,
-  serialized_end=2806,
+  serialized_start=2846,
+  serialized_end=2966,
 )
 
 
@@ -1292,8 +1337,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2808,
-  serialized_end=2877,
+  serialized_start=2968,
+  serialized_end=3037,
 )
 
 
@@ -1338,8 +1383,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2879,
-  serialized_end=2996,
+  serialized_start=3039,
+  serialized_end=3156,
 )
 
 
@@ -1370,8 +1415,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2998,
-  serialized_end=3061,
+  serialized_start=3158,
+  serialized_end=3221,
 )
 
 
@@ -1409,8 +1454,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3063,
-  serialized_end=3157,
+  serialized_start=3223,
+  serialized_end=3317,
 )
 
 
@@ -1455,8 +1500,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3255,
-  serialized_end=3321,
+  serialized_start=3415,
+  serialized_end=3481,
 )
 
 _GETTAGSIGNATURESRESPONSE = _descriptor.Descriptor(
@@ -1486,8 +1531,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3160,
-  serialized_end=3321,
+  serialized_start=3320,
+  serialized_end=3481,
 )
 
 
@@ -1525,8 +1570,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3323,
-  serialized_end=3426,
+  serialized_start=3483,
+  serialized_end=3586,
 )
 
 
@@ -1564,8 +1609,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3428,
-  serialized_end=3501,
+  serialized_start=3588,
+  serialized_end=3661,
 )
 
 
@@ -1603,8 +1648,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3503,
-  serialized_end=3600,
+  serialized_start=3663,
+  serialized_end=3760,
 )
 
 
@@ -1635,8 +1680,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3602,
-  serialized_end=3667,
+  serialized_start=3762,
+  serialized_end=3827,
 )
 
 
@@ -1667,8 +1712,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3669,
-  serialized_end=3748,
+  serialized_start=3829,
+  serialized_end=3908,
 )
 
 
@@ -1692,8 +1737,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3750,
-  serialized_end=3768,
+  serialized_start=3910,
+  serialized_end=3928,
 )
 
 
@@ -1732,8 +1777,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3918,
-  serialized_end=4089,
+  serialized_start=4078,
+  serialized_end=4249,
 )
 
 _LISTREFSREQUEST = _descriptor.Descriptor(
@@ -1784,8 +1829,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3771,
-  serialized_end=4089,
+  serialized_start=3931,
+  serialized_end=4249,
 )
 
 
@@ -1823,8 +1868,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4167,
-  serialized_end=4208,
+  serialized_start=4327,
+  serialized_end=4368,
 )
 
 _LISTREFSRESPONSE = _descriptor.Descriptor(
@@ -1854,8 +1899,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4091,
-  serialized_end=4208,
+  serialized_start=4251,
+  serialized_end=4368,
 )
 
 
@@ -1914,8 +1959,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4211,
-  serialized_end=4349,
+  serialized_start=4371,
+  serialized_end=4509,
 )
 
 
@@ -1946,8 +1991,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4351,
-  serialized_end=4388,
+  serialized_start=4511,
+  serialized_end=4548,
 )
 
 _FINDDEFAULTBRANCHNAMEREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
@@ -1985,6 +2030,14 @@
 _FINDBRANCHREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
 _FINDBRANCHRESPONSE.fields_by_name['branch'].message_type = shared__pb2._BRANCH
 _DELETEREFSREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
+_DELETEREFSERROR.fields_by_name['invalid_format'].message_type = errors__pb2._INVALIDREFFORMATERROR
+_DELETEREFSERROR.fields_by_name['references_locked'].message_type = errors__pb2._REFERENCESLOCKEDERROR
+_DELETEREFSERROR.oneofs_by_name['error'].fields.append(
+  _DELETEREFSERROR.fields_by_name['invalid_format'])
+_DELETEREFSERROR.fields_by_name['invalid_format'].containing_oneof = _DELETEREFSERROR.oneofs_by_name['error']
+_DELETEREFSERROR.oneofs_by_name['error'].fields.append(
+  _DELETEREFSERROR.fields_by_name['references_locked'])
+_DELETEREFSERROR.fields_by_name['references_locked'].containing_oneof = _DELETEREFSERROR.oneofs_by_name['error']
 _LISTBRANCHNAMESCONTAININGCOMMITREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
 _LISTTAGNAMESCONTAININGCOMMITREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
 _GETTAGSIGNATURESREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
@@ -2029,6 +2082,7 @@
 DESCRIPTOR.message_types_by_name['FindBranchResponse'] = _FINDBRANCHRESPONSE
 DESCRIPTOR.message_types_by_name['DeleteRefsRequest'] = _DELETEREFSREQUEST
 DESCRIPTOR.message_types_by_name['DeleteRefsResponse'] = _DELETEREFSRESPONSE
+DESCRIPTOR.message_types_by_name['DeleteRefsError'] = _DELETEREFSERROR
 DESCRIPTOR.message_types_by_name['ListBranchNamesContainingCommitRequest'] = _LISTBRANCHNAMESCONTAININGCOMMITREQUEST
 DESCRIPTOR.message_types_by_name['ListBranchNamesContainingCommitResponse'] = _LISTBRANCHNAMESCONTAININGCOMMITRESPONSE
 DESCRIPTOR.message_types_by_name['ListTagNamesContainingCommitRequest'] = _LISTTAGNAMESCONTAININGCOMMITREQUEST
@@ -2245,6 +2299,13 @@
   })
 _sym_db.RegisterMessage(DeleteRefsResponse)
 
+DeleteRefsError = _reflection.GeneratedProtocolMessageType('DeleteRefsError', (_message.Message,), {
+  'DESCRIPTOR' : _DELETEREFSERROR,
+  '__module__' : 'ref_pb2'
+  # @@protoc_insertion_point(class_scope:gitaly.DeleteRefsError)
+  })
+_sym_db.RegisterMessage(DeleteRefsError)
+
 ListBranchNamesContainingCommitRequest = _reflection.GeneratedProtocolMessageType('ListBranchNamesContainingCommitRequest', (_message.Message,), {
   'DESCRIPTOR' : _LISTBRANCHNAMESCONTAININGCOMMITREQUEST,
   '__module__' : 'ref_pb2'
@@ -2411,8 +2472,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=4391,
-  serialized_end=6092,
+  serialized_start=4551,
+  serialized_end=6252,
   methods=[
   _descriptor.MethodDescriptor(
     name='FindDefaultBranchName',
diff --git a/hgitaly/stub/repository_service_pb2.py b/hgitaly/stub/repository_pb2.py
similarity index 86%
rename from hgitaly/stub/repository_service_pb2.py
rename to hgitaly/stub/repository_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL3JlcG9zaXRvcnlfc2VydmljZV9wYjIucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL3JlcG9zaXRvcnlfcGIyLnB5 100644
--- a/hgitaly/stub/repository_service_pb2.py
+++ b/hgitaly/stub/repository_pb2.py
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: repository-service.proto
+# source: repository.proto
 """Generated protocol buffer code."""
 from google.protobuf import descriptor as _descriptor
 from google.protobuf import message as _message
@@ -16,6 +16,6 @@
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
-  name='repository-service.proto',
+  name='repository.proto',
   package='gitaly',
   syntax='proto3',
@@ -20,4 +20,4 @@
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -23,5 +23,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x18repository-service.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"G\n\x17RepositoryExistsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"*\n\x18RepositoryExistsResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"H\n\x18RepackIncrementalRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1b\n\x19RepackIncrementalResponse\"X\n\x11RepackFullRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rcreate_bitmap\x18\x02 \x01(\x08\"\x14\n\x12RepackFullResponse\"A\n\x11MidxRepackRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x14\n\x12MidxRepackResponse\"k\n\x15GarbageCollectRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rcreate_bitmap\x18\x02 \x01(\x08\x12\r\n\x05prune\x18\x03 \x01(\x08\"\x18\n\x16GarbageCollectResponse\"\xb0\x01\n\x17WriteCommitGraphRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x44\n\rsplitStrategy\x18\x02 \x01(\x0e\x32-.gitaly.WriteCommitGraphRequest.SplitStrategy\"!\n\rSplitStrategy\x12\x10\n\x0cSizeMultiple\x10\x00\"\x1a\n\x18WriteCommitGraphResponse\">\n\x0e\x43leanupRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x11\n\x0f\x43leanupResponse\"E\n\x15RepositorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"&\n\x16RepositorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"[\n\x19\x41pplyGitattributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"\x1c\n\x1a\x41pplyGitattributesResponse\"e\n\x12\x46\x65tchBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x13\n\x0bupdate_head\x18\x03 \x01(\x08\"\x15\n\x13\x46\x65tchBundleResponse\"\x82\x02\n\x12\x46\x65tchRemoteRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\x12\x0f\n\x07no_tags\x18\x04 \x01(\x08\x12\x0f\n\x07timeout\x18\x05 \x01(\x05\x12\x0f\n\x07ssh_key\x18\x06 \x01(\t\x12\x13\n\x0bknown_hosts\x18\x07 \x01(\t\x12\x10\n\x08no_prune\x18\t \x01(\x08\x12%\n\rremote_params\x18\n \x01(\x0b\x32\x0e.gitaly.Remote\x12\x1a\n\x12\x63heck_tags_changed\x18\x0b \x01(\x08J\x04\x08\x08\x10\tJ\x04\x08\x02\x10\x03R\x06remote\"+\n\x13\x46\x65tchRemoteResponse\x12\x14\n\x0ctags_changed\x18\x01 \x01(\x08\"_\n\x17\x43reateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0e\x64\x65\x66\x61ult_branch\x18\x02 \x01(\x0c\"\x1a\n\x18\x43reateRepositoryResponse\"\x99\x02\n\x11GetArchiveRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x0e\n\x06prefix\x18\x03 \x01(\t\x12\x30\n\x06\x66ormat\x18\x04 \x01(\x0e\x32 .gitaly.GetArchiveRequest.Format\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\x0f\n\x07\x65xclude\x18\x06 \x03(\x0c\x12\x12\n\nelide_path\x18\x07 \x01(\x08\x12\x19\n\x11include_lfs_blobs\x18\x08 \x01(\x08\"3\n\x06\x46ormat\x12\x07\n\x03ZIP\x10\x00\x12\x07\n\x03TAR\x10\x01\x12\n\n\x06TAR_GZ\x10\x02\x12\x0b\n\x07TAR_BZ2\x10\x03\"\"\n\x12GetArchiveResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"G\n\x17HasLocalBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x18HasLocalBranchesResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\xa2\x01\n\x18\x46\x65tchSourceBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x15\n\rsource_branch\x18\x03 \x01(\x0c\x12\x12\n\ntarget_ref\x18\x04 \x01(\x0c\"+\n\x19\x46\x65tchSourceBranchResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\";\n\x0b\x46sckRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1d\n\x0c\x46sckResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\x0c\"\x89\x01\n\x0fWriteRefRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03ref\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x0c\x12\x14\n\x0cold_revision\x18\x04 \x01(\x0c\x12\r\n\x05\x66orce\x18\x05 \x01(\x08J\x04\x08\x06\x10\x07\"\x18\n\x10WriteRefResponseJ\x04\x08\x01\x10\x02\"W\n\x14\x46indMergeBaseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"%\n\x15\x46indMergeBaseResponse\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\t\"p\n\x11\x43reateForkRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\"\x14\n\x12\x43reateForkResponse\"\xa1\x01\n\x1e\x43reateRepositoryFromURLRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x11\n\thttp_host\x18\x03 \x01(\t\x12!\n\x19http_authorization_header\x18\x04 \x01(\t\x12\x0e\n\x06mirror\x18\x05 \x01(\x08\"!\n\x1f\x43reateRepositoryFromURLResponse\"C\n\x13\x43reateBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"$\n\x14\x43reateBundleResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"`\n\x1e\x43reateBundleFromRefListRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08patterns\x18\x02 \x03(\x0c\"/\n\x1f\x43reateBundleFromRefListResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"@\n\x10GetConfigRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x11GetConfigResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"W\n\x19RestoreCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x1c\n\x1aRestoreCustomHooksResponse\"H\n\x18\x42\x61\x63kupCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x19\x42\x61\x63kupCustomHooksResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"_\n!CreateRepositoryFromBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"$\n\"CreateRepositoryFromBundleResponse\"B\n\x12\x46indLicenseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"1\n\x13\x46indLicenseResponse\x12\x1a\n\x12license_short_name\x18\x01 \x01(\t\"H\n\x18GetInfoAttributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"/\n\x19GetInfoAttributesResponse\x12\x12\n\nattributes\x18\x01 \x01(\x0c\"H\n\x18\x43\x61lculateChecksumRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"-\n\x19\x43\x61lculateChecksumResponse\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\"B\n\x12GetSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"#\n\x13GetSnapshotResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x8b\x01\n#CreateRepositoryFromSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08http_url\x18\x02 \x01(\t\x12\x11\n\thttp_auth\x18\x03 \x01(\t\x12\x11\n\thttp_host\x18\x04 \x01(\t\"&\n$CreateRepositoryFromSnapshotResponse\"p\n\x14GetRawChangesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rfrom_revision\x18\x02 \x01(\t\x12\x13\n\x0bto_revision\x18\x03 \x01(\t\"\xbe\x03\n\x15GetRawChangesResponse\x12<\n\x0braw_changes\x18\x01 \x03(\x0b\x32\'.gitaly.GetRawChangesResponse.RawChange\x1a\xe6\x02\n\tRawChange\x12\x0f\n\x07\x62lob_id\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x44\n\toperation\x18\x05 \x01(\x0e\x32\x31.gitaly.GetRawChangesResponse.RawChange.Operation\x12\x15\n\rraw_operation\x18\x06 \x01(\t\x12\x10\n\x08old_mode\x18\x07 \x01(\x05\x12\x10\n\x08new_mode\x18\x08 \x01(\x05\x12\x16\n\x0enew_path_bytes\x18\t \x01(\x0c\x12\x16\n\x0eold_path_bytes\x18\n \x01(\x0c\"i\n\tOperation\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x01\x12\n\n\x06\x43OPIED\x10\x02\x12\x0b\n\x07\x44\x45LETED\x10\x03\x12\x0c\n\x08MODIFIED\x10\x04\x12\x0b\n\x07RENAMED\x10\x05\x12\x10\n\x0cTYPE_CHANGED\x10\x06J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05R\x08new_pathR\x08old_path\"t\n\x18SearchFilesByNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0c\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"*\n\x19SearchFilesByNameResponse\x12\r\n\x05\x66iles\x18\x01 \x03(\x0c\"\x81\x01\n\x1bSearchFilesByContentRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0c\x12\x18\n\x10\x63hunked_response\x18\x04 \x01(\x08\"Y\n\x1cSearchFilesByContentResponse\x12\x0f\n\x07matches\x18\x01 \x03(\x0c\x12\x12\n\nmatch_data\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65nd_of_match\x18\x03 \x01(\x08\"o\n\x06Remote\x12\x0b\n\x03url\x18\x01 \x01(\t\x12!\n\x19http_authorization_header\x18\x03 \x01(\t\x12\x16\n\x0emirror_refmaps\x18\x04 \x03(\t\x12\x11\n\thttp_host\x18\x05 \x01(\tJ\x04\x08\x02\x10\x03R\x04name\"M\n\x1dGetObjectDirectorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\".\n\x1eGetObjectDirectorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"G\n\x17RemoveRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1a\n\x18RemoveRepositoryResponse\"^\n\x17RenameRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rrelative_path\x18\x02 \x01(\t\"\x1a\n\x18RenameRepositoryResponse\"n\n\x1aReplicateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\"\n\x06source\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\"\x1d\n\x1bReplicateRepositoryResponse\"I\n\x19OptimizeRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1c\n\x1aOptimizeRepositoryResponse\"N\n\x1ePruneUnreachableObjectsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x1fPruneUnreachableObjectsResponse\"P\n\x12SetFullPathRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x15\n\x13SetFullPathResponse2\x9c\x1e\n\x11RepositoryService\x12]\n\x10RepositoryExists\x12\x1f.gitaly.RepositoryExistsRequest\x1a .gitaly.RepositoryExistsResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x63\n\x11RepackIncremental\x12 .gitaly.RepackIncrementalRequest\x1a!.gitaly.RepackIncrementalResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12N\n\nRepackFull\x12\x19.gitaly.RepackFullRequest\x1a\x1a.gitaly.RepackFullResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12N\n\nMidxRepack\x12\x19.gitaly.MidxRepackRequest\x1a\x1a.gitaly.MidxRepackResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12Z\n\x0eGarbageCollect\x12\x1d.gitaly.GarbageCollectRequest\x1a\x1e.gitaly.GarbageCollectResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12`\n\x10WriteCommitGraph\x12\x1f.gitaly.WriteCommitGraphRequest\x1a .gitaly.WriteCommitGraphResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12W\n\x0eRepositorySize\x12\x1d.gitaly.RepositorySizeRequest\x1a\x1e.gitaly.RepositorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x63\n\x12\x41pplyGitattributes\x12!.gitaly.ApplyGitattributesRequest\x1a\".gitaly.ApplyGitattributesResponse\"\x06\xfa\x97(\x02\x08\x01\x12N\n\x0b\x46\x65tchRemote\x12\x1a.gitaly.FetchRemoteRequest\x1a\x1b.gitaly.FetchRemoteResponse\"\x06\xfa\x97(\x02\x08\x01\x12]\n\x10\x43reateRepository\x12\x1f.gitaly.CreateRepositoryRequest\x1a .gitaly.CreateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12M\n\nGetArchive\x12\x19.gitaly.GetArchiveRequest\x1a\x1a.gitaly.GetArchiveResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12]\n\x10HasLocalBranches\x12\x1f.gitaly.HasLocalBranchesRequest\x1a .gitaly.HasLocalBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x12`\n\x11\x46\x65tchSourceBranch\x12 .gitaly.FetchSourceBranchRequest\x1a!.gitaly.FetchSourceBranchResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x39\n\x04\x46sck\x12\x13.gitaly.FsckRequest\x1a\x14.gitaly.FsckResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x45\n\x08WriteRef\x12\x17.gitaly.WriteRefRequest\x1a\x18.gitaly.WriteRefResponse\"\x06\xfa\x97(\x02\x08\x01\x12T\n\rFindMergeBase\x12\x1c.gitaly.FindMergeBaseRequest\x1a\x1d.gitaly.FindMergeBaseResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nCreateFork\x12\x19.gitaly.CreateForkRequest\x1a\x1a.gitaly.CreateForkResponse\"\x06\xfa\x97(\x02\x08\x01\x12r\n\x17\x43reateRepositoryFromURL\x12&.gitaly.CreateRepositoryFromURLRequest\x1a\'.gitaly.CreateRepositoryFromURLResponse\"\x06\xfa\x97(\x02\x08\x01\x12S\n\x0c\x43reateBundle\x12\x1b.gitaly.CreateBundleRequest\x1a\x1c.gitaly.CreateBundleResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12v\n\x17\x43reateBundleFromRefList\x12&.gitaly.CreateBundleFromRefListRequest\x1a\'.gitaly.CreateBundleFromRefListResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x12P\n\x0b\x46\x65tchBundle\x12\x1a.gitaly.FetchBundleRequest\x1a\x1b.gitaly.FetchBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12}\n\x1a\x43reateRepositoryFromBundle\x12).gitaly.CreateRepositoryFromBundleRequest\x1a*.gitaly.CreateRepositoryFromBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12J\n\tGetConfig\x12\x18.gitaly.GetConfigRequest\x1a\x19.gitaly.GetConfigResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12N\n\x0b\x46indLicense\x12\x1a.gitaly.FindLicenseRequest\x1a\x1b.gitaly.FindLicenseResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x62\n\x11GetInfoAttributes\x12 .gitaly.GetInfoAttributesRequest\x1a!.gitaly.GetInfoAttributesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12`\n\x11\x43\x61lculateChecksum\x12 .gitaly.CalculateChecksumRequest\x1a!.gitaly.CalculateChecksumResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x45\n\x07\x43leanup\x12\x16.gitaly.CleanupRequest\x1a\x17.gitaly.CleanupResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12P\n\x0bGetSnapshot\x12\x1a.gitaly.GetSnapshotRequest\x1a\x1b.gitaly.GetSnapshotResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x81\x01\n\x1c\x43reateRepositoryFromSnapshot\x12+.gitaly.CreateRepositoryFromSnapshotRequest\x1a,.gitaly.CreateRepositoryFromSnapshotResponse\"\x06\xfa\x97(\x02\x08\x01\x12V\n\rGetRawChanges\x12\x1c.gitaly.GetRawChangesRequest\x1a\x1d.gitaly.GetRawChangesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12k\n\x14SearchFilesByContent\x12#.gitaly.SearchFilesByContentRequest\x1a$.gitaly.SearchFilesByContentResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11SearchFilesByName\x12 .gitaly.SearchFilesByNameRequest\x1a!.gitaly.SearchFilesByNameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x65\n\x12RestoreCustomHooks\x12!.gitaly.RestoreCustomHooksRequest\x1a\".gitaly.RestoreCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12\x62\n\x11\x42\x61\x63kupCustomHooks\x12 .gitaly.BackupCustomHooksRequest\x1a!.gitaly.BackupCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12o\n\x16GetObjectDirectorySize\x12%.gitaly.GetObjectDirectorySizeRequest\x1a&.gitaly.GetObjectDirectorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12]\n\x10RemoveRepository\x12\x1f.gitaly.RemoveRepositoryRequest\x1a .gitaly.RemoveRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12]\n\x10RenameRepository\x12\x1f.gitaly.RenameRepositoryRequest\x1a .gitaly.RenameRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x66\n\x13ReplicateRepository\x12\".gitaly.ReplicateRepositoryRequest\x1a#.gitaly.ReplicateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x63\n\x12OptimizeRepository\x12!.gitaly.OptimizeRepositoryRequest\x1a\".gitaly.OptimizeRepositoryResponse\"\x06\xfa\x97(\x02\x08\x03\x12r\n\x17PruneUnreachableObjects\x12&.gitaly.PruneUnreachableObjectsRequest\x1a\'.gitaly.PruneUnreachableObjectsResponse\"\x06\xfa\x97(\x02\x08\x03\x12N\n\x0bSetFullPath\x12\x1a.gitaly.SetFullPathRequest\x1a\x1b.gitaly.SetFullPathResponse\"\x06\xfa\x97(\x02\x08\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\x10repository.proto\x12\x06gitaly\x1a\nlint.proto\x1a\x0cshared.proto\"G\n\x17RepositoryExistsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"*\n\x18RepositoryExistsResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"H\n\x18RepackIncrementalRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1b\n\x19RepackIncrementalResponse\"X\n\x11RepackFullRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rcreate_bitmap\x18\x02 \x01(\x08\"\x14\n\x12RepackFullResponse\"A\n\x11MidxRepackRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x14\n\x12MidxRepackResponse\"k\n\x15GarbageCollectRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rcreate_bitmap\x18\x02 \x01(\x08\x12\r\n\x05prune\x18\x03 \x01(\x08\"\x18\n\x16GarbageCollectResponse\"\xb0\x01\n\x17WriteCommitGraphRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x44\n\rsplitStrategy\x18\x02 \x01(\x0e\x32-.gitaly.WriteCommitGraphRequest.SplitStrategy\"!\n\rSplitStrategy\x12\x10\n\x0cSizeMultiple\x10\x00\"\x1a\n\x18WriteCommitGraphResponse\">\n\x0e\x43leanupRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x11\n\x0f\x43leanupResponse\"E\n\x15RepositorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"&\n\x16RepositorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"[\n\x19\x41pplyGitattributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08revision\x18\x02 \x01(\x0c\"\x1c\n\x1a\x41pplyGitattributesResponse\"e\n\x12\x46\x65tchBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x13\n\x0bupdate_head\x18\x03 \x01(\x08\"\x15\n\x13\x46\x65tchBundleResponse\"\x82\x02\n\x12\x46\x65tchRemoteRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\x12\x0f\n\x07no_tags\x18\x04 \x01(\x08\x12\x0f\n\x07timeout\x18\x05 \x01(\x05\x12\x0f\n\x07ssh_key\x18\x06 \x01(\t\x12\x13\n\x0bknown_hosts\x18\x07 \x01(\t\x12\x10\n\x08no_prune\x18\t \x01(\x08\x12%\n\rremote_params\x18\n \x01(\x0b\x32\x0e.gitaly.Remote\x12\x1a\n\x12\x63heck_tags_changed\x18\x0b \x01(\x08J\x04\x08\x08\x10\tJ\x04\x08\x02\x10\x03R\x06remote\"+\n\x13\x46\x65tchRemoteResponse\x12\x14\n\x0ctags_changed\x18\x01 \x01(\x08\"_\n\x17\x43reateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x16\n\x0e\x64\x65\x66\x61ult_branch\x18\x02 \x01(\x0c\"\x1a\n\x18\x43reateRepositoryResponse\"\x99\x02\n\x11GetArchiveRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x0e\n\x06prefix\x18\x03 \x01(\t\x12\x30\n\x06\x66ormat\x18\x04 \x01(\x0e\x32 .gitaly.GetArchiveRequest.Format\x12\x0c\n\x04path\x18\x05 \x01(\x0c\x12\x0f\n\x07\x65xclude\x18\x06 \x03(\x0c\x12\x12\n\nelide_path\x18\x07 \x01(\x08\x12\x19\n\x11include_lfs_blobs\x18\x08 \x01(\x08\"3\n\x06\x46ormat\x12\x07\n\x03ZIP\x10\x00\x12\x07\n\x03TAR\x10\x01\x12\n\n\x06TAR_GZ\x10\x02\x12\x0b\n\x07TAR_BZ2\x10\x03\"\"\n\x12GetArchiveResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"G\n\x17HasLocalBranchesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x18HasLocalBranchesResponse\x12\r\n\x05value\x18\x01 \x01(\x08\"\xa2\x01\n\x18\x46\x65tchSourceBranchRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\x12\x15\n\rsource_branch\x18\x03 \x01(\x0c\x12\x12\n\ntarget_ref\x18\x04 \x01(\x0c\"+\n\x19\x46\x65tchSourceBranchResponse\x12\x0e\n\x06result\x18\x01 \x01(\x08\";\n\x0b\x46sckRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1d\n\x0c\x46sckResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\x0c\"\x89\x01\n\x0fWriteRefRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03ref\x18\x02 \x01(\x0c\x12\x10\n\x08revision\x18\x03 \x01(\x0c\x12\x14\n\x0cold_revision\x18\x04 \x01(\x0c\x12\r\n\x05\x66orce\x18\x05 \x01(\x08J\x04\x08\x06\x10\x07\"\x18\n\x10WriteRefResponseJ\x04\x08\x01\x10\x02\"W\n\x14\x46indMergeBaseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x11\n\trevisions\x18\x02 \x03(\x0c\"%\n\x15\x46indMergeBaseResponse\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\t\"p\n\x11\x43reateForkRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12-\n\x11source_repository\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\"\x14\n\x12\x43reateForkResponse\"\xa1\x01\n\x1e\x43reateRepositoryFromURLRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x11\n\thttp_host\x18\x03 \x01(\t\x12!\n\x19http_authorization_header\x18\x04 \x01(\t\x12\x0e\n\x06mirror\x18\x05 \x01(\x08\"!\n\x1f\x43reateRepositoryFromURLResponse\"C\n\x13\x43reateBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"$\n\x14\x43reateBundleResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"`\n\x1e\x43reateBundleFromRefListRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08patterns\x18\x02 \x03(\x0c\"/\n\x1f\x43reateBundleFromRefListResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"@\n\x10GetConfigRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x11GetConfigResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"W\n\x19RestoreCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x1c\n\x1aRestoreCustomHooksResponse\"H\n\x18\x42\x61\x63kupCustomHooksRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\")\n\x19\x42\x61\x63kupCustomHooksResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"_\n!CreateRepositoryFromBundleRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"$\n\"CreateRepositoryFromBundleResponse\"B\n\x12\x46indLicenseRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"1\n\x13\x46indLicenseResponse\x12\x1a\n\x12license_short_name\x18\x01 \x01(\t\"H\n\x18GetInfoAttributesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"/\n\x19GetInfoAttributesResponse\x12\x12\n\nattributes\x18\x01 \x01(\x0c\"H\n\x18\x43\x61lculateChecksumRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"-\n\x19\x43\x61lculateChecksumResponse\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\"B\n\x12GetSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"#\n\x13GetSnapshotResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x8b\x01\n#CreateRepositoryFromSnapshotRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x10\n\x08http_url\x18\x02 \x01(\t\x12\x11\n\thttp_auth\x18\x03 \x01(\t\x12\x11\n\thttp_host\x18\x04 \x01(\t\"&\n$CreateRepositoryFromSnapshotResponse\"p\n\x14GetRawChangesRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rfrom_revision\x18\x02 \x01(\t\x12\x13\n\x0bto_revision\x18\x03 \x01(\t\"\xbe\x03\n\x15GetRawChangesResponse\x12<\n\x0braw_changes\x18\x01 \x03(\x0b\x32\'.gitaly.GetRawChangesResponse.RawChange\x1a\xe6\x02\n\tRawChange\x12\x0f\n\x07\x62lob_id\x18\x01 \x01(\t\x12\x0c\n\x04size\x18\x02 \x01(\x03\x12\x44\n\toperation\x18\x05 \x01(\x0e\x32\x31.gitaly.GetRawChangesResponse.RawChange.Operation\x12\x15\n\rraw_operation\x18\x06 \x01(\t\x12\x10\n\x08old_mode\x18\x07 \x01(\x05\x12\x10\n\x08new_mode\x18\x08 \x01(\x05\x12\x16\n\x0enew_path_bytes\x18\t \x01(\x0c\x12\x16\n\x0eold_path_bytes\x18\n \x01(\x0c\"i\n\tOperation\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x01\x12\n\n\x06\x43OPIED\x10\x02\x12\x0b\n\x07\x44\x45LETED\x10\x03\x12\x0c\n\x08MODIFIED\x10\x04\x12\x0b\n\x07RENAMED\x10\x05\x12\x10\n\x0cTYPE_CHANGED\x10\x06J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05R\x08new_pathR\x08old_path\"t\n\x18SearchFilesByNameRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0c\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"*\n\x19SearchFilesByNameResponse\x12\r\n\x05\x66iles\x18\x01 \x03(\x0c\"\x81\x01\n\x1bSearchFilesByContentRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\x0c\x12\x18\n\x10\x63hunked_response\x18\x04 \x01(\x08\"Y\n\x1cSearchFilesByContentResponse\x12\x0f\n\x07matches\x18\x01 \x03(\x0c\x12\x12\n\nmatch_data\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65nd_of_match\x18\x03 \x01(\x08\"o\n\x06Remote\x12\x0b\n\x03url\x18\x01 \x01(\t\x12!\n\x19http_authorization_header\x18\x03 \x01(\t\x12\x16\n\x0emirror_refmaps\x18\x04 \x03(\t\x12\x11\n\thttp_host\x18\x05 \x01(\tJ\x04\x08\x02\x10\x03R\x04name\"M\n\x1dGetObjectDirectorySizeRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\".\n\x1eGetObjectDirectorySizeResponse\x12\x0c\n\x04size\x18\x01 \x01(\x03\"G\n\x17RemoveRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1a\n\x18RemoveRepositoryResponse\"^\n\x17RenameRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x15\n\rrelative_path\x18\x02 \x01(\t\"\x1a\n\x18RenameRepositoryResponse\"n\n\x1aReplicateRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\"\n\x06source\x18\x02 \x01(\x0b\x32\x12.gitaly.Repository\"\x1d\n\x1bReplicateRepositoryResponse\"I\n\x19OptimizeRepositoryRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"\x1c\n\x1aOptimizeRepositoryResponse\"N\n\x1ePruneUnreachableObjectsRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\"!\n\x1fPruneUnreachableObjectsResponse\"P\n\x12SetFullPathRequest\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x98\xc6,\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x15\n\x13SetFullPathResponse2\x9c\x1e\n\x11RepositoryService\x12]\n\x10RepositoryExists\x12\x1f.gitaly.RepositoryExistsRequest\x1a .gitaly.RepositoryExistsResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x63\n\x11RepackIncremental\x12 .gitaly.RepackIncrementalRequest\x1a!.gitaly.RepackIncrementalResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12N\n\nRepackFull\x12\x19.gitaly.RepackFullRequest\x1a\x1a.gitaly.RepackFullResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12N\n\nMidxRepack\x12\x19.gitaly.MidxRepackRequest\x1a\x1a.gitaly.MidxRepackResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12Z\n\x0eGarbageCollect\x12\x1d.gitaly.GarbageCollectRequest\x1a\x1e.gitaly.GarbageCollectResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12`\n\x10WriteCommitGraph\x12\x1f.gitaly.WriteCommitGraphRequest\x1a .gitaly.WriteCommitGraphResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12W\n\x0eRepositorySize\x12\x1d.gitaly.RepositorySizeRequest\x1a\x1e.gitaly.RepositorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x63\n\x12\x41pplyGitattributes\x12!.gitaly.ApplyGitattributesRequest\x1a\".gitaly.ApplyGitattributesResponse\"\x06\xfa\x97(\x02\x08\x01\x12N\n\x0b\x46\x65tchRemote\x12\x1a.gitaly.FetchRemoteRequest\x1a\x1b.gitaly.FetchRemoteResponse\"\x06\xfa\x97(\x02\x08\x01\x12]\n\x10\x43reateRepository\x12\x1f.gitaly.CreateRepositoryRequest\x1a .gitaly.CreateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12M\n\nGetArchive\x12\x19.gitaly.GetArchiveRequest\x1a\x1a.gitaly.GetArchiveResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12]\n\x10HasLocalBranches\x12\x1f.gitaly.HasLocalBranchesRequest\x1a .gitaly.HasLocalBranchesResponse\"\x06\xfa\x97(\x02\x08\x02\x12`\n\x11\x46\x65tchSourceBranch\x12 .gitaly.FetchSourceBranchRequest\x1a!.gitaly.FetchSourceBranchResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x39\n\x04\x46sck\x12\x13.gitaly.FsckRequest\x1a\x14.gitaly.FsckResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x45\n\x08WriteRef\x12\x17.gitaly.WriteRefRequest\x1a\x18.gitaly.WriteRefResponse\"\x06\xfa\x97(\x02\x08\x01\x12T\n\rFindMergeBase\x12\x1c.gitaly.FindMergeBaseRequest\x1a\x1d.gitaly.FindMergeBaseResponse\"\x06\xfa\x97(\x02\x08\x02\x12K\n\nCreateFork\x12\x19.gitaly.CreateForkRequest\x1a\x1a.gitaly.CreateForkResponse\"\x06\xfa\x97(\x02\x08\x01\x12r\n\x17\x43reateRepositoryFromURL\x12&.gitaly.CreateRepositoryFromURLRequest\x1a\'.gitaly.CreateRepositoryFromURLResponse\"\x06\xfa\x97(\x02\x08\x01\x12S\n\x0c\x43reateBundle\x12\x1b.gitaly.CreateBundleRequest\x1a\x1c.gitaly.CreateBundleResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12v\n\x17\x43reateBundleFromRefList\x12&.gitaly.CreateBundleFromRefListRequest\x1a\'.gitaly.CreateBundleFromRefListResponse\"\x06\xfa\x97(\x02\x08\x02(\x01\x30\x01\x12P\n\x0b\x46\x65tchBundle\x12\x1a.gitaly.FetchBundleRequest\x1a\x1b.gitaly.FetchBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12}\n\x1a\x43reateRepositoryFromBundle\x12).gitaly.CreateRepositoryFromBundleRequest\x1a*.gitaly.CreateRepositoryFromBundleResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12J\n\tGetConfig\x12\x18.gitaly.GetConfigRequest\x1a\x19.gitaly.GetConfigResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12N\n\x0b\x46indLicense\x12\x1a.gitaly.FindLicenseRequest\x1a\x1b.gitaly.FindLicenseResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x62\n\x11GetInfoAttributes\x12 .gitaly.GetInfoAttributesRequest\x1a!.gitaly.GetInfoAttributesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12`\n\x11\x43\x61lculateChecksum\x12 .gitaly.CalculateChecksumRequest\x1a!.gitaly.CalculateChecksumResponse\"\x06\xfa\x97(\x02\x08\x02\x12\x45\n\x07\x43leanup\x12\x16.gitaly.CleanupRequest\x1a\x17.gitaly.CleanupResponse\"\t\x88\x02\x01\xfa\x97(\x02\x08\x03\x12P\n\x0bGetSnapshot\x12\x1a.gitaly.GetSnapshotRequest\x1a\x1b.gitaly.GetSnapshotResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x81\x01\n\x1c\x43reateRepositoryFromSnapshot\x12+.gitaly.CreateRepositoryFromSnapshotRequest\x1a,.gitaly.CreateRepositoryFromSnapshotResponse\"\x06\xfa\x97(\x02\x08\x01\x12V\n\rGetRawChanges\x12\x1c.gitaly.GetRawChangesRequest\x1a\x1d.gitaly.GetRawChangesResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12k\n\x14SearchFilesByContent\x12#.gitaly.SearchFilesByContentRequest\x1a$.gitaly.SearchFilesByContentResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x62\n\x11SearchFilesByName\x12 .gitaly.SearchFilesByNameRequest\x1a!.gitaly.SearchFilesByNameResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12\x65\n\x12RestoreCustomHooks\x12!.gitaly.RestoreCustomHooksRequest\x1a\".gitaly.RestoreCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x01(\x01\x12\x62\n\x11\x42\x61\x63kupCustomHooks\x12 .gitaly.BackupCustomHooksRequest\x1a!.gitaly.BackupCustomHooksResponse\"\x06\xfa\x97(\x02\x08\x02\x30\x01\x12o\n\x16GetObjectDirectorySize\x12%.gitaly.GetObjectDirectorySizeRequest\x1a&.gitaly.GetObjectDirectorySizeResponse\"\x06\xfa\x97(\x02\x08\x02\x12]\n\x10RemoveRepository\x12\x1f.gitaly.RemoveRepositoryRequest\x1a .gitaly.RemoveRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12]\n\x10RenameRepository\x12\x1f.gitaly.RenameRepositoryRequest\x1a .gitaly.RenameRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x66\n\x13ReplicateRepository\x12\".gitaly.ReplicateRepositoryRequest\x1a#.gitaly.ReplicateRepositoryResponse\"\x06\xfa\x97(\x02\x08\x01\x12\x63\n\x12OptimizeRepository\x12!.gitaly.OptimizeRepositoryRequest\x1a\".gitaly.OptimizeRepositoryResponse\"\x06\xfa\x97(\x02\x08\x03\x12r\n\x17PruneUnreachableObjects\x12&.gitaly.PruneUnreachableObjectsRequest\x1a\'.gitaly.PruneUnreachableObjectsResponse\"\x06\xfa\x97(\x02\x08\x03\x12N\n\x0bSetFullPath\x12\x1a.gitaly.SetFullPathRequest\x1a\x1b.gitaly.SetFullPathResponse\"\x06\xfa\x97(\x02\x08\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[lint__pb2.DESCRIPTOR,shared__pb2.DESCRIPTOR,])
 
@@ -42,8 +42,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=762,
-  serialized_end=795,
+  serialized_start=754,
+  serialized_end=787,
 )
 _sym_db.RegisterEnumDescriptor(_WRITECOMMITGRAPHREQUEST_SPLITSTRATEGY)
 
@@ -77,8 +77,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1930,
-  serialized_end=1981,
+  serialized_start=1922,
+  serialized_end=1973,
 )
 _sym_db.RegisterEnumDescriptor(_GETARCHIVEREQUEST_FORMAT)
 
@@ -127,8 +127,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=4866,
-  serialized_end=4971,
+  serialized_start=4858,
+  serialized_end=4963,
 )
 _sym_db.RegisterEnumDescriptor(_GETRAWCHANGESRESPONSE_RAWCHANGE_OPERATION)
 
@@ -160,8 +160,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=62,
-  serialized_end=133,
+  serialized_start=54,
+  serialized_end=125,
 )
 
 
@@ -192,8 +192,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=135,
-  serialized_end=177,
+  serialized_start=127,
+  serialized_end=169,
 )
 
 
@@ -224,8 +224,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=179,
-  serialized_end=251,
+  serialized_start=171,
+  serialized_end=243,
 )
 
 
@@ -249,8 +249,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=253,
-  serialized_end=280,
+  serialized_start=245,
+  serialized_end=272,
 )
 
 
@@ -288,8 +288,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=282,
-  serialized_end=370,
+  serialized_start=274,
+  serialized_end=362,
 )
 
 
@@ -313,8 +313,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=372,
-  serialized_end=392,
+  serialized_start=364,
+  serialized_end=384,
 )
 
 
@@ -345,8 +345,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=394,
-  serialized_end=459,
+  serialized_start=386,
+  serialized_end=451,
 )
 
 
@@ -370,8 +370,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=461,
-  serialized_end=481,
+  serialized_start=453,
+  serialized_end=473,
 )
 
 
@@ -416,8 +416,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=483,
-  serialized_end=590,
+  serialized_start=475,
+  serialized_end=582,
 )
 
 
@@ -441,8 +441,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=592,
-  serialized_end=616,
+  serialized_start=584,
+  serialized_end=608,
 )
 
 
@@ -481,8 +481,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=619,
-  serialized_end=795,
+  serialized_start=611,
+  serialized_end=787,
 )
 
 
@@ -506,8 +506,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=797,
-  serialized_end=823,
+  serialized_start=789,
+  serialized_end=815,
 )
 
 
@@ -538,8 +538,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=825,
-  serialized_end=887,
+  serialized_start=817,
+  serialized_end=879,
 )
 
 
@@ -563,8 +563,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=889,
-  serialized_end=906,
+  serialized_start=881,
+  serialized_end=898,
 )
 
 
@@ -595,8 +595,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=908,
-  serialized_end=977,
+  serialized_start=900,
+  serialized_end=969,
 )
 
 
@@ -627,8 +627,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=979,
-  serialized_end=1017,
+  serialized_start=971,
+  serialized_end=1009,
 )
 
 
@@ -666,8 +666,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1019,
-  serialized_end=1110,
+  serialized_start=1011,
+  serialized_end=1102,
 )
 
 
@@ -691,8 +691,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1112,
-  serialized_end=1140,
+  serialized_start=1104,
+  serialized_end=1132,
 )
 
 
@@ -737,8 +737,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1142,
-  serialized_end=1243,
+  serialized_start=1134,
+  serialized_end=1235,
 )
 
 
@@ -762,8 +762,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1245,
-  serialized_end=1266,
+  serialized_start=1237,
+  serialized_end=1258,
 )
 
 
@@ -850,8 +850,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1269,
-  serialized_end=1527,
+  serialized_start=1261,
+  serialized_end=1519,
 )
 
 
@@ -882,8 +882,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1529,
-  serialized_end=1572,
+  serialized_start=1521,
+  serialized_end=1564,
 )
 
 
@@ -921,8 +921,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1574,
-  serialized_end=1669,
+  serialized_start=1566,
+  serialized_end=1661,
 )
 
 
@@ -946,8 +946,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1671,
-  serialized_end=1697,
+  serialized_start=1663,
+  serialized_end=1689,
 )
 
 
@@ -1028,8 +1028,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1700,
-  serialized_end=1981,
+  serialized_start=1692,
+  serialized_end=1973,
 )
 
 
@@ -1060,8 +1060,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1983,
-  serialized_end=2017,
+  serialized_start=1975,
+  serialized_end=2009,
 )
 
 
@@ -1092,8 +1092,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2019,
-  serialized_end=2090,
+  serialized_start=2011,
+  serialized_end=2082,
 )
 
 
@@ -1124,8 +1124,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2092,
-  serialized_end=2133,
+  serialized_start=2084,
+  serialized_end=2125,
 )
 
 
@@ -1177,8 +1177,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2136,
-  serialized_end=2298,
+  serialized_start=2128,
+  serialized_end=2290,
 )
 
 
@@ -1209,8 +1209,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2300,
-  serialized_end=2343,
+  serialized_start=2292,
+  serialized_end=2335,
 )
 
 
@@ -1241,8 +1241,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2345,
-  serialized_end=2404,
+  serialized_start=2337,
+  serialized_end=2396,
 )
 
 
@@ -1273,8 +1273,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2406,
-  serialized_end=2435,
+  serialized_start=2398,
+  serialized_end=2427,
 )
 
 
@@ -1333,8 +1333,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2438,
-  serialized_end=2575,
+  serialized_start=2430,
+  serialized_end=2567,
 )
 
 
@@ -1358,8 +1358,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2577,
-  serialized_end=2601,
+  serialized_start=2569,
+  serialized_end=2593,
 )
 
 
@@ -1397,8 +1397,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2603,
-  serialized_end=2690,
+  serialized_start=2595,
+  serialized_end=2682,
 )
 
 
@@ -1429,8 +1429,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2692,
-  serialized_end=2729,
+  serialized_start=2684,
+  serialized_end=2721,
 )
 
 
@@ -1468,8 +1468,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2731,
-  serialized_end=2843,
+  serialized_start=2723,
+  serialized_end=2835,
 )
 
 
@@ -1493,8 +1493,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2845,
-  serialized_end=2865,
+  serialized_start=2837,
+  serialized_end=2857,
 )
 
 
@@ -1553,8 +1553,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2868,
-  serialized_end=3029,
+  serialized_start=2860,
+  serialized_end=3021,
 )
 
 
@@ -1578,8 +1578,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3031,
-  serialized_end=3064,
+  serialized_start=3023,
+  serialized_end=3056,
 )
 
 
@@ -1610,8 +1610,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3066,
-  serialized_end=3133,
+  serialized_start=3058,
+  serialized_end=3125,
 )
 
 
@@ -1642,8 +1642,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3135,
-  serialized_end=3171,
+  serialized_start=3127,
+  serialized_end=3163,
 )
 
 
@@ -1681,8 +1681,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3173,
-  serialized_end=3269,
+  serialized_start=3165,
+  serialized_end=3261,
 )
 
 
@@ -1713,8 +1713,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3271,
-  serialized_end=3318,
+  serialized_start=3263,
+  serialized_end=3310,
 )
 
 
@@ -1745,8 +1745,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3320,
-  serialized_end=3384,
+  serialized_start=3312,
+  serialized_end=3376,
 )
 
 
@@ -1777,8 +1777,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3386,
-  serialized_end=3419,
+  serialized_start=3378,
+  serialized_end=3411,
 )
 
 
@@ -1816,8 +1816,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3421,
-  serialized_end=3508,
+  serialized_start=3413,
+  serialized_end=3500,
 )
 
 
@@ -1841,8 +1841,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3510,
-  serialized_end=3538,
+  serialized_start=3502,
+  serialized_end=3530,
 )
 
 
@@ -1873,8 +1873,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3540,
-  serialized_end=3612,
+  serialized_start=3532,
+  serialized_end=3604,
 )
 
 
@@ -1905,8 +1905,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3614,
-  serialized_end=3655,
+  serialized_start=3606,
+  serialized_end=3647,
 )
 
 
@@ -1944,8 +1944,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3657,
-  serialized_end=3752,
+  serialized_start=3649,
+  serialized_end=3744,
 )
 
 
@@ -1969,8 +1969,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3754,
-  serialized_end=3790,
+  serialized_start=3746,
+  serialized_end=3782,
 )
 
 
@@ -2001,8 +2001,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3792,
-  serialized_end=3858,
+  serialized_start=3784,
+  serialized_end=3850,
 )
 
 
@@ -2033,8 +2033,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3860,
-  serialized_end=3909,
+  serialized_start=3852,
+  serialized_end=3901,
 )
 
 
@@ -2065,8 +2065,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3911,
-  serialized_end=3983,
+  serialized_start=3903,
+  serialized_end=3975,
 )
 
 
@@ -2097,8 +2097,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3985,
-  serialized_end=4032,
+  serialized_start=3977,
+  serialized_end=4024,
 )
 
 
@@ -2129,8 +2129,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4034,
-  serialized_end=4106,
+  serialized_start=4026,
+  serialized_end=4098,
 )
 
 
@@ -2161,8 +2161,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4108,
-  serialized_end=4153,
+  serialized_start=4100,
+  serialized_end=4145,
 )
 
 
@@ -2193,8 +2193,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4155,
-  serialized_end=4221,
+  serialized_start=4147,
+  serialized_end=4213,
 )
 
 
@@ -2225,8 +2225,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4223,
-  serialized_end=4258,
+  serialized_start=4215,
+  serialized_end=4250,
 )
 
 
@@ -2278,8 +2278,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4261,
-  serialized_end=4400,
+  serialized_start=4253,
+  serialized_end=4392,
 )
 
 
@@ -2303,8 +2303,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4402,
-  serialized_end=4440,
+  serialized_start=4394,
+  serialized_end=4432,
 )
 
 
@@ -2349,8 +2349,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4442,
-  serialized_end=4554,
+  serialized_start=4434,
+  serialized_end=4546,
 )
 
 
@@ -2431,8 +2431,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4645,
-  serialized_end=5003,
+  serialized_start=4637,
+  serialized_end=4995,
 )
 
 _GETRAWCHANGESRESPONSE = _descriptor.Descriptor(
@@ -2462,8 +2462,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4557,
-  serialized_end=5003,
+  serialized_start=4549,
+  serialized_end=4995,
 )
 
 
@@ -2515,8 +2515,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5005,
-  serialized_end=5121,
+  serialized_start=4997,
+  serialized_end=5113,
 )
 
 
@@ -2547,8 +2547,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5123,
-  serialized_end=5165,
+  serialized_start=5115,
+  serialized_end=5157,
 )
 
 
@@ -2600,8 +2600,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5168,
-  serialized_end=5297,
+  serialized_start=5160,
+  serialized_end=5289,
 )
 
 
@@ -2646,8 +2646,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5299,
-  serialized_end=5388,
+  serialized_start=5291,
+  serialized_end=5380,
 )
 
 
@@ -2699,8 +2699,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5390,
-  serialized_end=5501,
+  serialized_start=5382,
+  serialized_end=5493,
 )
 
 
@@ -2731,8 +2731,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5503,
-  serialized_end=5580,
+  serialized_start=5495,
+  serialized_end=5572,
 )
 
 
@@ -2763,8 +2763,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5582,
-  serialized_end=5628,
+  serialized_start=5574,
+  serialized_end=5620,
 )
 
 
@@ -2795,8 +2795,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5630,
-  serialized_end=5701,
+  serialized_start=5622,
+  serialized_end=5693,
 )
 
 
@@ -2820,8 +2820,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5703,
-  serialized_end=5729,
+  serialized_start=5695,
+  serialized_end=5721,
 )
 
 
@@ -2859,8 +2859,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5731,
-  serialized_end=5825,
+  serialized_start=5723,
+  serialized_end=5817,
 )
 
 
@@ -2884,8 +2884,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5827,
-  serialized_end=5853,
+  serialized_start=5819,
+  serialized_end=5845,
 )
 
 
@@ -2923,8 +2923,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5855,
-  serialized_end=5965,
+  serialized_start=5847,
+  serialized_end=5957,
 )
 
 
@@ -2948,8 +2948,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5967,
-  serialized_end=5996,
+  serialized_start=5959,
+  serialized_end=5988,
 )
 
 
@@ -2980,8 +2980,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5998,
-  serialized_end=6071,
+  serialized_start=5990,
+  serialized_end=6063,
 )
 
 
@@ -3005,8 +3005,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6073,
-  serialized_end=6101,
+  serialized_start=6065,
+  serialized_end=6093,
 )
 
 
@@ -3037,8 +3037,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6103,
-  serialized_end=6181,
+  serialized_start=6095,
+  serialized_end=6173,
 )
 
 
@@ -3062,8 +3062,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6183,
-  serialized_end=6216,
+  serialized_start=6175,
+  serialized_end=6208,
 )
 
 
@@ -3101,8 +3101,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6218,
-  serialized_end=6298,
+  serialized_start=6210,
+  serialized_end=6290,
 )
 
 
@@ -3126,8 +3126,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6300,
-  serialized_end=6321,
+  serialized_start=6292,
+  serialized_end=6313,
 )
 
 _REPOSITORYEXISTSREQUEST.fields_by_name['repository'].message_type = shared__pb2._REPOSITORY
@@ -3270,10 +3270,10 @@
 
 RepositoryExistsRequest = _reflection.GeneratedProtocolMessageType('RepositoryExistsRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYEXISTSREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepositoryExistsRequest)
   })
 _sym_db.RegisterMessage(RepositoryExistsRequest)
 
 RepositoryExistsResponse = _reflection.GeneratedProtocolMessageType('RepositoryExistsResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYEXISTSRESPONSE,
@@ -3274,13 +3274,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepositoryExistsRequest)
   })
 _sym_db.RegisterMessage(RepositoryExistsRequest)
 
 RepositoryExistsResponse = _reflection.GeneratedProtocolMessageType('RepositoryExistsResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYEXISTSRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepositoryExistsResponse)
   })
 _sym_db.RegisterMessage(RepositoryExistsResponse)
 
 RepackIncrementalRequest = _reflection.GeneratedProtocolMessageType('RepackIncrementalRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPACKINCREMENTALREQUEST,
@@ -3281,13 +3281,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepositoryExistsResponse)
   })
 _sym_db.RegisterMessage(RepositoryExistsResponse)
 
 RepackIncrementalRequest = _reflection.GeneratedProtocolMessageType('RepackIncrementalRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPACKINCREMENTALREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepackIncrementalRequest)
   })
 _sym_db.RegisterMessage(RepackIncrementalRequest)
 
 RepackIncrementalResponse = _reflection.GeneratedProtocolMessageType('RepackIncrementalResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPACKINCREMENTALRESPONSE,
@@ -3288,13 +3288,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepackIncrementalRequest)
   })
 _sym_db.RegisterMessage(RepackIncrementalRequest)
 
 RepackIncrementalResponse = _reflection.GeneratedProtocolMessageType('RepackIncrementalResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPACKINCREMENTALRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepackIncrementalResponse)
   })
 _sym_db.RegisterMessage(RepackIncrementalResponse)
 
 RepackFullRequest = _reflection.GeneratedProtocolMessageType('RepackFullRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPACKFULLREQUEST,
@@ -3295,13 +3295,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepackIncrementalResponse)
   })
 _sym_db.RegisterMessage(RepackIncrementalResponse)
 
 RepackFullRequest = _reflection.GeneratedProtocolMessageType('RepackFullRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPACKFULLREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepackFullRequest)
   })
 _sym_db.RegisterMessage(RepackFullRequest)
 
 RepackFullResponse = _reflection.GeneratedProtocolMessageType('RepackFullResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPACKFULLRESPONSE,
@@ -3302,13 +3302,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepackFullRequest)
   })
 _sym_db.RegisterMessage(RepackFullRequest)
 
 RepackFullResponse = _reflection.GeneratedProtocolMessageType('RepackFullResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPACKFULLRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepackFullResponse)
   })
 _sym_db.RegisterMessage(RepackFullResponse)
 
 MidxRepackRequest = _reflection.GeneratedProtocolMessageType('MidxRepackRequest', (_message.Message,), {
   'DESCRIPTOR' : _MIDXREPACKREQUEST,
@@ -3309,13 +3309,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepackFullResponse)
   })
 _sym_db.RegisterMessage(RepackFullResponse)
 
 MidxRepackRequest = _reflection.GeneratedProtocolMessageType('MidxRepackRequest', (_message.Message,), {
   'DESCRIPTOR' : _MIDXREPACKREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.MidxRepackRequest)
   })
 _sym_db.RegisterMessage(MidxRepackRequest)
 
 MidxRepackResponse = _reflection.GeneratedProtocolMessageType('MidxRepackResponse', (_message.Message,), {
   'DESCRIPTOR' : _MIDXREPACKRESPONSE,
@@ -3316,13 +3316,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.MidxRepackRequest)
   })
 _sym_db.RegisterMessage(MidxRepackRequest)
 
 MidxRepackResponse = _reflection.GeneratedProtocolMessageType('MidxRepackResponse', (_message.Message,), {
   'DESCRIPTOR' : _MIDXREPACKRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.MidxRepackResponse)
   })
 _sym_db.RegisterMessage(MidxRepackResponse)
 
 GarbageCollectRequest = _reflection.GeneratedProtocolMessageType('GarbageCollectRequest', (_message.Message,), {
   'DESCRIPTOR' : _GARBAGECOLLECTREQUEST,
@@ -3323,13 +3323,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.MidxRepackResponse)
   })
 _sym_db.RegisterMessage(MidxRepackResponse)
 
 GarbageCollectRequest = _reflection.GeneratedProtocolMessageType('GarbageCollectRequest', (_message.Message,), {
   'DESCRIPTOR' : _GARBAGECOLLECTREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GarbageCollectRequest)
   })
 _sym_db.RegisterMessage(GarbageCollectRequest)
 
 GarbageCollectResponse = _reflection.GeneratedProtocolMessageType('GarbageCollectResponse', (_message.Message,), {
   'DESCRIPTOR' : _GARBAGECOLLECTRESPONSE,
@@ -3330,13 +3330,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GarbageCollectRequest)
   })
 _sym_db.RegisterMessage(GarbageCollectRequest)
 
 GarbageCollectResponse = _reflection.GeneratedProtocolMessageType('GarbageCollectResponse', (_message.Message,), {
   'DESCRIPTOR' : _GARBAGECOLLECTRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GarbageCollectResponse)
   })
 _sym_db.RegisterMessage(GarbageCollectResponse)
 
 WriteCommitGraphRequest = _reflection.GeneratedProtocolMessageType('WriteCommitGraphRequest', (_message.Message,), {
   'DESCRIPTOR' : _WRITECOMMITGRAPHREQUEST,
@@ -3337,13 +3337,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GarbageCollectResponse)
   })
 _sym_db.RegisterMessage(GarbageCollectResponse)
 
 WriteCommitGraphRequest = _reflection.GeneratedProtocolMessageType('WriteCommitGraphRequest', (_message.Message,), {
   'DESCRIPTOR' : _WRITECOMMITGRAPHREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.WriteCommitGraphRequest)
   })
 _sym_db.RegisterMessage(WriteCommitGraphRequest)
 
 WriteCommitGraphResponse = _reflection.GeneratedProtocolMessageType('WriteCommitGraphResponse', (_message.Message,), {
   'DESCRIPTOR' : _WRITECOMMITGRAPHRESPONSE,
@@ -3344,13 +3344,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.WriteCommitGraphRequest)
   })
 _sym_db.RegisterMessage(WriteCommitGraphRequest)
 
 WriteCommitGraphResponse = _reflection.GeneratedProtocolMessageType('WriteCommitGraphResponse', (_message.Message,), {
   'DESCRIPTOR' : _WRITECOMMITGRAPHRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.WriteCommitGraphResponse)
   })
 _sym_db.RegisterMessage(WriteCommitGraphResponse)
 
 CleanupRequest = _reflection.GeneratedProtocolMessageType('CleanupRequest', (_message.Message,), {
   'DESCRIPTOR' : _CLEANUPREQUEST,
@@ -3351,13 +3351,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.WriteCommitGraphResponse)
   })
 _sym_db.RegisterMessage(WriteCommitGraphResponse)
 
 CleanupRequest = _reflection.GeneratedProtocolMessageType('CleanupRequest', (_message.Message,), {
   'DESCRIPTOR' : _CLEANUPREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CleanupRequest)
   })
 _sym_db.RegisterMessage(CleanupRequest)
 
 CleanupResponse = _reflection.GeneratedProtocolMessageType('CleanupResponse', (_message.Message,), {
   'DESCRIPTOR' : _CLEANUPRESPONSE,
@@ -3358,13 +3358,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CleanupRequest)
   })
 _sym_db.RegisterMessage(CleanupRequest)
 
 CleanupResponse = _reflection.GeneratedProtocolMessageType('CleanupResponse', (_message.Message,), {
   'DESCRIPTOR' : _CLEANUPRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CleanupResponse)
   })
 _sym_db.RegisterMessage(CleanupResponse)
 
 RepositorySizeRequest = _reflection.GeneratedProtocolMessageType('RepositorySizeRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYSIZEREQUEST,
@@ -3365,13 +3365,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CleanupResponse)
   })
 _sym_db.RegisterMessage(CleanupResponse)
 
 RepositorySizeRequest = _reflection.GeneratedProtocolMessageType('RepositorySizeRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYSIZEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepositorySizeRequest)
   })
 _sym_db.RegisterMessage(RepositorySizeRequest)
 
 RepositorySizeResponse = _reflection.GeneratedProtocolMessageType('RepositorySizeResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYSIZERESPONSE,
@@ -3372,13 +3372,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepositorySizeRequest)
   })
 _sym_db.RegisterMessage(RepositorySizeRequest)
 
 RepositorySizeResponse = _reflection.GeneratedProtocolMessageType('RepositorySizeResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPOSITORYSIZERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RepositorySizeResponse)
   })
 _sym_db.RegisterMessage(RepositorySizeResponse)
 
 ApplyGitattributesRequest = _reflection.GeneratedProtocolMessageType('ApplyGitattributesRequest', (_message.Message,), {
   'DESCRIPTOR' : _APPLYGITATTRIBUTESREQUEST,
@@ -3379,13 +3379,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RepositorySizeResponse)
   })
 _sym_db.RegisterMessage(RepositorySizeResponse)
 
 ApplyGitattributesRequest = _reflection.GeneratedProtocolMessageType('ApplyGitattributesRequest', (_message.Message,), {
   'DESCRIPTOR' : _APPLYGITATTRIBUTESREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.ApplyGitattributesRequest)
   })
 _sym_db.RegisterMessage(ApplyGitattributesRequest)
 
 ApplyGitattributesResponse = _reflection.GeneratedProtocolMessageType('ApplyGitattributesResponse', (_message.Message,), {
   'DESCRIPTOR' : _APPLYGITATTRIBUTESRESPONSE,
@@ -3386,13 +3386,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.ApplyGitattributesRequest)
   })
 _sym_db.RegisterMessage(ApplyGitattributesRequest)
 
 ApplyGitattributesResponse = _reflection.GeneratedProtocolMessageType('ApplyGitattributesResponse', (_message.Message,), {
   'DESCRIPTOR' : _APPLYGITATTRIBUTESRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.ApplyGitattributesResponse)
   })
 _sym_db.RegisterMessage(ApplyGitattributesResponse)
 
 FetchBundleRequest = _reflection.GeneratedProtocolMessageType('FetchBundleRequest', (_message.Message,), {
   'DESCRIPTOR' : _FETCHBUNDLEREQUEST,
@@ -3393,13 +3393,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.ApplyGitattributesResponse)
   })
 _sym_db.RegisterMessage(ApplyGitattributesResponse)
 
 FetchBundleRequest = _reflection.GeneratedProtocolMessageType('FetchBundleRequest', (_message.Message,), {
   'DESCRIPTOR' : _FETCHBUNDLEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FetchBundleRequest)
   })
 _sym_db.RegisterMessage(FetchBundleRequest)
 
 FetchBundleResponse = _reflection.GeneratedProtocolMessageType('FetchBundleResponse', (_message.Message,), {
   'DESCRIPTOR' : _FETCHBUNDLERESPONSE,
@@ -3400,13 +3400,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FetchBundleRequest)
   })
 _sym_db.RegisterMessage(FetchBundleRequest)
 
 FetchBundleResponse = _reflection.GeneratedProtocolMessageType('FetchBundleResponse', (_message.Message,), {
   'DESCRIPTOR' : _FETCHBUNDLERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FetchBundleResponse)
   })
 _sym_db.RegisterMessage(FetchBundleResponse)
 
 FetchRemoteRequest = _reflection.GeneratedProtocolMessageType('FetchRemoteRequest', (_message.Message,), {
   'DESCRIPTOR' : _FETCHREMOTEREQUEST,
@@ -3407,13 +3407,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FetchBundleResponse)
   })
 _sym_db.RegisterMessage(FetchBundleResponse)
 
 FetchRemoteRequest = _reflection.GeneratedProtocolMessageType('FetchRemoteRequest', (_message.Message,), {
   'DESCRIPTOR' : _FETCHREMOTEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FetchRemoteRequest)
   })
 _sym_db.RegisterMessage(FetchRemoteRequest)
 
 FetchRemoteResponse = _reflection.GeneratedProtocolMessageType('FetchRemoteResponse', (_message.Message,), {
   'DESCRIPTOR' : _FETCHREMOTERESPONSE,
@@ -3414,13 +3414,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FetchRemoteRequest)
   })
 _sym_db.RegisterMessage(FetchRemoteRequest)
 
 FetchRemoteResponse = _reflection.GeneratedProtocolMessageType('FetchRemoteResponse', (_message.Message,), {
   'DESCRIPTOR' : _FETCHREMOTERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FetchRemoteResponse)
   })
 _sym_db.RegisterMessage(FetchRemoteResponse)
 
 CreateRepositoryRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYREQUEST,
@@ -3421,13 +3421,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FetchRemoteResponse)
   })
 _sym_db.RegisterMessage(FetchRemoteResponse)
 
 CreateRepositoryRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryRequest)
 
 CreateRepositoryResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYRESPONSE,
@@ -3428,13 +3428,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryRequest)
 
 CreateRepositoryResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryResponse)
 
 GetArchiveRequest = _reflection.GeneratedProtocolMessageType('GetArchiveRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETARCHIVEREQUEST,
@@ -3435,13 +3435,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryResponse)
 
 GetArchiveRequest = _reflection.GeneratedProtocolMessageType('GetArchiveRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETARCHIVEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetArchiveRequest)
   })
 _sym_db.RegisterMessage(GetArchiveRequest)
 
 GetArchiveResponse = _reflection.GeneratedProtocolMessageType('GetArchiveResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETARCHIVERESPONSE,
@@ -3442,13 +3442,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetArchiveRequest)
   })
 _sym_db.RegisterMessage(GetArchiveRequest)
 
 GetArchiveResponse = _reflection.GeneratedProtocolMessageType('GetArchiveResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETARCHIVERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetArchiveResponse)
   })
 _sym_db.RegisterMessage(GetArchiveResponse)
 
 HasLocalBranchesRequest = _reflection.GeneratedProtocolMessageType('HasLocalBranchesRequest', (_message.Message,), {
   'DESCRIPTOR' : _HASLOCALBRANCHESREQUEST,
@@ -3449,13 +3449,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetArchiveResponse)
   })
 _sym_db.RegisterMessage(GetArchiveResponse)
 
 HasLocalBranchesRequest = _reflection.GeneratedProtocolMessageType('HasLocalBranchesRequest', (_message.Message,), {
   'DESCRIPTOR' : _HASLOCALBRANCHESREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.HasLocalBranchesRequest)
   })
 _sym_db.RegisterMessage(HasLocalBranchesRequest)
 
 HasLocalBranchesResponse = _reflection.GeneratedProtocolMessageType('HasLocalBranchesResponse', (_message.Message,), {
   'DESCRIPTOR' : _HASLOCALBRANCHESRESPONSE,
@@ -3456,13 +3456,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.HasLocalBranchesRequest)
   })
 _sym_db.RegisterMessage(HasLocalBranchesRequest)
 
 HasLocalBranchesResponse = _reflection.GeneratedProtocolMessageType('HasLocalBranchesResponse', (_message.Message,), {
   'DESCRIPTOR' : _HASLOCALBRANCHESRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.HasLocalBranchesResponse)
   })
 _sym_db.RegisterMessage(HasLocalBranchesResponse)
 
 FetchSourceBranchRequest = _reflection.GeneratedProtocolMessageType('FetchSourceBranchRequest', (_message.Message,), {
   'DESCRIPTOR' : _FETCHSOURCEBRANCHREQUEST,
@@ -3463,13 +3463,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.HasLocalBranchesResponse)
   })
 _sym_db.RegisterMessage(HasLocalBranchesResponse)
 
 FetchSourceBranchRequest = _reflection.GeneratedProtocolMessageType('FetchSourceBranchRequest', (_message.Message,), {
   'DESCRIPTOR' : _FETCHSOURCEBRANCHREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FetchSourceBranchRequest)
   })
 _sym_db.RegisterMessage(FetchSourceBranchRequest)
 
 FetchSourceBranchResponse = _reflection.GeneratedProtocolMessageType('FetchSourceBranchResponse', (_message.Message,), {
   'DESCRIPTOR' : _FETCHSOURCEBRANCHRESPONSE,
@@ -3470,13 +3470,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FetchSourceBranchRequest)
   })
 _sym_db.RegisterMessage(FetchSourceBranchRequest)
 
 FetchSourceBranchResponse = _reflection.GeneratedProtocolMessageType('FetchSourceBranchResponse', (_message.Message,), {
   'DESCRIPTOR' : _FETCHSOURCEBRANCHRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FetchSourceBranchResponse)
   })
 _sym_db.RegisterMessage(FetchSourceBranchResponse)
 
 FsckRequest = _reflection.GeneratedProtocolMessageType('FsckRequest', (_message.Message,), {
   'DESCRIPTOR' : _FSCKREQUEST,
@@ -3477,13 +3477,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FetchSourceBranchResponse)
   })
 _sym_db.RegisterMessage(FetchSourceBranchResponse)
 
 FsckRequest = _reflection.GeneratedProtocolMessageType('FsckRequest', (_message.Message,), {
   'DESCRIPTOR' : _FSCKREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FsckRequest)
   })
 _sym_db.RegisterMessage(FsckRequest)
 
 FsckResponse = _reflection.GeneratedProtocolMessageType('FsckResponse', (_message.Message,), {
   'DESCRIPTOR' : _FSCKRESPONSE,
@@ -3484,13 +3484,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FsckRequest)
   })
 _sym_db.RegisterMessage(FsckRequest)
 
 FsckResponse = _reflection.GeneratedProtocolMessageType('FsckResponse', (_message.Message,), {
   'DESCRIPTOR' : _FSCKRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FsckResponse)
   })
 _sym_db.RegisterMessage(FsckResponse)
 
 WriteRefRequest = _reflection.GeneratedProtocolMessageType('WriteRefRequest', (_message.Message,), {
   'DESCRIPTOR' : _WRITEREFREQUEST,
@@ -3491,13 +3491,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FsckResponse)
   })
 _sym_db.RegisterMessage(FsckResponse)
 
 WriteRefRequest = _reflection.GeneratedProtocolMessageType('WriteRefRequest', (_message.Message,), {
   'DESCRIPTOR' : _WRITEREFREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.WriteRefRequest)
   })
 _sym_db.RegisterMessage(WriteRefRequest)
 
 WriteRefResponse = _reflection.GeneratedProtocolMessageType('WriteRefResponse', (_message.Message,), {
   'DESCRIPTOR' : _WRITEREFRESPONSE,
@@ -3498,13 +3498,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.WriteRefRequest)
   })
 _sym_db.RegisterMessage(WriteRefRequest)
 
 WriteRefResponse = _reflection.GeneratedProtocolMessageType('WriteRefResponse', (_message.Message,), {
   'DESCRIPTOR' : _WRITEREFRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.WriteRefResponse)
   })
 _sym_db.RegisterMessage(WriteRefResponse)
 
 FindMergeBaseRequest = _reflection.GeneratedProtocolMessageType('FindMergeBaseRequest', (_message.Message,), {
   'DESCRIPTOR' : _FINDMERGEBASEREQUEST,
@@ -3505,13 +3505,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.WriteRefResponse)
   })
 _sym_db.RegisterMessage(WriteRefResponse)
 
 FindMergeBaseRequest = _reflection.GeneratedProtocolMessageType('FindMergeBaseRequest', (_message.Message,), {
   'DESCRIPTOR' : _FINDMERGEBASEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FindMergeBaseRequest)
   })
 _sym_db.RegisterMessage(FindMergeBaseRequest)
 
 FindMergeBaseResponse = _reflection.GeneratedProtocolMessageType('FindMergeBaseResponse', (_message.Message,), {
   'DESCRIPTOR' : _FINDMERGEBASERESPONSE,
@@ -3512,13 +3512,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FindMergeBaseRequest)
   })
 _sym_db.RegisterMessage(FindMergeBaseRequest)
 
 FindMergeBaseResponse = _reflection.GeneratedProtocolMessageType('FindMergeBaseResponse', (_message.Message,), {
   'DESCRIPTOR' : _FINDMERGEBASERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FindMergeBaseResponse)
   })
 _sym_db.RegisterMessage(FindMergeBaseResponse)
 
 CreateForkRequest = _reflection.GeneratedProtocolMessageType('CreateForkRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEFORKREQUEST,
@@ -3519,13 +3519,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FindMergeBaseResponse)
   })
 _sym_db.RegisterMessage(FindMergeBaseResponse)
 
 CreateForkRequest = _reflection.GeneratedProtocolMessageType('CreateForkRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEFORKREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateForkRequest)
   })
 _sym_db.RegisterMessage(CreateForkRequest)
 
 CreateForkResponse = _reflection.GeneratedProtocolMessageType('CreateForkResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEFORKRESPONSE,
@@ -3526,13 +3526,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateForkRequest)
   })
 _sym_db.RegisterMessage(CreateForkRequest)
 
 CreateForkResponse = _reflection.GeneratedProtocolMessageType('CreateForkResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEFORKRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateForkResponse)
   })
 _sym_db.RegisterMessage(CreateForkResponse)
 
 CreateRepositoryFromURLRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromURLRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMURLREQUEST,
@@ -3533,13 +3533,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateForkResponse)
   })
 _sym_db.RegisterMessage(CreateForkResponse)
 
 CreateRepositoryFromURLRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromURLRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMURLREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromURLRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromURLRequest)
 
 CreateRepositoryFromURLResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromURLResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMURLRESPONSE,
@@ -3540,13 +3540,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromURLRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromURLRequest)
 
 CreateRepositoryFromURLResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromURLResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMURLRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromURLResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromURLResponse)
 
 CreateBundleRequest = _reflection.GeneratedProtocolMessageType('CreateBundleRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLEREQUEST,
@@ -3547,13 +3547,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromURLResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromURLResponse)
 
 CreateBundleRequest = _reflection.GeneratedProtocolMessageType('CreateBundleRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleRequest)
   })
 _sym_db.RegisterMessage(CreateBundleRequest)
 
 CreateBundleResponse = _reflection.GeneratedProtocolMessageType('CreateBundleResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLERESPONSE,
@@ -3554,13 +3554,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleRequest)
   })
 _sym_db.RegisterMessage(CreateBundleRequest)
 
 CreateBundleResponse = _reflection.GeneratedProtocolMessageType('CreateBundleResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleResponse)
   })
 _sym_db.RegisterMessage(CreateBundleResponse)
 
 CreateBundleFromRefListRequest = _reflection.GeneratedProtocolMessageType('CreateBundleFromRefListRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLEFROMREFLISTREQUEST,
@@ -3561,13 +3561,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleResponse)
   })
 _sym_db.RegisterMessage(CreateBundleResponse)
 
 CreateBundleFromRefListRequest = _reflection.GeneratedProtocolMessageType('CreateBundleFromRefListRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLEFROMREFLISTREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleFromRefListRequest)
   })
 _sym_db.RegisterMessage(CreateBundleFromRefListRequest)
 
 CreateBundleFromRefListResponse = _reflection.GeneratedProtocolMessageType('CreateBundleFromRefListResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLEFROMREFLISTRESPONSE,
@@ -3568,13 +3568,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleFromRefListRequest)
   })
 _sym_db.RegisterMessage(CreateBundleFromRefListRequest)
 
 CreateBundleFromRefListResponse = _reflection.GeneratedProtocolMessageType('CreateBundleFromRefListResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEBUNDLEFROMREFLISTRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleFromRefListResponse)
   })
 _sym_db.RegisterMessage(CreateBundleFromRefListResponse)
 
 GetConfigRequest = _reflection.GeneratedProtocolMessageType('GetConfigRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETCONFIGREQUEST,
@@ -3575,13 +3575,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateBundleFromRefListResponse)
   })
 _sym_db.RegisterMessage(CreateBundleFromRefListResponse)
 
 GetConfigRequest = _reflection.GeneratedProtocolMessageType('GetConfigRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETCONFIGREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetConfigRequest)
   })
 _sym_db.RegisterMessage(GetConfigRequest)
 
 GetConfigResponse = _reflection.GeneratedProtocolMessageType('GetConfigResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETCONFIGRESPONSE,
@@ -3582,13 +3582,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetConfigRequest)
   })
 _sym_db.RegisterMessage(GetConfigRequest)
 
 GetConfigResponse = _reflection.GeneratedProtocolMessageType('GetConfigResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETCONFIGRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetConfigResponse)
   })
 _sym_db.RegisterMessage(GetConfigResponse)
 
 RestoreCustomHooksRequest = _reflection.GeneratedProtocolMessageType('RestoreCustomHooksRequest', (_message.Message,), {
   'DESCRIPTOR' : _RESTORECUSTOMHOOKSREQUEST,
@@ -3589,13 +3589,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetConfigResponse)
   })
 _sym_db.RegisterMessage(GetConfigResponse)
 
 RestoreCustomHooksRequest = _reflection.GeneratedProtocolMessageType('RestoreCustomHooksRequest', (_message.Message,), {
   'DESCRIPTOR' : _RESTORECUSTOMHOOKSREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RestoreCustomHooksRequest)
   })
 _sym_db.RegisterMessage(RestoreCustomHooksRequest)
 
 RestoreCustomHooksResponse = _reflection.GeneratedProtocolMessageType('RestoreCustomHooksResponse', (_message.Message,), {
   'DESCRIPTOR' : _RESTORECUSTOMHOOKSRESPONSE,
@@ -3596,13 +3596,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RestoreCustomHooksRequest)
   })
 _sym_db.RegisterMessage(RestoreCustomHooksRequest)
 
 RestoreCustomHooksResponse = _reflection.GeneratedProtocolMessageType('RestoreCustomHooksResponse', (_message.Message,), {
   'DESCRIPTOR' : _RESTORECUSTOMHOOKSRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RestoreCustomHooksResponse)
   })
 _sym_db.RegisterMessage(RestoreCustomHooksResponse)
 
 BackupCustomHooksRequest = _reflection.GeneratedProtocolMessageType('BackupCustomHooksRequest', (_message.Message,), {
   'DESCRIPTOR' : _BACKUPCUSTOMHOOKSREQUEST,
@@ -3603,13 +3603,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RestoreCustomHooksResponse)
   })
 _sym_db.RegisterMessage(RestoreCustomHooksResponse)
 
 BackupCustomHooksRequest = _reflection.GeneratedProtocolMessageType('BackupCustomHooksRequest', (_message.Message,), {
   'DESCRIPTOR' : _BACKUPCUSTOMHOOKSREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.BackupCustomHooksRequest)
   })
 _sym_db.RegisterMessage(BackupCustomHooksRequest)
 
 BackupCustomHooksResponse = _reflection.GeneratedProtocolMessageType('BackupCustomHooksResponse', (_message.Message,), {
   'DESCRIPTOR' : _BACKUPCUSTOMHOOKSRESPONSE,
@@ -3610,13 +3610,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.BackupCustomHooksRequest)
   })
 _sym_db.RegisterMessage(BackupCustomHooksRequest)
 
 BackupCustomHooksResponse = _reflection.GeneratedProtocolMessageType('BackupCustomHooksResponse', (_message.Message,), {
   'DESCRIPTOR' : _BACKUPCUSTOMHOOKSRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.BackupCustomHooksResponse)
   })
 _sym_db.RegisterMessage(BackupCustomHooksResponse)
 
 CreateRepositoryFromBundleRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromBundleRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMBUNDLEREQUEST,
@@ -3617,13 +3617,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.BackupCustomHooksResponse)
   })
 _sym_db.RegisterMessage(BackupCustomHooksResponse)
 
 CreateRepositoryFromBundleRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromBundleRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMBUNDLEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromBundleRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromBundleRequest)
 
 CreateRepositoryFromBundleResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromBundleResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMBUNDLERESPONSE,
@@ -3624,13 +3624,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromBundleRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromBundleRequest)
 
 CreateRepositoryFromBundleResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromBundleResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMBUNDLERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromBundleResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromBundleResponse)
 
 FindLicenseRequest = _reflection.GeneratedProtocolMessageType('FindLicenseRequest', (_message.Message,), {
   'DESCRIPTOR' : _FINDLICENSEREQUEST,
@@ -3631,13 +3631,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromBundleResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromBundleResponse)
 
 FindLicenseRequest = _reflection.GeneratedProtocolMessageType('FindLicenseRequest', (_message.Message,), {
   'DESCRIPTOR' : _FINDLICENSEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FindLicenseRequest)
   })
 _sym_db.RegisterMessage(FindLicenseRequest)
 
 FindLicenseResponse = _reflection.GeneratedProtocolMessageType('FindLicenseResponse', (_message.Message,), {
   'DESCRIPTOR' : _FINDLICENSERESPONSE,
@@ -3638,13 +3638,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FindLicenseRequest)
   })
 _sym_db.RegisterMessage(FindLicenseRequest)
 
 FindLicenseResponse = _reflection.GeneratedProtocolMessageType('FindLicenseResponse', (_message.Message,), {
   'DESCRIPTOR' : _FINDLICENSERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.FindLicenseResponse)
   })
 _sym_db.RegisterMessage(FindLicenseResponse)
 
 GetInfoAttributesRequest = _reflection.GeneratedProtocolMessageType('GetInfoAttributesRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETINFOATTRIBUTESREQUEST,
@@ -3645,13 +3645,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.FindLicenseResponse)
   })
 _sym_db.RegisterMessage(FindLicenseResponse)
 
 GetInfoAttributesRequest = _reflection.GeneratedProtocolMessageType('GetInfoAttributesRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETINFOATTRIBUTESREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetInfoAttributesRequest)
   })
 _sym_db.RegisterMessage(GetInfoAttributesRequest)
 
 GetInfoAttributesResponse = _reflection.GeneratedProtocolMessageType('GetInfoAttributesResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETINFOATTRIBUTESRESPONSE,
@@ -3652,13 +3652,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetInfoAttributesRequest)
   })
 _sym_db.RegisterMessage(GetInfoAttributesRequest)
 
 GetInfoAttributesResponse = _reflection.GeneratedProtocolMessageType('GetInfoAttributesResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETINFOATTRIBUTESRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetInfoAttributesResponse)
   })
 _sym_db.RegisterMessage(GetInfoAttributesResponse)
 
 CalculateChecksumRequest = _reflection.GeneratedProtocolMessageType('CalculateChecksumRequest', (_message.Message,), {
   'DESCRIPTOR' : _CALCULATECHECKSUMREQUEST,
@@ -3659,13 +3659,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetInfoAttributesResponse)
   })
 _sym_db.RegisterMessage(GetInfoAttributesResponse)
 
 CalculateChecksumRequest = _reflection.GeneratedProtocolMessageType('CalculateChecksumRequest', (_message.Message,), {
   'DESCRIPTOR' : _CALCULATECHECKSUMREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CalculateChecksumRequest)
   })
 _sym_db.RegisterMessage(CalculateChecksumRequest)
 
 CalculateChecksumResponse = _reflection.GeneratedProtocolMessageType('CalculateChecksumResponse', (_message.Message,), {
   'DESCRIPTOR' : _CALCULATECHECKSUMRESPONSE,
@@ -3666,13 +3666,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CalculateChecksumRequest)
   })
 _sym_db.RegisterMessage(CalculateChecksumRequest)
 
 CalculateChecksumResponse = _reflection.GeneratedProtocolMessageType('CalculateChecksumResponse', (_message.Message,), {
   'DESCRIPTOR' : _CALCULATECHECKSUMRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CalculateChecksumResponse)
   })
 _sym_db.RegisterMessage(CalculateChecksumResponse)
 
 GetSnapshotRequest = _reflection.GeneratedProtocolMessageType('GetSnapshotRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETSNAPSHOTREQUEST,
@@ -3673,13 +3673,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CalculateChecksumResponse)
   })
 _sym_db.RegisterMessage(CalculateChecksumResponse)
 
 GetSnapshotRequest = _reflection.GeneratedProtocolMessageType('GetSnapshotRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETSNAPSHOTREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetSnapshotRequest)
   })
 _sym_db.RegisterMessage(GetSnapshotRequest)
 
 GetSnapshotResponse = _reflection.GeneratedProtocolMessageType('GetSnapshotResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETSNAPSHOTRESPONSE,
@@ -3680,13 +3680,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetSnapshotRequest)
   })
 _sym_db.RegisterMessage(GetSnapshotRequest)
 
 GetSnapshotResponse = _reflection.GeneratedProtocolMessageType('GetSnapshotResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETSNAPSHOTRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetSnapshotResponse)
   })
 _sym_db.RegisterMessage(GetSnapshotResponse)
 
 CreateRepositoryFromSnapshotRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromSnapshotRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMSNAPSHOTREQUEST,
@@ -3687,13 +3687,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetSnapshotResponse)
   })
 _sym_db.RegisterMessage(GetSnapshotResponse)
 
 CreateRepositoryFromSnapshotRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromSnapshotRequest', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMSNAPSHOTREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromSnapshotRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromSnapshotRequest)
 
 CreateRepositoryFromSnapshotResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromSnapshotResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMSNAPSHOTRESPONSE,
@@ -3694,13 +3694,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromSnapshotRequest)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromSnapshotRequest)
 
 CreateRepositoryFromSnapshotResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoryFromSnapshotResponse', (_message.Message,), {
   'DESCRIPTOR' : _CREATEREPOSITORYFROMSNAPSHOTRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromSnapshotResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromSnapshotResponse)
 
 GetRawChangesRequest = _reflection.GeneratedProtocolMessageType('GetRawChangesRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETRAWCHANGESREQUEST,
@@ -3701,10 +3701,10 @@
   # @@protoc_insertion_point(class_scope:gitaly.CreateRepositoryFromSnapshotResponse)
   })
 _sym_db.RegisterMessage(CreateRepositoryFromSnapshotResponse)
 
 GetRawChangesRequest = _reflection.GeneratedProtocolMessageType('GetRawChangesRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETRAWCHANGESREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetRawChangesRequest)
   })
 _sym_db.RegisterMessage(GetRawChangesRequest)
@@ -3713,8 +3713,8 @@
 
   'RawChange' : _reflection.GeneratedProtocolMessageType('RawChange', (_message.Message,), {
     'DESCRIPTOR' : _GETRAWCHANGESRESPONSE_RAWCHANGE,
-    '__module__' : 'repository_service_pb2'
+    '__module__' : 'repository_pb2'
     # @@protoc_insertion_point(class_scope:gitaly.GetRawChangesResponse.RawChange)
     })
   ,
   'DESCRIPTOR' : _GETRAWCHANGESRESPONSE,
@@ -3717,8 +3717,8 @@
     # @@protoc_insertion_point(class_scope:gitaly.GetRawChangesResponse.RawChange)
     })
   ,
   'DESCRIPTOR' : _GETRAWCHANGESRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetRawChangesResponse)
   })
 _sym_db.RegisterMessage(GetRawChangesResponse)
@@ -3726,10 +3726,10 @@
 
 SearchFilesByNameRequest = _reflection.GeneratedProtocolMessageType('SearchFilesByNameRequest', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYNAMEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByNameRequest)
   })
 _sym_db.RegisterMessage(SearchFilesByNameRequest)
 
 SearchFilesByNameResponse = _reflection.GeneratedProtocolMessageType('SearchFilesByNameResponse', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYNAMERESPONSE,
@@ -3730,13 +3730,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByNameRequest)
   })
 _sym_db.RegisterMessage(SearchFilesByNameRequest)
 
 SearchFilesByNameResponse = _reflection.GeneratedProtocolMessageType('SearchFilesByNameResponse', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYNAMERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByNameResponse)
   })
 _sym_db.RegisterMessage(SearchFilesByNameResponse)
 
 SearchFilesByContentRequest = _reflection.GeneratedProtocolMessageType('SearchFilesByContentRequest', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYCONTENTREQUEST,
@@ -3737,13 +3737,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByNameResponse)
   })
 _sym_db.RegisterMessage(SearchFilesByNameResponse)
 
 SearchFilesByContentRequest = _reflection.GeneratedProtocolMessageType('SearchFilesByContentRequest', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYCONTENTREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByContentRequest)
   })
 _sym_db.RegisterMessage(SearchFilesByContentRequest)
 
 SearchFilesByContentResponse = _reflection.GeneratedProtocolMessageType('SearchFilesByContentResponse', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYCONTENTRESPONSE,
@@ -3744,13 +3744,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByContentRequest)
   })
 _sym_db.RegisterMessage(SearchFilesByContentRequest)
 
 SearchFilesByContentResponse = _reflection.GeneratedProtocolMessageType('SearchFilesByContentResponse', (_message.Message,), {
   'DESCRIPTOR' : _SEARCHFILESBYCONTENTRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByContentResponse)
   })
 _sym_db.RegisterMessage(SearchFilesByContentResponse)
 
 Remote = _reflection.GeneratedProtocolMessageType('Remote', (_message.Message,), {
   'DESCRIPTOR' : _REMOTE,
@@ -3751,13 +3751,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.SearchFilesByContentResponse)
   })
 _sym_db.RegisterMessage(SearchFilesByContentResponse)
 
 Remote = _reflection.GeneratedProtocolMessageType('Remote', (_message.Message,), {
   'DESCRIPTOR' : _REMOTE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.Remote)
   })
 _sym_db.RegisterMessage(Remote)
 
 GetObjectDirectorySizeRequest = _reflection.GeneratedProtocolMessageType('GetObjectDirectorySizeRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETOBJECTDIRECTORYSIZEREQUEST,
@@ -3758,13 +3758,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.Remote)
   })
 _sym_db.RegisterMessage(Remote)
 
 GetObjectDirectorySizeRequest = _reflection.GeneratedProtocolMessageType('GetObjectDirectorySizeRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETOBJECTDIRECTORYSIZEREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetObjectDirectorySizeRequest)
   })
 _sym_db.RegisterMessage(GetObjectDirectorySizeRequest)
 
 GetObjectDirectorySizeResponse = _reflection.GeneratedProtocolMessageType('GetObjectDirectorySizeResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETOBJECTDIRECTORYSIZERESPONSE,
@@ -3765,13 +3765,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetObjectDirectorySizeRequest)
   })
 _sym_db.RegisterMessage(GetObjectDirectorySizeRequest)
 
 GetObjectDirectorySizeResponse = _reflection.GeneratedProtocolMessageType('GetObjectDirectorySizeResponse', (_message.Message,), {
   'DESCRIPTOR' : _GETOBJECTDIRECTORYSIZERESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.GetObjectDirectorySizeResponse)
   })
 _sym_db.RegisterMessage(GetObjectDirectorySizeResponse)
 
 RemoveRepositoryRequest = _reflection.GeneratedProtocolMessageType('RemoveRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _REMOVEREPOSITORYREQUEST,
@@ -3772,13 +3772,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.GetObjectDirectorySizeResponse)
   })
 _sym_db.RegisterMessage(GetObjectDirectorySizeResponse)
 
 RemoveRepositoryRequest = _reflection.GeneratedProtocolMessageType('RemoveRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _REMOVEREPOSITORYREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RemoveRepositoryRequest)
   })
 _sym_db.RegisterMessage(RemoveRepositoryRequest)
 
 RemoveRepositoryResponse = _reflection.GeneratedProtocolMessageType('RemoveRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _REMOVEREPOSITORYRESPONSE,
@@ -3779,13 +3779,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RemoveRepositoryRequest)
   })
 _sym_db.RegisterMessage(RemoveRepositoryRequest)
 
 RemoveRepositoryResponse = _reflection.GeneratedProtocolMessageType('RemoveRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _REMOVEREPOSITORYRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RemoveRepositoryResponse)
   })
 _sym_db.RegisterMessage(RemoveRepositoryResponse)
 
 RenameRepositoryRequest = _reflection.GeneratedProtocolMessageType('RenameRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _RENAMEREPOSITORYREQUEST,
@@ -3786,13 +3786,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RemoveRepositoryResponse)
   })
 _sym_db.RegisterMessage(RemoveRepositoryResponse)
 
 RenameRepositoryRequest = _reflection.GeneratedProtocolMessageType('RenameRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _RENAMEREPOSITORYREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RenameRepositoryRequest)
   })
 _sym_db.RegisterMessage(RenameRepositoryRequest)
 
 RenameRepositoryResponse = _reflection.GeneratedProtocolMessageType('RenameRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _RENAMEREPOSITORYRESPONSE,
@@ -3793,13 +3793,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RenameRepositoryRequest)
   })
 _sym_db.RegisterMessage(RenameRepositoryRequest)
 
 RenameRepositoryResponse = _reflection.GeneratedProtocolMessageType('RenameRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _RENAMEREPOSITORYRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.RenameRepositoryResponse)
   })
 _sym_db.RegisterMessage(RenameRepositoryResponse)
 
 ReplicateRepositoryRequest = _reflection.GeneratedProtocolMessageType('ReplicateRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPLICATEREPOSITORYREQUEST,
@@ -3800,13 +3800,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.RenameRepositoryResponse)
   })
 _sym_db.RegisterMessage(RenameRepositoryResponse)
 
 ReplicateRepositoryRequest = _reflection.GeneratedProtocolMessageType('ReplicateRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _REPLICATEREPOSITORYREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.ReplicateRepositoryRequest)
   })
 _sym_db.RegisterMessage(ReplicateRepositoryRequest)
 
 ReplicateRepositoryResponse = _reflection.GeneratedProtocolMessageType('ReplicateRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPLICATEREPOSITORYRESPONSE,
@@ -3807,13 +3807,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.ReplicateRepositoryRequest)
   })
 _sym_db.RegisterMessage(ReplicateRepositoryRequest)
 
 ReplicateRepositoryResponse = _reflection.GeneratedProtocolMessageType('ReplicateRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _REPLICATEREPOSITORYRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.ReplicateRepositoryResponse)
   })
 _sym_db.RegisterMessage(ReplicateRepositoryResponse)
 
 OptimizeRepositoryRequest = _reflection.GeneratedProtocolMessageType('OptimizeRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _OPTIMIZEREPOSITORYREQUEST,
@@ -3814,13 +3814,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.ReplicateRepositoryResponse)
   })
 _sym_db.RegisterMessage(ReplicateRepositoryResponse)
 
 OptimizeRepositoryRequest = _reflection.GeneratedProtocolMessageType('OptimizeRepositoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _OPTIMIZEREPOSITORYREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.OptimizeRepositoryRequest)
   })
 _sym_db.RegisterMessage(OptimizeRepositoryRequest)
 
 OptimizeRepositoryResponse = _reflection.GeneratedProtocolMessageType('OptimizeRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _OPTIMIZEREPOSITORYRESPONSE,
@@ -3821,13 +3821,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.OptimizeRepositoryRequest)
   })
 _sym_db.RegisterMessage(OptimizeRepositoryRequest)
 
 OptimizeRepositoryResponse = _reflection.GeneratedProtocolMessageType('OptimizeRepositoryResponse', (_message.Message,), {
   'DESCRIPTOR' : _OPTIMIZEREPOSITORYRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.OptimizeRepositoryResponse)
   })
 _sym_db.RegisterMessage(OptimizeRepositoryResponse)
 
 PruneUnreachableObjectsRequest = _reflection.GeneratedProtocolMessageType('PruneUnreachableObjectsRequest', (_message.Message,), {
   'DESCRIPTOR' : _PRUNEUNREACHABLEOBJECTSREQUEST,
@@ -3828,13 +3828,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.OptimizeRepositoryResponse)
   })
 _sym_db.RegisterMessage(OptimizeRepositoryResponse)
 
 PruneUnreachableObjectsRequest = _reflection.GeneratedProtocolMessageType('PruneUnreachableObjectsRequest', (_message.Message,), {
   'DESCRIPTOR' : _PRUNEUNREACHABLEOBJECTSREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.PruneUnreachableObjectsRequest)
   })
 _sym_db.RegisterMessage(PruneUnreachableObjectsRequest)
 
 PruneUnreachableObjectsResponse = _reflection.GeneratedProtocolMessageType('PruneUnreachableObjectsResponse', (_message.Message,), {
   'DESCRIPTOR' : _PRUNEUNREACHABLEOBJECTSRESPONSE,
@@ -3835,13 +3835,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.PruneUnreachableObjectsRequest)
   })
 _sym_db.RegisterMessage(PruneUnreachableObjectsRequest)
 
 PruneUnreachableObjectsResponse = _reflection.GeneratedProtocolMessageType('PruneUnreachableObjectsResponse', (_message.Message,), {
   'DESCRIPTOR' : _PRUNEUNREACHABLEOBJECTSRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.PruneUnreachableObjectsResponse)
   })
 _sym_db.RegisterMessage(PruneUnreachableObjectsResponse)
 
 SetFullPathRequest = _reflection.GeneratedProtocolMessageType('SetFullPathRequest', (_message.Message,), {
   'DESCRIPTOR' : _SETFULLPATHREQUEST,
@@ -3842,13 +3842,13 @@
   # @@protoc_insertion_point(class_scope:gitaly.PruneUnreachableObjectsResponse)
   })
 _sym_db.RegisterMessage(PruneUnreachableObjectsResponse)
 
 SetFullPathRequest = _reflection.GeneratedProtocolMessageType('SetFullPathRequest', (_message.Message,), {
   'DESCRIPTOR' : _SETFULLPATHREQUEST,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.SetFullPathRequest)
   })
 _sym_db.RegisterMessage(SetFullPathRequest)
 
 SetFullPathResponse = _reflection.GeneratedProtocolMessageType('SetFullPathResponse', (_message.Message,), {
   'DESCRIPTOR' : _SETFULLPATHRESPONSE,
@@ -3849,10 +3849,10 @@
   # @@protoc_insertion_point(class_scope:gitaly.SetFullPathRequest)
   })
 _sym_db.RegisterMessage(SetFullPathRequest)
 
 SetFullPathResponse = _reflection.GeneratedProtocolMessageType('SetFullPathResponse', (_message.Message,), {
   'DESCRIPTOR' : _SETFULLPATHRESPONSE,
-  '__module__' : 'repository_service_pb2'
+  '__module__' : 'repository_pb2'
   # @@protoc_insertion_point(class_scope:gitaly.SetFullPathResponse)
   })
 _sym_db.RegisterMessage(SetFullPathResponse)
@@ -3908,8 +3908,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=6324,
-  serialized_end=10192,
+  serialized_start=6316,
+  serialized_end=10184,
   methods=[
   _descriptor.MethodDescriptor(
     name='RepositoryExists',
diff --git a/hgitaly/stub/repository_service_pb2_grpc.py b/hgitaly/stub/repository_pb2_grpc.py
similarity index 65%
rename from hgitaly/stub/repository_service_pb2_grpc.py
rename to hgitaly/stub/repository_pb2_grpc.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL3JlcG9zaXRvcnlfc2VydmljZV9wYjJfZ3JwYy5weQ==..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL3JlcG9zaXRvcnlfcGIyX2dycGMucHk= 100644
--- a/hgitaly/stub/repository_service_pb2_grpc.py
+++ b/hgitaly/stub/repository_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from . import repository_service_pb2 as repository__service__pb2
+from . import repository_pb2 as repository__pb2
 
 
 class RepositoryServiceStub(object):
@@ -6,7 +6,8 @@
 
 
 class RepositoryServiceStub(object):
-    """Missing associated documentation comment in .proto file."""
+    """RepositoryService is a service providing RPCs accessing repositories as a whole.
+    """
 
     def __init__(self, channel):
         """Constructor.
@@ -16,8 +17,8 @@
         """
         self.RepositoryExists = channel.unary_unary(
                 '/gitaly.RepositoryService/RepositoryExists',
-                request_serializer=repository__service__pb2.RepositoryExistsRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RepositoryExistsResponse.FromString,
+                request_serializer=repository__pb2.RepositoryExistsRequest.SerializeToString,
+                response_deserializer=repository__pb2.RepositoryExistsResponse.FromString,
                 )
         self.RepackIncremental = channel.unary_unary(
                 '/gitaly.RepositoryService/RepackIncremental',
@@ -21,8 +22,8 @@
                 )
         self.RepackIncremental = channel.unary_unary(
                 '/gitaly.RepositoryService/RepackIncremental',
-                request_serializer=repository__service__pb2.RepackIncrementalRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RepackIncrementalResponse.FromString,
+                request_serializer=repository__pb2.RepackIncrementalRequest.SerializeToString,
+                response_deserializer=repository__pb2.RepackIncrementalResponse.FromString,
                 )
         self.RepackFull = channel.unary_unary(
                 '/gitaly.RepositoryService/RepackFull',
@@ -26,8 +27,8 @@
                 )
         self.RepackFull = channel.unary_unary(
                 '/gitaly.RepositoryService/RepackFull',
-                request_serializer=repository__service__pb2.RepackFullRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RepackFullResponse.FromString,
+                request_serializer=repository__pb2.RepackFullRequest.SerializeToString,
+                response_deserializer=repository__pb2.RepackFullResponse.FromString,
                 )
         self.MidxRepack = channel.unary_unary(
                 '/gitaly.RepositoryService/MidxRepack',
@@ -31,8 +32,8 @@
                 )
         self.MidxRepack = channel.unary_unary(
                 '/gitaly.RepositoryService/MidxRepack',
-                request_serializer=repository__service__pb2.MidxRepackRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.MidxRepackResponse.FromString,
+                request_serializer=repository__pb2.MidxRepackRequest.SerializeToString,
+                response_deserializer=repository__pb2.MidxRepackResponse.FromString,
                 )
         self.GarbageCollect = channel.unary_unary(
                 '/gitaly.RepositoryService/GarbageCollect',
@@ -36,8 +37,8 @@
                 )
         self.GarbageCollect = channel.unary_unary(
                 '/gitaly.RepositoryService/GarbageCollect',
-                request_serializer=repository__service__pb2.GarbageCollectRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GarbageCollectResponse.FromString,
+                request_serializer=repository__pb2.GarbageCollectRequest.SerializeToString,
+                response_deserializer=repository__pb2.GarbageCollectResponse.FromString,
                 )
         self.WriteCommitGraph = channel.unary_unary(
                 '/gitaly.RepositoryService/WriteCommitGraph',
@@ -41,8 +42,8 @@
                 )
         self.WriteCommitGraph = channel.unary_unary(
                 '/gitaly.RepositoryService/WriteCommitGraph',
-                request_serializer=repository__service__pb2.WriteCommitGraphRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.WriteCommitGraphResponse.FromString,
+                request_serializer=repository__pb2.WriteCommitGraphRequest.SerializeToString,
+                response_deserializer=repository__pb2.WriteCommitGraphResponse.FromString,
                 )
         self.RepositorySize = channel.unary_unary(
                 '/gitaly.RepositoryService/RepositorySize',
@@ -46,8 +47,8 @@
                 )
         self.RepositorySize = channel.unary_unary(
                 '/gitaly.RepositoryService/RepositorySize',
-                request_serializer=repository__service__pb2.RepositorySizeRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RepositorySizeResponse.FromString,
+                request_serializer=repository__pb2.RepositorySizeRequest.SerializeToString,
+                response_deserializer=repository__pb2.RepositorySizeResponse.FromString,
                 )
         self.ApplyGitattributes = channel.unary_unary(
                 '/gitaly.RepositoryService/ApplyGitattributes',
@@ -51,8 +52,8 @@
                 )
         self.ApplyGitattributes = channel.unary_unary(
                 '/gitaly.RepositoryService/ApplyGitattributes',
-                request_serializer=repository__service__pb2.ApplyGitattributesRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.ApplyGitattributesResponse.FromString,
+                request_serializer=repository__pb2.ApplyGitattributesRequest.SerializeToString,
+                response_deserializer=repository__pb2.ApplyGitattributesResponse.FromString,
                 )
         self.FetchRemote = channel.unary_unary(
                 '/gitaly.RepositoryService/FetchRemote',
@@ -56,8 +57,8 @@
                 )
         self.FetchRemote = channel.unary_unary(
                 '/gitaly.RepositoryService/FetchRemote',
-                request_serializer=repository__service__pb2.FetchRemoteRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.FetchRemoteResponse.FromString,
+                request_serializer=repository__pb2.FetchRemoteRequest.SerializeToString,
+                response_deserializer=repository__pb2.FetchRemoteResponse.FromString,
                 )
         self.CreateRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateRepository',
@@ -61,8 +62,8 @@
                 )
         self.CreateRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateRepository',
-                request_serializer=repository__service__pb2.CreateRepositoryRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateRepositoryResponse.FromString,
+                request_serializer=repository__pb2.CreateRepositoryRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateRepositoryResponse.FromString,
                 )
         self.GetArchive = channel.unary_stream(
                 '/gitaly.RepositoryService/GetArchive',
@@ -66,8 +67,8 @@
                 )
         self.GetArchive = channel.unary_stream(
                 '/gitaly.RepositoryService/GetArchive',
-                request_serializer=repository__service__pb2.GetArchiveRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GetArchiveResponse.FromString,
+                request_serializer=repository__pb2.GetArchiveRequest.SerializeToString,
+                response_deserializer=repository__pb2.GetArchiveResponse.FromString,
                 )
         self.HasLocalBranches = channel.unary_unary(
                 '/gitaly.RepositoryService/HasLocalBranches',
@@ -71,8 +72,8 @@
                 )
         self.HasLocalBranches = channel.unary_unary(
                 '/gitaly.RepositoryService/HasLocalBranches',
-                request_serializer=repository__service__pb2.HasLocalBranchesRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.HasLocalBranchesResponse.FromString,
+                request_serializer=repository__pb2.HasLocalBranchesRequest.SerializeToString,
+                response_deserializer=repository__pb2.HasLocalBranchesResponse.FromString,
                 )
         self.FetchSourceBranch = channel.unary_unary(
                 '/gitaly.RepositoryService/FetchSourceBranch',
@@ -76,8 +77,8 @@
                 )
         self.FetchSourceBranch = channel.unary_unary(
                 '/gitaly.RepositoryService/FetchSourceBranch',
-                request_serializer=repository__service__pb2.FetchSourceBranchRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.FetchSourceBranchResponse.FromString,
+                request_serializer=repository__pb2.FetchSourceBranchRequest.SerializeToString,
+                response_deserializer=repository__pb2.FetchSourceBranchResponse.FromString,
                 )
         self.Fsck = channel.unary_unary(
                 '/gitaly.RepositoryService/Fsck',
@@ -81,8 +82,8 @@
                 )
         self.Fsck = channel.unary_unary(
                 '/gitaly.RepositoryService/Fsck',
-                request_serializer=repository__service__pb2.FsckRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.FsckResponse.FromString,
+                request_serializer=repository__pb2.FsckRequest.SerializeToString,
+                response_deserializer=repository__pb2.FsckResponse.FromString,
                 )
         self.WriteRef = channel.unary_unary(
                 '/gitaly.RepositoryService/WriteRef',
@@ -86,8 +87,8 @@
                 )
         self.WriteRef = channel.unary_unary(
                 '/gitaly.RepositoryService/WriteRef',
-                request_serializer=repository__service__pb2.WriteRefRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.WriteRefResponse.FromString,
+                request_serializer=repository__pb2.WriteRefRequest.SerializeToString,
+                response_deserializer=repository__pb2.WriteRefResponse.FromString,
                 )
         self.FindMergeBase = channel.unary_unary(
                 '/gitaly.RepositoryService/FindMergeBase',
@@ -91,8 +92,8 @@
                 )
         self.FindMergeBase = channel.unary_unary(
                 '/gitaly.RepositoryService/FindMergeBase',
-                request_serializer=repository__service__pb2.FindMergeBaseRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.FindMergeBaseResponse.FromString,
+                request_serializer=repository__pb2.FindMergeBaseRequest.SerializeToString,
+                response_deserializer=repository__pb2.FindMergeBaseResponse.FromString,
                 )
         self.CreateFork = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateFork',
@@ -96,8 +97,8 @@
                 )
         self.CreateFork = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateFork',
-                request_serializer=repository__service__pb2.CreateForkRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateForkResponse.FromString,
+                request_serializer=repository__pb2.CreateForkRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateForkResponse.FromString,
                 )
         self.CreateRepositoryFromURL = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateRepositoryFromURL',
@@ -101,8 +102,8 @@
                 )
         self.CreateRepositoryFromURL = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateRepositoryFromURL',
-                request_serializer=repository__service__pb2.CreateRepositoryFromURLRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateRepositoryFromURLResponse.FromString,
+                request_serializer=repository__pb2.CreateRepositoryFromURLRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateRepositoryFromURLResponse.FromString,
                 )
         self.CreateBundle = channel.unary_stream(
                 '/gitaly.RepositoryService/CreateBundle',
@@ -106,8 +107,8 @@
                 )
         self.CreateBundle = channel.unary_stream(
                 '/gitaly.RepositoryService/CreateBundle',
-                request_serializer=repository__service__pb2.CreateBundleRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateBundleResponse.FromString,
+                request_serializer=repository__pb2.CreateBundleRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateBundleResponse.FromString,
                 )
         self.CreateBundleFromRefList = channel.stream_stream(
                 '/gitaly.RepositoryService/CreateBundleFromRefList',
@@ -111,8 +112,8 @@
                 )
         self.CreateBundleFromRefList = channel.stream_stream(
                 '/gitaly.RepositoryService/CreateBundleFromRefList',
-                request_serializer=repository__service__pb2.CreateBundleFromRefListRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateBundleFromRefListResponse.FromString,
+                request_serializer=repository__pb2.CreateBundleFromRefListRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateBundleFromRefListResponse.FromString,
                 )
         self.FetchBundle = channel.stream_unary(
                 '/gitaly.RepositoryService/FetchBundle',
@@ -116,8 +117,8 @@
                 )
         self.FetchBundle = channel.stream_unary(
                 '/gitaly.RepositoryService/FetchBundle',
-                request_serializer=repository__service__pb2.FetchBundleRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.FetchBundleResponse.FromString,
+                request_serializer=repository__pb2.FetchBundleRequest.SerializeToString,
+                response_deserializer=repository__pb2.FetchBundleResponse.FromString,
                 )
         self.CreateRepositoryFromBundle = channel.stream_unary(
                 '/gitaly.RepositoryService/CreateRepositoryFromBundle',
@@ -121,8 +122,8 @@
                 )
         self.CreateRepositoryFromBundle = channel.stream_unary(
                 '/gitaly.RepositoryService/CreateRepositoryFromBundle',
-                request_serializer=repository__service__pb2.CreateRepositoryFromBundleRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateRepositoryFromBundleResponse.FromString,
+                request_serializer=repository__pb2.CreateRepositoryFromBundleRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateRepositoryFromBundleResponse.FromString,
                 )
         self.GetConfig = channel.unary_stream(
                 '/gitaly.RepositoryService/GetConfig',
@@ -126,8 +127,8 @@
                 )
         self.GetConfig = channel.unary_stream(
                 '/gitaly.RepositoryService/GetConfig',
-                request_serializer=repository__service__pb2.GetConfigRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GetConfigResponse.FromString,
+                request_serializer=repository__pb2.GetConfigRequest.SerializeToString,
+                response_deserializer=repository__pb2.GetConfigResponse.FromString,
                 )
         self.FindLicense = channel.unary_unary(
                 '/gitaly.RepositoryService/FindLicense',
@@ -131,8 +132,8 @@
                 )
         self.FindLicense = channel.unary_unary(
                 '/gitaly.RepositoryService/FindLicense',
-                request_serializer=repository__service__pb2.FindLicenseRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.FindLicenseResponse.FromString,
+                request_serializer=repository__pb2.FindLicenseRequest.SerializeToString,
+                response_deserializer=repository__pb2.FindLicenseResponse.FromString,
                 )
         self.GetInfoAttributes = channel.unary_stream(
                 '/gitaly.RepositoryService/GetInfoAttributes',
@@ -136,8 +137,8 @@
                 )
         self.GetInfoAttributes = channel.unary_stream(
                 '/gitaly.RepositoryService/GetInfoAttributes',
-                request_serializer=repository__service__pb2.GetInfoAttributesRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GetInfoAttributesResponse.FromString,
+                request_serializer=repository__pb2.GetInfoAttributesRequest.SerializeToString,
+                response_deserializer=repository__pb2.GetInfoAttributesResponse.FromString,
                 )
         self.CalculateChecksum = channel.unary_unary(
                 '/gitaly.RepositoryService/CalculateChecksum',
@@ -141,8 +142,8 @@
                 )
         self.CalculateChecksum = channel.unary_unary(
                 '/gitaly.RepositoryService/CalculateChecksum',
-                request_serializer=repository__service__pb2.CalculateChecksumRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CalculateChecksumResponse.FromString,
+                request_serializer=repository__pb2.CalculateChecksumRequest.SerializeToString,
+                response_deserializer=repository__pb2.CalculateChecksumResponse.FromString,
                 )
         self.Cleanup = channel.unary_unary(
                 '/gitaly.RepositoryService/Cleanup',
@@ -146,8 +147,8 @@
                 )
         self.Cleanup = channel.unary_unary(
                 '/gitaly.RepositoryService/Cleanup',
-                request_serializer=repository__service__pb2.CleanupRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CleanupResponse.FromString,
+                request_serializer=repository__pb2.CleanupRequest.SerializeToString,
+                response_deserializer=repository__pb2.CleanupResponse.FromString,
                 )
         self.GetSnapshot = channel.unary_stream(
                 '/gitaly.RepositoryService/GetSnapshot',
@@ -151,8 +152,8 @@
                 )
         self.GetSnapshot = channel.unary_stream(
                 '/gitaly.RepositoryService/GetSnapshot',
-                request_serializer=repository__service__pb2.GetSnapshotRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GetSnapshotResponse.FromString,
+                request_serializer=repository__pb2.GetSnapshotRequest.SerializeToString,
+                response_deserializer=repository__pb2.GetSnapshotResponse.FromString,
                 )
         self.CreateRepositoryFromSnapshot = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateRepositoryFromSnapshot',
@@ -156,8 +157,8 @@
                 )
         self.CreateRepositoryFromSnapshot = channel.unary_unary(
                 '/gitaly.RepositoryService/CreateRepositoryFromSnapshot',
-                request_serializer=repository__service__pb2.CreateRepositoryFromSnapshotRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.CreateRepositoryFromSnapshotResponse.FromString,
+                request_serializer=repository__pb2.CreateRepositoryFromSnapshotRequest.SerializeToString,
+                response_deserializer=repository__pb2.CreateRepositoryFromSnapshotResponse.FromString,
                 )
         self.GetRawChanges = channel.unary_stream(
                 '/gitaly.RepositoryService/GetRawChanges',
@@ -161,8 +162,8 @@
                 )
         self.GetRawChanges = channel.unary_stream(
                 '/gitaly.RepositoryService/GetRawChanges',
-                request_serializer=repository__service__pb2.GetRawChangesRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GetRawChangesResponse.FromString,
+                request_serializer=repository__pb2.GetRawChangesRequest.SerializeToString,
+                response_deserializer=repository__pb2.GetRawChangesResponse.FromString,
                 )
         self.SearchFilesByContent = channel.unary_stream(
                 '/gitaly.RepositoryService/SearchFilesByContent',
@@ -166,8 +167,8 @@
                 )
         self.SearchFilesByContent = channel.unary_stream(
                 '/gitaly.RepositoryService/SearchFilesByContent',
-                request_serializer=repository__service__pb2.SearchFilesByContentRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.SearchFilesByContentResponse.FromString,
+                request_serializer=repository__pb2.SearchFilesByContentRequest.SerializeToString,
+                response_deserializer=repository__pb2.SearchFilesByContentResponse.FromString,
                 )
         self.SearchFilesByName = channel.unary_stream(
                 '/gitaly.RepositoryService/SearchFilesByName',
@@ -171,8 +172,8 @@
                 )
         self.SearchFilesByName = channel.unary_stream(
                 '/gitaly.RepositoryService/SearchFilesByName',
-                request_serializer=repository__service__pb2.SearchFilesByNameRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.SearchFilesByNameResponse.FromString,
+                request_serializer=repository__pb2.SearchFilesByNameRequest.SerializeToString,
+                response_deserializer=repository__pb2.SearchFilesByNameResponse.FromString,
                 )
         self.RestoreCustomHooks = channel.stream_unary(
                 '/gitaly.RepositoryService/RestoreCustomHooks',
@@ -176,8 +177,8 @@
                 )
         self.RestoreCustomHooks = channel.stream_unary(
                 '/gitaly.RepositoryService/RestoreCustomHooks',
-                request_serializer=repository__service__pb2.RestoreCustomHooksRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RestoreCustomHooksResponse.FromString,
+                request_serializer=repository__pb2.RestoreCustomHooksRequest.SerializeToString,
+                response_deserializer=repository__pb2.RestoreCustomHooksResponse.FromString,
                 )
         self.BackupCustomHooks = channel.unary_stream(
                 '/gitaly.RepositoryService/BackupCustomHooks',
@@ -181,8 +182,8 @@
                 )
         self.BackupCustomHooks = channel.unary_stream(
                 '/gitaly.RepositoryService/BackupCustomHooks',
-                request_serializer=repository__service__pb2.BackupCustomHooksRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.BackupCustomHooksResponse.FromString,
+                request_serializer=repository__pb2.BackupCustomHooksRequest.SerializeToString,
+                response_deserializer=repository__pb2.BackupCustomHooksResponse.FromString,
                 )
         self.GetObjectDirectorySize = channel.unary_unary(
                 '/gitaly.RepositoryService/GetObjectDirectorySize',
@@ -186,8 +187,8 @@
                 )
         self.GetObjectDirectorySize = channel.unary_unary(
                 '/gitaly.RepositoryService/GetObjectDirectorySize',
-                request_serializer=repository__service__pb2.GetObjectDirectorySizeRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.GetObjectDirectorySizeResponse.FromString,
+                request_serializer=repository__pb2.GetObjectDirectorySizeRequest.SerializeToString,
+                response_deserializer=repository__pb2.GetObjectDirectorySizeResponse.FromString,
                 )
         self.RemoveRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/RemoveRepository',
@@ -191,8 +192,8 @@
                 )
         self.RemoveRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/RemoveRepository',
-                request_serializer=repository__service__pb2.RemoveRepositoryRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RemoveRepositoryResponse.FromString,
+                request_serializer=repository__pb2.RemoveRepositoryRequest.SerializeToString,
+                response_deserializer=repository__pb2.RemoveRepositoryResponse.FromString,
                 )
         self.RenameRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/RenameRepository',
@@ -196,8 +197,8 @@
                 )
         self.RenameRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/RenameRepository',
-                request_serializer=repository__service__pb2.RenameRepositoryRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.RenameRepositoryResponse.FromString,
+                request_serializer=repository__pb2.RenameRepositoryRequest.SerializeToString,
+                response_deserializer=repository__pb2.RenameRepositoryResponse.FromString,
                 )
         self.ReplicateRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/ReplicateRepository',
@@ -201,8 +202,8 @@
                 )
         self.ReplicateRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/ReplicateRepository',
-                request_serializer=repository__service__pb2.ReplicateRepositoryRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.ReplicateRepositoryResponse.FromString,
+                request_serializer=repository__pb2.ReplicateRepositoryRequest.SerializeToString,
+                response_deserializer=repository__pb2.ReplicateRepositoryResponse.FromString,
                 )
         self.OptimizeRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/OptimizeRepository',
@@ -206,8 +207,8 @@
                 )
         self.OptimizeRepository = channel.unary_unary(
                 '/gitaly.RepositoryService/OptimizeRepository',
-                request_serializer=repository__service__pb2.OptimizeRepositoryRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.OptimizeRepositoryResponse.FromString,
+                request_serializer=repository__pb2.OptimizeRepositoryRequest.SerializeToString,
+                response_deserializer=repository__pb2.OptimizeRepositoryResponse.FromString,
                 )
         self.PruneUnreachableObjects = channel.unary_unary(
                 '/gitaly.RepositoryService/PruneUnreachableObjects',
@@ -211,8 +212,8 @@
                 )
         self.PruneUnreachableObjects = channel.unary_unary(
                 '/gitaly.RepositoryService/PruneUnreachableObjects',
-                request_serializer=repository__service__pb2.PruneUnreachableObjectsRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.PruneUnreachableObjectsResponse.FromString,
+                request_serializer=repository__pb2.PruneUnreachableObjectsRequest.SerializeToString,
+                response_deserializer=repository__pb2.PruneUnreachableObjectsResponse.FromString,
                 )
         self.SetFullPath = channel.unary_unary(
                 '/gitaly.RepositoryService/SetFullPath',
@@ -216,9 +217,9 @@
                 )
         self.SetFullPath = channel.unary_unary(
                 '/gitaly.RepositoryService/SetFullPath',
-                request_serializer=repository__service__pb2.SetFullPathRequest.SerializeToString,
-                response_deserializer=repository__service__pb2.SetFullPathResponse.FromString,
+                request_serializer=repository__pb2.SetFullPathRequest.SerializeToString,
+                response_deserializer=repository__pb2.SetFullPathResponse.FromString,
                 )
 
 
 class RepositoryServiceServicer(object):
@@ -221,7 +222,8 @@
                 )
 
 
 class RepositoryServiceServicer(object):
-    """Missing associated documentation comment in .proto file."""
+    """RepositoryService is a service providing RPCs accessing repositories as a whole.
+    """
 
     def RepositoryExists(self, request, context):
@@ -226,6 +228,7 @@
 
     def RepositoryExists(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -266,9 +269,10 @@
         raise NotImplementedError('Method not implemented!')
 
     def RepositorySize(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def ApplyGitattributes(self, request, context):
@@ -270,9 +274,10 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def ApplyGitattributes(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -286,9 +291,10 @@
         raise NotImplementedError('Method not implemented!')
 
     def CreateRepository(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetArchive(self, request, context):
@@ -290,11 +296,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetArchive(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def HasLocalBranches(self, request, context):
@@ -296,9 +303,10 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def HasLocalBranches(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -312,9 +320,10 @@
         raise NotImplementedError('Method not implemented!')
 
     def Fsck(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def WriteRef(self, request, context):
@@ -316,11 +325,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def WriteRef(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def FindMergeBase(self, request, context):
@@ -322,11 +332,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def FindMergeBase(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CreateFork(self, request, context):
@@ -328,11 +339,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CreateFork(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CreateRepositoryFromURL(self, request, context):
@@ -334,9 +346,10 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CreateRepositoryFromURL(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -366,7 +379,8 @@
         raise NotImplementedError('Method not implemented!')
 
     def CreateRepositoryFromBundle(self, request_iterator, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -380,9 +394,10 @@
         raise NotImplementedError('Method not implemented!')
 
     def FindLicense(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetInfoAttributes(self, request, context):
@@ -384,11 +399,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetInfoAttributes(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CalculateChecksum(self, request, context):
@@ -390,9 +406,10 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CalculateChecksum(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -405,9 +422,10 @@
         raise NotImplementedError('Method not implemented!')
 
     def GetSnapshot(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CreateRepositoryFromSnapshot(self, request, context):
@@ -409,11 +427,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def CreateRepositoryFromSnapshot(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetRawChanges(self, request, context):
@@ -415,11 +434,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetRawChanges(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def SearchFilesByContent(self, request, context):
@@ -421,11 +441,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def SearchFilesByContent(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def SearchFilesByName(self, request, context):
@@ -427,11 +448,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def SearchFilesByName(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def RestoreCustomHooks(self, request_iterator, context):
@@ -433,11 +455,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def RestoreCustomHooks(self, request_iterator, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def BackupCustomHooks(self, request, context):
@@ -439,11 +462,12 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def BackupCustomHooks(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetObjectDirectorySize(self, request, context):
@@ -445,9 +469,10 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def GetObjectDirectorySize(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -462,9 +487,10 @@
         raise NotImplementedError('Method not implemented!')
 
     def RenameRepository(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def ReplicateRepository(self, request, context):
@@ -466,9 +492,10 @@
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
     def ReplicateRepository(self, request, context):
-        """Missing associated documentation comment in .proto file."""
+        """This comment is left unintentionally blank.
+        """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
@@ -517,8 +544,8 @@
     rpc_method_handlers = {
             'RepositoryExists': grpc.unary_unary_rpc_method_handler(
                     servicer.RepositoryExists,
-                    request_deserializer=repository__service__pb2.RepositoryExistsRequest.FromString,
-                    response_serializer=repository__service__pb2.RepositoryExistsResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RepositoryExistsRequest.FromString,
+                    response_serializer=repository__pb2.RepositoryExistsResponse.SerializeToString,
             ),
             'RepackIncremental': grpc.unary_unary_rpc_method_handler(
                     servicer.RepackIncremental,
@@ -522,8 +549,8 @@
             ),
             'RepackIncremental': grpc.unary_unary_rpc_method_handler(
                     servicer.RepackIncremental,
-                    request_deserializer=repository__service__pb2.RepackIncrementalRequest.FromString,
-                    response_serializer=repository__service__pb2.RepackIncrementalResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RepackIncrementalRequest.FromString,
+                    response_serializer=repository__pb2.RepackIncrementalResponse.SerializeToString,
             ),
             'RepackFull': grpc.unary_unary_rpc_method_handler(
                     servicer.RepackFull,
@@ -527,8 +554,8 @@
             ),
             'RepackFull': grpc.unary_unary_rpc_method_handler(
                     servicer.RepackFull,
-                    request_deserializer=repository__service__pb2.RepackFullRequest.FromString,
-                    response_serializer=repository__service__pb2.RepackFullResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RepackFullRequest.FromString,
+                    response_serializer=repository__pb2.RepackFullResponse.SerializeToString,
             ),
             'MidxRepack': grpc.unary_unary_rpc_method_handler(
                     servicer.MidxRepack,
@@ -532,8 +559,8 @@
             ),
             'MidxRepack': grpc.unary_unary_rpc_method_handler(
                     servicer.MidxRepack,
-                    request_deserializer=repository__service__pb2.MidxRepackRequest.FromString,
-                    response_serializer=repository__service__pb2.MidxRepackResponse.SerializeToString,
+                    request_deserializer=repository__pb2.MidxRepackRequest.FromString,
+                    response_serializer=repository__pb2.MidxRepackResponse.SerializeToString,
             ),
             'GarbageCollect': grpc.unary_unary_rpc_method_handler(
                     servicer.GarbageCollect,
@@ -537,8 +564,8 @@
             ),
             'GarbageCollect': grpc.unary_unary_rpc_method_handler(
                     servicer.GarbageCollect,
-                    request_deserializer=repository__service__pb2.GarbageCollectRequest.FromString,
-                    response_serializer=repository__service__pb2.GarbageCollectResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GarbageCollectRequest.FromString,
+                    response_serializer=repository__pb2.GarbageCollectResponse.SerializeToString,
             ),
             'WriteCommitGraph': grpc.unary_unary_rpc_method_handler(
                     servicer.WriteCommitGraph,
@@ -542,8 +569,8 @@
             ),
             'WriteCommitGraph': grpc.unary_unary_rpc_method_handler(
                     servicer.WriteCommitGraph,
-                    request_deserializer=repository__service__pb2.WriteCommitGraphRequest.FromString,
-                    response_serializer=repository__service__pb2.WriteCommitGraphResponse.SerializeToString,
+                    request_deserializer=repository__pb2.WriteCommitGraphRequest.FromString,
+                    response_serializer=repository__pb2.WriteCommitGraphResponse.SerializeToString,
             ),
             'RepositorySize': grpc.unary_unary_rpc_method_handler(
                     servicer.RepositorySize,
@@ -547,8 +574,8 @@
             ),
             'RepositorySize': grpc.unary_unary_rpc_method_handler(
                     servicer.RepositorySize,
-                    request_deserializer=repository__service__pb2.RepositorySizeRequest.FromString,
-                    response_serializer=repository__service__pb2.RepositorySizeResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RepositorySizeRequest.FromString,
+                    response_serializer=repository__pb2.RepositorySizeResponse.SerializeToString,
             ),
             'ApplyGitattributes': grpc.unary_unary_rpc_method_handler(
                     servicer.ApplyGitattributes,
@@ -552,8 +579,8 @@
             ),
             'ApplyGitattributes': grpc.unary_unary_rpc_method_handler(
                     servicer.ApplyGitattributes,
-                    request_deserializer=repository__service__pb2.ApplyGitattributesRequest.FromString,
-                    response_serializer=repository__service__pb2.ApplyGitattributesResponse.SerializeToString,
+                    request_deserializer=repository__pb2.ApplyGitattributesRequest.FromString,
+                    response_serializer=repository__pb2.ApplyGitattributesResponse.SerializeToString,
             ),
             'FetchRemote': grpc.unary_unary_rpc_method_handler(
                     servicer.FetchRemote,
@@ -557,8 +584,8 @@
             ),
             'FetchRemote': grpc.unary_unary_rpc_method_handler(
                     servicer.FetchRemote,
-                    request_deserializer=repository__service__pb2.FetchRemoteRequest.FromString,
-                    response_serializer=repository__service__pb2.FetchRemoteResponse.SerializeToString,
+                    request_deserializer=repository__pb2.FetchRemoteRequest.FromString,
+                    response_serializer=repository__pb2.FetchRemoteResponse.SerializeToString,
             ),
             'CreateRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateRepository,
@@ -562,8 +589,8 @@
             ),
             'CreateRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateRepository,
-                    request_deserializer=repository__service__pb2.CreateRepositoryRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateRepositoryResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateRepositoryRequest.FromString,
+                    response_serializer=repository__pb2.CreateRepositoryResponse.SerializeToString,
             ),
             'GetArchive': grpc.unary_stream_rpc_method_handler(
                     servicer.GetArchive,
@@ -567,8 +594,8 @@
             ),
             'GetArchive': grpc.unary_stream_rpc_method_handler(
                     servicer.GetArchive,
-                    request_deserializer=repository__service__pb2.GetArchiveRequest.FromString,
-                    response_serializer=repository__service__pb2.GetArchiveResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GetArchiveRequest.FromString,
+                    response_serializer=repository__pb2.GetArchiveResponse.SerializeToString,
             ),
             'HasLocalBranches': grpc.unary_unary_rpc_method_handler(
                     servicer.HasLocalBranches,
@@ -572,8 +599,8 @@
             ),
             'HasLocalBranches': grpc.unary_unary_rpc_method_handler(
                     servicer.HasLocalBranches,
-                    request_deserializer=repository__service__pb2.HasLocalBranchesRequest.FromString,
-                    response_serializer=repository__service__pb2.HasLocalBranchesResponse.SerializeToString,
+                    request_deserializer=repository__pb2.HasLocalBranchesRequest.FromString,
+                    response_serializer=repository__pb2.HasLocalBranchesResponse.SerializeToString,
             ),
             'FetchSourceBranch': grpc.unary_unary_rpc_method_handler(
                     servicer.FetchSourceBranch,
@@ -577,8 +604,8 @@
             ),
             'FetchSourceBranch': grpc.unary_unary_rpc_method_handler(
                     servicer.FetchSourceBranch,
-                    request_deserializer=repository__service__pb2.FetchSourceBranchRequest.FromString,
-                    response_serializer=repository__service__pb2.FetchSourceBranchResponse.SerializeToString,
+                    request_deserializer=repository__pb2.FetchSourceBranchRequest.FromString,
+                    response_serializer=repository__pb2.FetchSourceBranchResponse.SerializeToString,
             ),
             'Fsck': grpc.unary_unary_rpc_method_handler(
                     servicer.Fsck,
@@ -582,8 +609,8 @@
             ),
             'Fsck': grpc.unary_unary_rpc_method_handler(
                     servicer.Fsck,
-                    request_deserializer=repository__service__pb2.FsckRequest.FromString,
-                    response_serializer=repository__service__pb2.FsckResponse.SerializeToString,
+                    request_deserializer=repository__pb2.FsckRequest.FromString,
+                    response_serializer=repository__pb2.FsckResponse.SerializeToString,
             ),
             'WriteRef': grpc.unary_unary_rpc_method_handler(
                     servicer.WriteRef,
@@ -587,8 +614,8 @@
             ),
             'WriteRef': grpc.unary_unary_rpc_method_handler(
                     servicer.WriteRef,
-                    request_deserializer=repository__service__pb2.WriteRefRequest.FromString,
-                    response_serializer=repository__service__pb2.WriteRefResponse.SerializeToString,
+                    request_deserializer=repository__pb2.WriteRefRequest.FromString,
+                    response_serializer=repository__pb2.WriteRefResponse.SerializeToString,
             ),
             'FindMergeBase': grpc.unary_unary_rpc_method_handler(
                     servicer.FindMergeBase,
@@ -592,8 +619,8 @@
             ),
             'FindMergeBase': grpc.unary_unary_rpc_method_handler(
                     servicer.FindMergeBase,
-                    request_deserializer=repository__service__pb2.FindMergeBaseRequest.FromString,
-                    response_serializer=repository__service__pb2.FindMergeBaseResponse.SerializeToString,
+                    request_deserializer=repository__pb2.FindMergeBaseRequest.FromString,
+                    response_serializer=repository__pb2.FindMergeBaseResponse.SerializeToString,
             ),
             'CreateFork': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateFork,
@@ -597,8 +624,8 @@
             ),
             'CreateFork': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateFork,
-                    request_deserializer=repository__service__pb2.CreateForkRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateForkResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateForkRequest.FromString,
+                    response_serializer=repository__pb2.CreateForkResponse.SerializeToString,
             ),
             'CreateRepositoryFromURL': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateRepositoryFromURL,
@@ -602,8 +629,8 @@
             ),
             'CreateRepositoryFromURL': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateRepositoryFromURL,
-                    request_deserializer=repository__service__pb2.CreateRepositoryFromURLRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateRepositoryFromURLResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateRepositoryFromURLRequest.FromString,
+                    response_serializer=repository__pb2.CreateRepositoryFromURLResponse.SerializeToString,
             ),
             'CreateBundle': grpc.unary_stream_rpc_method_handler(
                     servicer.CreateBundle,
@@ -607,8 +634,8 @@
             ),
             'CreateBundle': grpc.unary_stream_rpc_method_handler(
                     servicer.CreateBundle,
-                    request_deserializer=repository__service__pb2.CreateBundleRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateBundleResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateBundleRequest.FromString,
+                    response_serializer=repository__pb2.CreateBundleResponse.SerializeToString,
             ),
             'CreateBundleFromRefList': grpc.stream_stream_rpc_method_handler(
                     servicer.CreateBundleFromRefList,
@@ -612,8 +639,8 @@
             ),
             'CreateBundleFromRefList': grpc.stream_stream_rpc_method_handler(
                     servicer.CreateBundleFromRefList,
-                    request_deserializer=repository__service__pb2.CreateBundleFromRefListRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateBundleFromRefListResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateBundleFromRefListRequest.FromString,
+                    response_serializer=repository__pb2.CreateBundleFromRefListResponse.SerializeToString,
             ),
             'FetchBundle': grpc.stream_unary_rpc_method_handler(
                     servicer.FetchBundle,
@@ -617,8 +644,8 @@
             ),
             'FetchBundle': grpc.stream_unary_rpc_method_handler(
                     servicer.FetchBundle,
-                    request_deserializer=repository__service__pb2.FetchBundleRequest.FromString,
-                    response_serializer=repository__service__pb2.FetchBundleResponse.SerializeToString,
+                    request_deserializer=repository__pb2.FetchBundleRequest.FromString,
+                    response_serializer=repository__pb2.FetchBundleResponse.SerializeToString,
             ),
             'CreateRepositoryFromBundle': grpc.stream_unary_rpc_method_handler(
                     servicer.CreateRepositoryFromBundle,
@@ -622,8 +649,8 @@
             ),
             'CreateRepositoryFromBundle': grpc.stream_unary_rpc_method_handler(
                     servicer.CreateRepositoryFromBundle,
-                    request_deserializer=repository__service__pb2.CreateRepositoryFromBundleRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateRepositoryFromBundleResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateRepositoryFromBundleRequest.FromString,
+                    response_serializer=repository__pb2.CreateRepositoryFromBundleResponse.SerializeToString,
             ),
             'GetConfig': grpc.unary_stream_rpc_method_handler(
                     servicer.GetConfig,
@@ -627,8 +654,8 @@
             ),
             'GetConfig': grpc.unary_stream_rpc_method_handler(
                     servicer.GetConfig,
-                    request_deserializer=repository__service__pb2.GetConfigRequest.FromString,
-                    response_serializer=repository__service__pb2.GetConfigResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GetConfigRequest.FromString,
+                    response_serializer=repository__pb2.GetConfigResponse.SerializeToString,
             ),
             'FindLicense': grpc.unary_unary_rpc_method_handler(
                     servicer.FindLicense,
@@ -632,8 +659,8 @@
             ),
             'FindLicense': grpc.unary_unary_rpc_method_handler(
                     servicer.FindLicense,
-                    request_deserializer=repository__service__pb2.FindLicenseRequest.FromString,
-                    response_serializer=repository__service__pb2.FindLicenseResponse.SerializeToString,
+                    request_deserializer=repository__pb2.FindLicenseRequest.FromString,
+                    response_serializer=repository__pb2.FindLicenseResponse.SerializeToString,
             ),
             'GetInfoAttributes': grpc.unary_stream_rpc_method_handler(
                     servicer.GetInfoAttributes,
@@ -637,8 +664,8 @@
             ),
             'GetInfoAttributes': grpc.unary_stream_rpc_method_handler(
                     servicer.GetInfoAttributes,
-                    request_deserializer=repository__service__pb2.GetInfoAttributesRequest.FromString,
-                    response_serializer=repository__service__pb2.GetInfoAttributesResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GetInfoAttributesRequest.FromString,
+                    response_serializer=repository__pb2.GetInfoAttributesResponse.SerializeToString,
             ),
             'CalculateChecksum': grpc.unary_unary_rpc_method_handler(
                     servicer.CalculateChecksum,
@@ -642,8 +669,8 @@
             ),
             'CalculateChecksum': grpc.unary_unary_rpc_method_handler(
                     servicer.CalculateChecksum,
-                    request_deserializer=repository__service__pb2.CalculateChecksumRequest.FromString,
-                    response_serializer=repository__service__pb2.CalculateChecksumResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CalculateChecksumRequest.FromString,
+                    response_serializer=repository__pb2.CalculateChecksumResponse.SerializeToString,
             ),
             'Cleanup': grpc.unary_unary_rpc_method_handler(
                     servicer.Cleanup,
@@ -647,8 +674,8 @@
             ),
             'Cleanup': grpc.unary_unary_rpc_method_handler(
                     servicer.Cleanup,
-                    request_deserializer=repository__service__pb2.CleanupRequest.FromString,
-                    response_serializer=repository__service__pb2.CleanupResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CleanupRequest.FromString,
+                    response_serializer=repository__pb2.CleanupResponse.SerializeToString,
             ),
             'GetSnapshot': grpc.unary_stream_rpc_method_handler(
                     servicer.GetSnapshot,
@@ -652,8 +679,8 @@
             ),
             'GetSnapshot': grpc.unary_stream_rpc_method_handler(
                     servicer.GetSnapshot,
-                    request_deserializer=repository__service__pb2.GetSnapshotRequest.FromString,
-                    response_serializer=repository__service__pb2.GetSnapshotResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GetSnapshotRequest.FromString,
+                    response_serializer=repository__pb2.GetSnapshotResponse.SerializeToString,
             ),
             'CreateRepositoryFromSnapshot': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateRepositoryFromSnapshot,
@@ -657,8 +684,8 @@
             ),
             'CreateRepositoryFromSnapshot': grpc.unary_unary_rpc_method_handler(
                     servicer.CreateRepositoryFromSnapshot,
-                    request_deserializer=repository__service__pb2.CreateRepositoryFromSnapshotRequest.FromString,
-                    response_serializer=repository__service__pb2.CreateRepositoryFromSnapshotResponse.SerializeToString,
+                    request_deserializer=repository__pb2.CreateRepositoryFromSnapshotRequest.FromString,
+                    response_serializer=repository__pb2.CreateRepositoryFromSnapshotResponse.SerializeToString,
             ),
             'GetRawChanges': grpc.unary_stream_rpc_method_handler(
                     servicer.GetRawChanges,
@@ -662,8 +689,8 @@
             ),
             'GetRawChanges': grpc.unary_stream_rpc_method_handler(
                     servicer.GetRawChanges,
-                    request_deserializer=repository__service__pb2.GetRawChangesRequest.FromString,
-                    response_serializer=repository__service__pb2.GetRawChangesResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GetRawChangesRequest.FromString,
+                    response_serializer=repository__pb2.GetRawChangesResponse.SerializeToString,
             ),
             'SearchFilesByContent': grpc.unary_stream_rpc_method_handler(
                     servicer.SearchFilesByContent,
@@ -667,8 +694,8 @@
             ),
             'SearchFilesByContent': grpc.unary_stream_rpc_method_handler(
                     servicer.SearchFilesByContent,
-                    request_deserializer=repository__service__pb2.SearchFilesByContentRequest.FromString,
-                    response_serializer=repository__service__pb2.SearchFilesByContentResponse.SerializeToString,
+                    request_deserializer=repository__pb2.SearchFilesByContentRequest.FromString,
+                    response_serializer=repository__pb2.SearchFilesByContentResponse.SerializeToString,
             ),
             'SearchFilesByName': grpc.unary_stream_rpc_method_handler(
                     servicer.SearchFilesByName,
@@ -672,8 +699,8 @@
             ),
             'SearchFilesByName': grpc.unary_stream_rpc_method_handler(
                     servicer.SearchFilesByName,
-                    request_deserializer=repository__service__pb2.SearchFilesByNameRequest.FromString,
-                    response_serializer=repository__service__pb2.SearchFilesByNameResponse.SerializeToString,
+                    request_deserializer=repository__pb2.SearchFilesByNameRequest.FromString,
+                    response_serializer=repository__pb2.SearchFilesByNameResponse.SerializeToString,
             ),
             'RestoreCustomHooks': grpc.stream_unary_rpc_method_handler(
                     servicer.RestoreCustomHooks,
@@ -677,8 +704,8 @@
             ),
             'RestoreCustomHooks': grpc.stream_unary_rpc_method_handler(
                     servicer.RestoreCustomHooks,
-                    request_deserializer=repository__service__pb2.RestoreCustomHooksRequest.FromString,
-                    response_serializer=repository__service__pb2.RestoreCustomHooksResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RestoreCustomHooksRequest.FromString,
+                    response_serializer=repository__pb2.RestoreCustomHooksResponse.SerializeToString,
             ),
             'BackupCustomHooks': grpc.unary_stream_rpc_method_handler(
                     servicer.BackupCustomHooks,
@@ -682,8 +709,8 @@
             ),
             'BackupCustomHooks': grpc.unary_stream_rpc_method_handler(
                     servicer.BackupCustomHooks,
-                    request_deserializer=repository__service__pb2.BackupCustomHooksRequest.FromString,
-                    response_serializer=repository__service__pb2.BackupCustomHooksResponse.SerializeToString,
+                    request_deserializer=repository__pb2.BackupCustomHooksRequest.FromString,
+                    response_serializer=repository__pb2.BackupCustomHooksResponse.SerializeToString,
             ),
             'GetObjectDirectorySize': grpc.unary_unary_rpc_method_handler(
                     servicer.GetObjectDirectorySize,
@@ -687,8 +714,8 @@
             ),
             'GetObjectDirectorySize': grpc.unary_unary_rpc_method_handler(
                     servicer.GetObjectDirectorySize,
-                    request_deserializer=repository__service__pb2.GetObjectDirectorySizeRequest.FromString,
-                    response_serializer=repository__service__pb2.GetObjectDirectorySizeResponse.SerializeToString,
+                    request_deserializer=repository__pb2.GetObjectDirectorySizeRequest.FromString,
+                    response_serializer=repository__pb2.GetObjectDirectorySizeResponse.SerializeToString,
             ),
             'RemoveRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.RemoveRepository,
@@ -692,8 +719,8 @@
             ),
             'RemoveRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.RemoveRepository,
-                    request_deserializer=repository__service__pb2.RemoveRepositoryRequest.FromString,
-                    response_serializer=repository__service__pb2.RemoveRepositoryResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RemoveRepositoryRequest.FromString,
+                    response_serializer=repository__pb2.RemoveRepositoryResponse.SerializeToString,
             ),
             'RenameRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.RenameRepository,
@@ -697,8 +724,8 @@
             ),
             'RenameRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.RenameRepository,
-                    request_deserializer=repository__service__pb2.RenameRepositoryRequest.FromString,
-                    response_serializer=repository__service__pb2.RenameRepositoryResponse.SerializeToString,
+                    request_deserializer=repository__pb2.RenameRepositoryRequest.FromString,
+                    response_serializer=repository__pb2.RenameRepositoryResponse.SerializeToString,
             ),
             'ReplicateRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.ReplicateRepository,
@@ -702,8 +729,8 @@
             ),
             'ReplicateRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.ReplicateRepository,
-                    request_deserializer=repository__service__pb2.ReplicateRepositoryRequest.FromString,
-                    response_serializer=repository__service__pb2.ReplicateRepositoryResponse.SerializeToString,
+                    request_deserializer=repository__pb2.ReplicateRepositoryRequest.FromString,
+                    response_serializer=repository__pb2.ReplicateRepositoryResponse.SerializeToString,
             ),
             'OptimizeRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.OptimizeRepository,
@@ -707,8 +734,8 @@
             ),
             'OptimizeRepository': grpc.unary_unary_rpc_method_handler(
                     servicer.OptimizeRepository,
-                    request_deserializer=repository__service__pb2.OptimizeRepositoryRequest.FromString,
-                    response_serializer=repository__service__pb2.OptimizeRepositoryResponse.SerializeToString,
+                    request_deserializer=repository__pb2.OptimizeRepositoryRequest.FromString,
+                    response_serializer=repository__pb2.OptimizeRepositoryResponse.SerializeToString,
             ),
             'PruneUnreachableObjects': grpc.unary_unary_rpc_method_handler(
                     servicer.PruneUnreachableObjects,
@@ -712,8 +739,8 @@
             ),
             'PruneUnreachableObjects': grpc.unary_unary_rpc_method_handler(
                     servicer.PruneUnreachableObjects,
-                    request_deserializer=repository__service__pb2.PruneUnreachableObjectsRequest.FromString,
-                    response_serializer=repository__service__pb2.PruneUnreachableObjectsResponse.SerializeToString,
+                    request_deserializer=repository__pb2.PruneUnreachableObjectsRequest.FromString,
+                    response_serializer=repository__pb2.PruneUnreachableObjectsResponse.SerializeToString,
             ),
             'SetFullPath': grpc.unary_unary_rpc_method_handler(
                     servicer.SetFullPath,
@@ -717,8 +744,8 @@
             ),
             'SetFullPath': grpc.unary_unary_rpc_method_handler(
                     servicer.SetFullPath,
-                    request_deserializer=repository__service__pb2.SetFullPathRequest.FromString,
-                    response_serializer=repository__service__pb2.SetFullPathResponse.SerializeToString,
+                    request_deserializer=repository__pb2.SetFullPathRequest.FromString,
+                    response_serializer=repository__pb2.SetFullPathResponse.SerializeToString,
             ),
     }
     generic_handler = grpc.method_handlers_generic_handler(
@@ -728,7 +755,8 @@
 
  # This class is part of an EXPERIMENTAL API.
 class RepositoryService(object):
-    """Missing associated documentation comment in .proto file."""
+    """RepositoryService is a service providing RPCs accessing repositories as a whole.
+    """
 
     @staticmethod
     def RepositoryExists(request,
@@ -742,8 +770,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/RepositoryExists',
-            repository__service__pb2.RepositoryExistsRequest.SerializeToString,
-            repository__service__pb2.RepositoryExistsResponse.FromString,
+            repository__pb2.RepositoryExistsRequest.SerializeToString,
+            repository__pb2.RepositoryExistsResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -759,8 +787,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/RepackIncremental',
-            repository__service__pb2.RepackIncrementalRequest.SerializeToString,
-            repository__service__pb2.RepackIncrementalResponse.FromString,
+            repository__pb2.RepackIncrementalRequest.SerializeToString,
+            repository__pb2.RepackIncrementalResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -776,8 +804,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/RepackFull',
-            repository__service__pb2.RepackFullRequest.SerializeToString,
-            repository__service__pb2.RepackFullResponse.FromString,
+            repository__pb2.RepackFullRequest.SerializeToString,
+            repository__pb2.RepackFullResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -793,8 +821,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/MidxRepack',
-            repository__service__pb2.MidxRepackRequest.SerializeToString,
-            repository__service__pb2.MidxRepackResponse.FromString,
+            repository__pb2.MidxRepackRequest.SerializeToString,
+            repository__pb2.MidxRepackResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -810,8 +838,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/GarbageCollect',
-            repository__service__pb2.GarbageCollectRequest.SerializeToString,
-            repository__service__pb2.GarbageCollectResponse.FromString,
+            repository__pb2.GarbageCollectRequest.SerializeToString,
+            repository__pb2.GarbageCollectResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -827,8 +855,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/WriteCommitGraph',
-            repository__service__pb2.WriteCommitGraphRequest.SerializeToString,
-            repository__service__pb2.WriteCommitGraphResponse.FromString,
+            repository__pb2.WriteCommitGraphRequest.SerializeToString,
+            repository__pb2.WriteCommitGraphResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -844,8 +872,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/RepositorySize',
-            repository__service__pb2.RepositorySizeRequest.SerializeToString,
-            repository__service__pb2.RepositorySizeResponse.FromString,
+            repository__pb2.RepositorySizeRequest.SerializeToString,
+            repository__pb2.RepositorySizeResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -861,8 +889,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/ApplyGitattributes',
-            repository__service__pb2.ApplyGitattributesRequest.SerializeToString,
-            repository__service__pb2.ApplyGitattributesResponse.FromString,
+            repository__pb2.ApplyGitattributesRequest.SerializeToString,
+            repository__pb2.ApplyGitattributesResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -878,8 +906,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/FetchRemote',
-            repository__service__pb2.FetchRemoteRequest.SerializeToString,
-            repository__service__pb2.FetchRemoteResponse.FromString,
+            repository__pb2.FetchRemoteRequest.SerializeToString,
+            repository__pb2.FetchRemoteResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -895,8 +923,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/CreateRepository',
-            repository__service__pb2.CreateRepositoryRequest.SerializeToString,
-            repository__service__pb2.CreateRepositoryResponse.FromString,
+            repository__pb2.CreateRepositoryRequest.SerializeToString,
+            repository__pb2.CreateRepositoryResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -912,8 +940,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/GetArchive',
-            repository__service__pb2.GetArchiveRequest.SerializeToString,
-            repository__service__pb2.GetArchiveResponse.FromString,
+            repository__pb2.GetArchiveRequest.SerializeToString,
+            repository__pb2.GetArchiveResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -929,8 +957,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/HasLocalBranches',
-            repository__service__pb2.HasLocalBranchesRequest.SerializeToString,
-            repository__service__pb2.HasLocalBranchesResponse.FromString,
+            repository__pb2.HasLocalBranchesRequest.SerializeToString,
+            repository__pb2.HasLocalBranchesResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -946,8 +974,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/FetchSourceBranch',
-            repository__service__pb2.FetchSourceBranchRequest.SerializeToString,
-            repository__service__pb2.FetchSourceBranchResponse.FromString,
+            repository__pb2.FetchSourceBranchRequest.SerializeToString,
+            repository__pb2.FetchSourceBranchResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -963,8 +991,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/Fsck',
-            repository__service__pb2.FsckRequest.SerializeToString,
-            repository__service__pb2.FsckResponse.FromString,
+            repository__pb2.FsckRequest.SerializeToString,
+            repository__pb2.FsckResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -980,8 +1008,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/WriteRef',
-            repository__service__pb2.WriteRefRequest.SerializeToString,
-            repository__service__pb2.WriteRefResponse.FromString,
+            repository__pb2.WriteRefRequest.SerializeToString,
+            repository__pb2.WriteRefResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -997,8 +1025,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/FindMergeBase',
-            repository__service__pb2.FindMergeBaseRequest.SerializeToString,
-            repository__service__pb2.FindMergeBaseResponse.FromString,
+            repository__pb2.FindMergeBaseRequest.SerializeToString,
+            repository__pb2.FindMergeBaseResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1014,8 +1042,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/CreateFork',
-            repository__service__pb2.CreateForkRequest.SerializeToString,
-            repository__service__pb2.CreateForkResponse.FromString,
+            repository__pb2.CreateForkRequest.SerializeToString,
+            repository__pb2.CreateForkResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1031,8 +1059,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/CreateRepositoryFromURL',
-            repository__service__pb2.CreateRepositoryFromURLRequest.SerializeToString,
-            repository__service__pb2.CreateRepositoryFromURLResponse.FromString,
+            repository__pb2.CreateRepositoryFromURLRequest.SerializeToString,
+            repository__pb2.CreateRepositoryFromURLResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1048,8 +1076,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/CreateBundle',
-            repository__service__pb2.CreateBundleRequest.SerializeToString,
-            repository__service__pb2.CreateBundleResponse.FromString,
+            repository__pb2.CreateBundleRequest.SerializeToString,
+            repository__pb2.CreateBundleResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1065,8 +1093,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.stream_stream(request_iterator, target, '/gitaly.RepositoryService/CreateBundleFromRefList',
-            repository__service__pb2.CreateBundleFromRefListRequest.SerializeToString,
-            repository__service__pb2.CreateBundleFromRefListResponse.FromString,
+            repository__pb2.CreateBundleFromRefListRequest.SerializeToString,
+            repository__pb2.CreateBundleFromRefListResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1082,8 +1110,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.stream_unary(request_iterator, target, '/gitaly.RepositoryService/FetchBundle',
-            repository__service__pb2.FetchBundleRequest.SerializeToString,
-            repository__service__pb2.FetchBundleResponse.FromString,
+            repository__pb2.FetchBundleRequest.SerializeToString,
+            repository__pb2.FetchBundleResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1099,8 +1127,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.stream_unary(request_iterator, target, '/gitaly.RepositoryService/CreateRepositoryFromBundle',
-            repository__service__pb2.CreateRepositoryFromBundleRequest.SerializeToString,
-            repository__service__pb2.CreateRepositoryFromBundleResponse.FromString,
+            repository__pb2.CreateRepositoryFromBundleRequest.SerializeToString,
+            repository__pb2.CreateRepositoryFromBundleResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1116,8 +1144,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/GetConfig',
-            repository__service__pb2.GetConfigRequest.SerializeToString,
-            repository__service__pb2.GetConfigResponse.FromString,
+            repository__pb2.GetConfigRequest.SerializeToString,
+            repository__pb2.GetConfigResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1133,8 +1161,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/FindLicense',
-            repository__service__pb2.FindLicenseRequest.SerializeToString,
-            repository__service__pb2.FindLicenseResponse.FromString,
+            repository__pb2.FindLicenseRequest.SerializeToString,
+            repository__pb2.FindLicenseResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1150,8 +1178,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/GetInfoAttributes',
-            repository__service__pb2.GetInfoAttributesRequest.SerializeToString,
-            repository__service__pb2.GetInfoAttributesResponse.FromString,
+            repository__pb2.GetInfoAttributesRequest.SerializeToString,
+            repository__pb2.GetInfoAttributesResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1167,8 +1195,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/CalculateChecksum',
-            repository__service__pb2.CalculateChecksumRequest.SerializeToString,
-            repository__service__pb2.CalculateChecksumResponse.FromString,
+            repository__pb2.CalculateChecksumRequest.SerializeToString,
+            repository__pb2.CalculateChecksumResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1184,8 +1212,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/Cleanup',
-            repository__service__pb2.CleanupRequest.SerializeToString,
-            repository__service__pb2.CleanupResponse.FromString,
+            repository__pb2.CleanupRequest.SerializeToString,
+            repository__pb2.CleanupResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1201,8 +1229,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/GetSnapshot',
-            repository__service__pb2.GetSnapshotRequest.SerializeToString,
-            repository__service__pb2.GetSnapshotResponse.FromString,
+            repository__pb2.GetSnapshotRequest.SerializeToString,
+            repository__pb2.GetSnapshotResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1218,8 +1246,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/CreateRepositoryFromSnapshot',
-            repository__service__pb2.CreateRepositoryFromSnapshotRequest.SerializeToString,
-            repository__service__pb2.CreateRepositoryFromSnapshotResponse.FromString,
+            repository__pb2.CreateRepositoryFromSnapshotRequest.SerializeToString,
+            repository__pb2.CreateRepositoryFromSnapshotResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1235,8 +1263,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/GetRawChanges',
-            repository__service__pb2.GetRawChangesRequest.SerializeToString,
-            repository__service__pb2.GetRawChangesResponse.FromString,
+            repository__pb2.GetRawChangesRequest.SerializeToString,
+            repository__pb2.GetRawChangesResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1252,8 +1280,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/SearchFilesByContent',
-            repository__service__pb2.SearchFilesByContentRequest.SerializeToString,
-            repository__service__pb2.SearchFilesByContentResponse.FromString,
+            repository__pb2.SearchFilesByContentRequest.SerializeToString,
+            repository__pb2.SearchFilesByContentResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1269,8 +1297,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/SearchFilesByName',
-            repository__service__pb2.SearchFilesByNameRequest.SerializeToString,
-            repository__service__pb2.SearchFilesByNameResponse.FromString,
+            repository__pb2.SearchFilesByNameRequest.SerializeToString,
+            repository__pb2.SearchFilesByNameResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1286,8 +1314,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.stream_unary(request_iterator, target, '/gitaly.RepositoryService/RestoreCustomHooks',
-            repository__service__pb2.RestoreCustomHooksRequest.SerializeToString,
-            repository__service__pb2.RestoreCustomHooksResponse.FromString,
+            repository__pb2.RestoreCustomHooksRequest.SerializeToString,
+            repository__pb2.RestoreCustomHooksResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1303,8 +1331,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/gitaly.RepositoryService/BackupCustomHooks',
-            repository__service__pb2.BackupCustomHooksRequest.SerializeToString,
-            repository__service__pb2.BackupCustomHooksResponse.FromString,
+            repository__pb2.BackupCustomHooksRequest.SerializeToString,
+            repository__pb2.BackupCustomHooksResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1320,8 +1348,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/GetObjectDirectorySize',
-            repository__service__pb2.GetObjectDirectorySizeRequest.SerializeToString,
-            repository__service__pb2.GetObjectDirectorySizeResponse.FromString,
+            repository__pb2.GetObjectDirectorySizeRequest.SerializeToString,
+            repository__pb2.GetObjectDirectorySizeResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1337,8 +1365,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/RemoveRepository',
-            repository__service__pb2.RemoveRepositoryRequest.SerializeToString,
-            repository__service__pb2.RemoveRepositoryResponse.FromString,
+            repository__pb2.RemoveRepositoryRequest.SerializeToString,
+            repository__pb2.RemoveRepositoryResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1354,8 +1382,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/RenameRepository',
-            repository__service__pb2.RenameRepositoryRequest.SerializeToString,
-            repository__service__pb2.RenameRepositoryResponse.FromString,
+            repository__pb2.RenameRepositoryRequest.SerializeToString,
+            repository__pb2.RenameRepositoryResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1371,8 +1399,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/ReplicateRepository',
-            repository__service__pb2.ReplicateRepositoryRequest.SerializeToString,
-            repository__service__pb2.ReplicateRepositoryResponse.FromString,
+            repository__pb2.ReplicateRepositoryRequest.SerializeToString,
+            repository__pb2.ReplicateRepositoryResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1388,8 +1416,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/OptimizeRepository',
-            repository__service__pb2.OptimizeRepositoryRequest.SerializeToString,
-            repository__service__pb2.OptimizeRepositoryResponse.FromString,
+            repository__pb2.OptimizeRepositoryRequest.SerializeToString,
+            repository__pb2.OptimizeRepositoryResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1405,8 +1433,8 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/PruneUnreachableObjects',
-            repository__service__pb2.PruneUnreachableObjectsRequest.SerializeToString,
-            repository__service__pb2.PruneUnreachableObjectsResponse.FromString,
+            repository__pb2.PruneUnreachableObjectsRequest.SerializeToString,
+            repository__pb2.PruneUnreachableObjectsResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
@@ -1422,7 +1450,7 @@
             timeout=None,
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/gitaly.RepositoryService/SetFullPath',
-            repository__service__pb2.SetFullPathRequest.SerializeToString,
-            repository__service__pb2.SetFullPathResponse.FromString,
+            repository__pb2.SetFullPathRequest.SerializeToString,
+            repository__pb2.SetFullPathResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/hgitaly/stub/server_pb2.py b/hgitaly/stub/server_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL3NlcnZlcl9wYjIucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL3NlcnZlcl9wYjIucHk= 100644
--- a/hgitaly/stub/server_pb2.py
+++ b/hgitaly/stub/server_pb2.py
@@ -18,5 +18,5 @@
   name='server.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -22,5 +22,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x0cserver.proto\x12\x06gitaly\x1a\nlint.proto\"\x13\n\x11ServerInfoRequest\"\x96\x02\n\x12ServerInfoResponse\x12\x16\n\x0eserver_version\x18\x01 \x01(\t\x12\x13\n\x0bgit_version\x18\x02 \x01(\t\x12\x42\n\x10storage_statuses\x18\x03 \x03(\x0b\x32(.gitaly.ServerInfoResponse.StorageStatus\x1a\x8e\x01\n\rStorageStatus\x12\x14\n\x0cstorage_name\x18\x01 \x01(\t\x12\x10\n\x08readable\x18\x02 \x01(\x08\x12\x11\n\twriteable\x18\x03 \x01(\x08\x12\x0f\n\x07\x66s_type\x18\x04 \x01(\t\x12\x15\n\rfilesystem_id\x18\x05 \x01(\t\x12\x1a\n\x12replication_factor\x18\x06 \x01(\r\"\x17\n\x15\x44iskStatisticsRequest\"\xa8\x01\n\x16\x44iskStatisticsResponse\x12\x46\n\x10storage_statuses\x18\x01 \x03(\x0b\x32,.gitaly.DiskStatisticsResponse.StorageStatus\x1a\x46\n\rStorageStatus\x12\x14\n\x0cstorage_name\x18\x01 \x01(\t\x12\x11\n\tavailable\x18\x02 \x01(\x03\x12\x0c\n\x04used\x18\x03 \x01(\x03\"F\n\x12\x43lockSyncedRequest\x12\x10\n\x08ntp_host\x18\x01 \x01(\t\x12\x1e\n\x16\x64rift_threshold_millis\x18\x02 \x01(\x03\"%\n\x13\x43lockSyncedResponse\x12\x0e\n\x06synced\x18\x01 \x01(\x08\x32\xf3\x01\n\rServerService\x12\x43\n\nServerInfo\x12\x19.gitaly.ServerInfoRequest\x1a\x1a.gitaly.ServerInfoResponse\x12O\n\x0e\x44iskStatistics\x12\x1d.gitaly.DiskStatisticsRequest\x1a\x1e.gitaly.DiskStatisticsResponse\x12\x46\n\x0b\x43lockSynced\x12\x1a.gitaly.ClockSyncedRequest\x1a\x1b.gitaly.ClockSyncedResponse\x1a\x04\xf0\x97(\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\x0cserver.proto\x12\x06gitaly\x1a\nlint.proto\"\x13\n\x11ServerInfoRequest\"\x96\x02\n\x12ServerInfoResponse\x12\x16\n\x0eserver_version\x18\x01 \x01(\t\x12\x13\n\x0bgit_version\x18\x02 \x01(\t\x12\x42\n\x10storage_statuses\x18\x03 \x03(\x0b\x32(.gitaly.ServerInfoResponse.StorageStatus\x1a\x8e\x01\n\rStorageStatus\x12\x14\n\x0cstorage_name\x18\x01 \x01(\t\x12\x10\n\x08readable\x18\x02 \x01(\x08\x12\x11\n\twriteable\x18\x03 \x01(\x08\x12\x0f\n\x07\x66s_type\x18\x04 \x01(\t\x12\x15\n\rfilesystem_id\x18\x05 \x01(\t\x12\x1a\n\x12replication_factor\x18\x06 \x01(\r\"\x17\n\x15\x44iskStatisticsRequest\"\xa8\x01\n\x16\x44iskStatisticsResponse\x12\x46\n\x10storage_statuses\x18\x01 \x03(\x0b\x32,.gitaly.DiskStatisticsResponse.StorageStatus\x1a\x46\n\rStorageStatus\x12\x14\n\x0cstorage_name\x18\x01 \x01(\t\x12\x11\n\tavailable\x18\x02 \x01(\x03\x12\x0c\n\x04used\x18\x03 \x01(\x03\"F\n\x12\x43lockSyncedRequest\x12\x10\n\x08ntp_host\x18\x01 \x01(\t\x12\x1e\n\x16\x64rift_threshold_millis\x18\x02 \x01(\x03\"%\n\x13\x43lockSyncedResponse\x12\x0e\n\x06synced\x18\x01 \x01(\x08\x32\xf3\x01\n\rServerService\x12\x43\n\nServerInfo\x12\x19.gitaly.ServerInfoRequest\x1a\x1a.gitaly.ServerInfoResponse\x12O\n\x0e\x44iskStatistics\x12\x1d.gitaly.DiskStatisticsRequest\x1a\x1e.gitaly.DiskStatisticsResponse\x12\x46\n\x0b\x43lockSynced\x12\x1a.gitaly.ClockSyncedRequest\x1a\x1b.gitaly.ClockSyncedResponse\x1a\x04\xf0\x97(\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[lint__pb2.DESCRIPTOR,])
 
diff --git a/hgitaly/stub/shared_pb2.py b/hgitaly/stub/shared_pb2.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS9zdHViL3NoYXJlZF9wYjIucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS9zdHViL3NoYXJlZF9wYjIucHk= 100644
--- a/hgitaly/stub/shared_pb2.py
+++ b/hgitaly/stub/shared_pb2.py
@@ -20,5 +20,5 @@
   name='shared.proto',
   package='gitaly',
   syntax='proto3',
-  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb',
+  serialized_options=b'Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb',
   create_key=_descriptor._internal_create_key,
@@ -24,5 +24,5 @@
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x0cshared.proto\x12\x06gitaly\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\"\xc3\x01\n\nRepository\x12\x14\n\x0cstorage_name\x18\x02 \x01(\t\x12\x15\n\rrelative_path\x18\x03 \x01(\t\x12\x1c\n\x14git_object_directory\x18\x04 \x01(\t\x12(\n git_alternate_object_directories\x18\x05 \x03(\t\x12\x15\n\rgl_repository\x18\x06 \x01(\t\x12\x17\n\x0fgl_project_path\x18\x08 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x07\x10\x08R\x04path\"+\n\rCommitTrailer\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x95\x02\n\tGitCommit\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07subject\x18\x02 \x01(\x0c\x12\x0c\n\x04\x62ody\x18\x03 \x01(\x0c\x12$\n\x06\x61uthor\x18\x04 \x01(\x0b\x32\x14.gitaly.CommitAuthor\x12\'\n\tcommitter\x18\x05 \x01(\x0b\x32\x14.gitaly.CommitAuthor\x12\x12\n\nparent_ids\x18\x06 \x03(\t\x12\x11\n\tbody_size\x18\x07 \x01(\x03\x12-\n\x0esignature_type\x18\x08 \x01(\x0e\x32\x15.gitaly.SignatureType\x12\x0f\n\x07tree_id\x18\t \x01(\t\x12\'\n\x08trailers\x18\n \x03(\x0b\x32\x15.gitaly.CommitTrailer\"g\n\x0c\x43ommitAuthor\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05\x65mail\x18\x02 \x01(\x0c\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08timezone\x18\x04 \x01(\x0c\"\x1b\n\nExitStatus\x12\r\n\x05value\x18\x01 \x01(\x05\"@\n\x06\x42ranch\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12(\n\rtarget_commit\x18\x02 \x01(\x0b\x32\x11.gitaly.GitCommit\"\xc5\x01\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\n\n\x02id\x18\x02 \x01(\t\x12(\n\rtarget_commit\x18\x03 \x01(\x0b\x32\x11.gitaly.GitCommit\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12\x14\n\x0cmessage_size\x18\x05 \x01(\x03\x12$\n\x06tagger\x18\x06 \x01(\x0b\x32\x14.gitaly.CommitAuthor\x12-\n\x0esignature_type\x18\x07 \x01(\x0e\x32\x15.gitaly.SignatureType\"Y\n\x04User\x12\r\n\x05gl_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\x0c\x12\r\n\x05\x65mail\x18\x03 \x01(\x0c\x12\x13\n\x0bgl_username\x18\x04 \x01(\t\x12\x10\n\x08timezone\x18\x05 \x01(\t\":\n\nObjectPool\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x90\xc6,\x01\"8\n\x13PaginationParameter\x12\x12\n\npage_token\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\"\'\n\x10PaginationCursor\x12\x13\n\x0bnext_cursor\x18\x01 \x01(\t\"*\n\rGlobalOptions\x12\x19\n\x11literal_pathspecs\x18\x01 \x01(\x08*B\n\nObjectType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43OMMIT\x10\x01\x12\x08\n\x04\x42LOB\x10\x02\x12\x08\n\x04TREE\x10\x03\x12\x07\n\x03TAG\x10\x04*5\n\rSignatureType\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03PGP\x10\x01\x12\x08\n\x04X509\x10\x02\x12\x07\n\x03SSH\x10\x03*.\n\rSortDirection\x12\r\n\tASCENDING\x10\x00\x12\x0e\n\nDESCENDING\x10\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypbb\x06proto3'
+  serialized_pb=b'\n\x0cshared.proto\x12\x06gitaly\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\nlint.proto\"\xc3\x01\n\nRepository\x12\x14\n\x0cstorage_name\x18\x02 \x01(\t\x12\x15\n\rrelative_path\x18\x03 \x01(\t\x12\x1c\n\x14git_object_directory\x18\x04 \x01(\t\x12(\n git_alternate_object_directories\x18\x05 \x03(\t\x12\x15\n\rgl_repository\x18\x06 \x01(\t\x12\x17\n\x0fgl_project_path\x18\x08 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x07\x10\x08R\x04path\"+\n\rCommitTrailer\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x95\x02\n\tGitCommit\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07subject\x18\x02 \x01(\x0c\x12\x0c\n\x04\x62ody\x18\x03 \x01(\x0c\x12$\n\x06\x61uthor\x18\x04 \x01(\x0b\x32\x14.gitaly.CommitAuthor\x12\'\n\tcommitter\x18\x05 \x01(\x0b\x32\x14.gitaly.CommitAuthor\x12\x12\n\nparent_ids\x18\x06 \x03(\t\x12\x11\n\tbody_size\x18\x07 \x01(\x03\x12-\n\x0esignature_type\x18\x08 \x01(\x0e\x32\x15.gitaly.SignatureType\x12\x0f\n\x07tree_id\x18\t \x01(\t\x12\'\n\x08trailers\x18\n \x03(\x0b\x32\x15.gitaly.CommitTrailer\"g\n\x0c\x43ommitAuthor\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05\x65mail\x18\x02 \x01(\x0c\x12(\n\x04\x64\x61te\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08timezone\x18\x04 \x01(\x0c\"\x1b\n\nExitStatus\x12\r\n\x05value\x18\x01 \x01(\x05\"@\n\x06\x42ranch\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12(\n\rtarget_commit\x18\x02 \x01(\x0b\x32\x11.gitaly.GitCommit\"\xc5\x01\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\n\n\x02id\x18\x02 \x01(\t\x12(\n\rtarget_commit\x18\x03 \x01(\x0b\x32\x11.gitaly.GitCommit\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12\x14\n\x0cmessage_size\x18\x05 \x01(\x03\x12$\n\x06tagger\x18\x06 \x01(\x0b\x32\x14.gitaly.CommitAuthor\x12-\n\x0esignature_type\x18\x07 \x01(\x0e\x32\x15.gitaly.SignatureType\"Y\n\x04User\x12\r\n\x05gl_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\x0c\x12\r\n\x05\x65mail\x18\x03 \x01(\x0c\x12\x13\n\x0bgl_username\x18\x04 \x01(\t\x12\x10\n\x08timezone\x18\x05 \x01(\t\":\n\nObjectPool\x12,\n\nrepository\x18\x01 \x01(\x0b\x32\x12.gitaly.RepositoryB\x04\x90\xc6,\x01\"8\n\x13PaginationParameter\x12\x12\n\npage_token\x18\x01 \x01(\t\x12\r\n\x05limit\x18\x02 \x01(\x05\"\'\n\x10PaginationCursor\x12\x13\n\x0bnext_cursor\x18\x01 \x01(\t\"*\n\rGlobalOptions\x12\x19\n\x11literal_pathspecs\x18\x01 \x01(\x08*B\n\nObjectType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43OMMIT\x10\x01\x12\x08\n\x04\x42LOB\x10\x02\x12\x08\n\x04TREE\x10\x03\x12\x07\n\x03TAG\x10\x04*5\n\rSignatureType\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03PGP\x10\x01\x12\x08\n\x04X509\x10\x02\x12\x07\n\x03SSH\x10\x03*.\n\rSortDirection\x12\r\n\tASCENDING\x10\x00\x12\x0e\n\nDESCENDING\x10\x01\x42\x34Z2gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypbb\x06proto3'
   ,
   dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,lint__pb2.DESCRIPTOR,])
 
diff --git a/hgitaly/tests/test_errors.py b/hgitaly/tests/test_errors.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS90ZXN0cy90ZXN0X2Vycm9ycy5weQ==..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS90ZXN0cy90ZXN0X2Vycm9ycy5weQ== 100644
--- a/hgitaly/tests/test_errors.py
+++ b/hgitaly/tests/test_errors.py
@@ -9,6 +9,6 @@
 import pytest
 import re
 
-from hgitaly.stub.repository_service_pb2 import (
+from hgitaly.stub.repository_pb2 import (
     ApplyGitattributesRequest,
 )
@@ -13,6 +13,6 @@
     ApplyGitattributesRequest,
 )
-from hgitaly.stub.repository_service_pb2_grpc import RepositoryServiceStub
+from hgitaly.stub.repository_pb2_grpc import RepositoryServiceStub
 
 
 def test_not_implemented(grpc_channel):
diff --git a/hgitaly/tests/test_servicer.py b/hgitaly/tests/test_servicer.py
index 869f612e932c96964406699478a1dc2d364573af_aGdpdGFseS90ZXN0cy90ZXN0X3NlcnZpY2VyLnB5..b1170af16fc094077f2e3096568883a0ba7590c7_aGdpdGFseS90ZXN0cy90ZXN0X3NlcnZpY2VyLnB5 100644
--- a/hgitaly/tests/test_servicer.py
+++ b/hgitaly/tests/test_servicer.py
@@ -26,8 +26,8 @@
 from ..stub.shared_pb2 import (
     Repository,
 )
-from ..stub.repository_service_pb2 import HasLocalBranchesRequest
-from ..stub.repository_service_pb2_grpc import RepositoryServiceStub
+from ..stub.repository_pb2 import HasLocalBranchesRequest
+from ..stub.repository_pb2_grpc import RepositoryServiceStub
 
 
 class FakeContext:
diff --git a/protos/blob.proto b/protos/blob.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2Jsb2IucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2Jsb2IucHJvdG8= 100644
--- a/protos/blob.proto
+++ b/protos/blob.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // BlobService is a service which provides RPCs to retrieve Git blobs from a
 // specific repository.
diff --git a/protos/cleanup.proto b/protos/cleanup.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2NsZWFudXAucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2NsZWFudXAucHJvdG8= 100644
--- a/protos/cleanup.proto
+++ b/protos/cleanup.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // CleanupService provides RPCs to clean up a repository's contents.
 service CleanupService {
diff --git a/protos/commit.proto b/protos/commit.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2NvbW1pdC5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2NvbW1pdC5wcm90bw== 100644
--- a/protos/commit.proto
+++ b/protos/commit.proto
@@ -6,7 +6,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // CommitService is a service which provides RPCs that interact with Git
 // commits.
diff --git a/protos/conflicts.proto b/protos/conflicts.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2NvbmZsaWN0cy5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2NvbmZsaWN0cy5wcm90bw== 100644
--- a/protos/conflicts.proto
+++ b/protos/conflicts.proto
@@ -6,7 +6,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // ConflictsService is a service which provides RPCs to interact with conflicts
 // resulting from a merge.
diff --git a/protos/diff.proto b/protos/diff.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2RpZmYucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2RpZmYucHJvdG8= 100644
--- a/protos/diff.proto
+++ b/protos/diff.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // DiffService is a service which provides RPCs to inspect differences
 // introduced between a set of commits.
@@ -233,5 +233,37 @@
 // to its parent. Merge commits will show files which are different to all of
 // its parents.
 message FindChangedPathsRequest {
+  // Request is a single request to pass to git diff-tree.
+  message Request {
+    // TreeRequest compares two trees.
+    message TreeRequest {
+      // left_tree_revision is the revision of the left tree to compare. Accepts any revision that
+      // peels to a tree object.
+      string left_tree_revision = 1;
+      // right_tree_revision is the revision of the right tree to compare. Accepts any revision that
+      // peels to a tree object.
+      string right_tree_revision = 2;
+    }
+
+    // CommitRequest compares a commit to its parents (or some other commits.)
+    message CommitRequest {
+      // commit_revision is the revision of the commit that should be compared. If no `parent_commit_revisions`
+      // are given, then the commit will be compared against its parents. The revision needs to peel to a
+      // commit object.
+      string commit_revision = 1;
+      // parent_commit_revisions are the revisions of commits to treat as the commit's parents. This is an
+      // optional field: if not specified, the actual parents of the commit referred to by `commit_revision`
+      // are used.
+      repeated string parent_commit_revisions = 2;
+    }
+
+    oneof type {
+      // tree_request is a request comparing two trees with each other.
+      TreeRequest tree_request = 1;
+      // commit_request is a request comparing one or more commits with each other.
+      CommitRequest commit_request = 2;
+    }
+  }
+
   // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -236,7 +268,11 @@
   // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
-  // This comment is left unintentionally blank.
-  repeated string commits = 2;
+  // commits is the list of commits to compare to their parents. This field is deprecated. To adapt to the new calling
+  // convention you can create one `CommitRequest` per commit, where each `CommitRequest` has only the `commit_revision`
+  // field.
+  repeated string commits = 2 [deprecated=true];
+  // requests specifies the requests of what to compare.
+  repeated Request requests = 3;
 }
 
 // Returns a list of files that have been changed in the commits given
diff --git a/protos/errors.proto b/protos/errors.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2Vycm9ycy5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2Vycm9ycy5wcm90bw== 100644
--- a/protos/errors.proto
+++ b/protos/errors.proto
@@ -4,7 +4,7 @@
 
 import "google/protobuf/duration.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // AccessCheckError is an error returned by GitLab's `/internal/allowed`
 // endpoint.
@@ -19,6 +19,12 @@
   bytes changes = 4;
 }
 
+// InvalidRefFormatError is an error returned when refs have an invalid format.
+message InvalidRefFormatError {
+  // Refs are the offending refs with invalid formats.
+  repeated bytes refs = 2;
+}
+
 // NotAncestorError is an error returned when parent_revision is not an ancestor
 // of the child_revision.
 message NotAncestorError {
@@ -42,6 +48,14 @@
   // field is empty, then there has still been a merge conflict, but it wasn't
   // able to determine which files have been conflicting.
   repeated bytes conflicting_files = 1;
+  // ConflictingCommitIds is the set of commit IDs that caused the conflict. In the general case,
+  // this should be set to two commit IDs.
+  repeated string conflicting_commit_ids = 2;
+}
+
+// ReferencesLockedError is an error returned when an ref update fails because
+// the references have already been locked by another process.
+message ReferencesLockedError {
 }
 
 // ReferenceUpdateError is an error returned when updating a reference has
diff --git a/protos/hook.proto b/protos/hook.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2hvb2sucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2hvb2sucHJvdG8= 100644
--- a/protos/hook.proto
+++ b/protos/hook.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // HookService is a service which provides the implementation of a subset of
 // Git hooks. These are typically invoked via the `gitaly-hooks` binary to
@@ -156,6 +156,13 @@
   Repository repository = 1 [(target_repository)=true];
   // args contains the arguments passed to the pack-objects hook, without the leading "git"
   repeated string args = 2;
+  // GlId is the user id of the initator of the fetch
+  string gl_id = 3;
+  // GlUsername is the username of the initator of the fetch
+  string gl_username = 5;
+  // GitProtocol is the protocol used for the fetch
+  string git_protocol = 6;
+
 }
 
 // This comment is left unintentionally blank.
diff --git a/protos/internal.proto b/protos/internal.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2ludGVybmFsLnByb3Rv..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2ludGVybmFsLnByb3Rv 100644
--- a/protos/internal.proto
+++ b/protos/internal.proto
@@ -5,7 +5,7 @@
 import "google/protobuf/timestamp.proto";
 import "lint.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // InternalGitaly is a gRPC service meant to be served by a Gitaly node, but
 // only reachable by Praefect or other Gitalies
diff --git a/protos/lint.proto b/protos/lint.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL2xpbnQucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL2xpbnQucHJvdG8= 100644
--- a/protos/lint.proto
+++ b/protos/lint.proto
@@ -4,7 +4,7 @@
 
 import "google/protobuf/descriptor.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // This comment is left unintentionally blank.
 message OperationMsg {
diff --git a/protos/namespace.proto b/protos/namespace.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL25hbWVzcGFjZS5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL25hbWVzcGFjZS5wcm90bw== 100644
--- a/protos/namespace.proto
+++ b/protos/namespace.proto
@@ -4,7 +4,7 @@
 
 import "lint.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // NamespaceService is a service which provides RPCs to manage namespaces of a
 // storage. Namespaces had been used before Gitaly migrated to hashed storages
diff --git a/protos/objectpool.proto b/protos/objectpool.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL29iamVjdHBvb2wucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL29iamVjdHBvb2wucHJvdG8= 100644
--- a/protos/objectpool.proto
+++ b/protos/objectpool.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // ObjectPoolService is a service containing RPCs to manipulate object pools.
 // An object pool is a separate repository that can be linked to from multiple
diff --git a/protos/operations.proto b/protos/operations.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL29wZXJhdGlvbnMucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL29wZXJhdGlvbnMucHJvdG8= 100644
--- a/protos/operations.proto
+++ b/protos/operations.proto
@@ -7,7 +7,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // OperationService provides an interface for performing mutating git
 // operations on a repository on behalf of a user. The user's operation is
@@ -29,7 +29,20 @@
     };
   }
 
-  // This comment is left unintentionally blank.
+  // UserDeleteBranch force-deletes a single branch in the context of a specific user. It executes
+  // hooks and contacts Rails to verify that the user is indeed allowed to delete that branch. The
+  // following known error conditions may happen:
+  //
+  // - Returns `InvalidArgument` in case either the branch name or user are not set.
+  // - Returns `FailedPrecondition` in case the branch does not exist.
+  // - Returns `OK` with a `PreReceiveError` in case custom hooks refused the update. If the
+  //   `gitaly_user_delete_branch_structured_errors` feature flag is enabled this error case will
+  //   instead return `PermissionDenied` with either a `CustomHook` or AccessCheck` structured
+  //   error.
+  // - Returns `FailedPrecondition` in case updating the reference fails because
+  //   of a concurrent write to the same reference. If the
+  //   `gitaly_user_delete_branch_structured_errors` feature flag is set this error case will
+  //   instead return `FailedPrecondition` with a `ReferenceUpdate` structured error.
   rpc UserDeleteBranch(UserDeleteBranchRequest) returns (UserDeleteBranchResponse) {
     option (op_type) = {
       op: MUTATOR
@@ -192,5 +205,5 @@
   string pre_receive_error = 1;
 }
 
-// This comment is left unintentionally blank.
+// UserDeleteBranchRequest is a request for the UserDeleteBranch RPC.
 message UserDeleteBranchRequest {
@@ -196,3 +209,3 @@
 message UserDeleteBranchRequest {
-  // This comment is left unintentionally blank.
+  // Repository is the repository to delete the branch in.
   Repository repository = 1 [(target_repository)=true];
@@ -198,3 +211,5 @@
   Repository repository = 1 [(target_repository)=true];
-  // This comment is left unintentionally blank.
+  // BranchName is the name of the branch that shall be deleted. This is expected to be the branch
+  // name only, e.g. in case you want to delete `refs/heads/main` the request needs to only contain
+  // `main` as the branch name.
   bytes branch_name = 2;
@@ -200,5 +215,7 @@
   bytes branch_name = 2;
-  // This comment is left unintentionally blank.
+  // User is the user on whose behalf we should delete the branch. This information is used to
+  // perform access checks against the Rails `/internal/allowed` API. This user is also exposed to
+  // any custom hooks executed as part of this RPC call.
   User user = 3;
 }
 
@@ -202,5 +219,5 @@
   User user = 3;
 }
 
-// This comment is left unintentionally blank.
+// UserDeleteBranchResponse is a response for the UserDeleteBranch RPC.
 message UserDeleteBranchResponse {
@@ -206,5 +223,6 @@
 message UserDeleteBranchResponse {
-  // This comment is left unintentionally blank.
+  // PreReceiveError is an error that is returned in case deletion of the branch failed either
+  // because of failing access checks or because hooks have refused the update.
   string pre_receive_error = 1;
 }
 
@@ -208,6 +226,21 @@
   string pre_receive_error = 1;
 }
 
+// UserDeleteBranchError is an error returned by the UserDeleteBranch RPC in some specific well
+// defined error cases.
+message UserDeleteBranchError {
+  oneof error {
+    // AccessCheckError is set if the RPC failed because `/internal/allowed` failed.
+    AccessCheckError access_check = 1;
+    // ReferenceUpdateError is set if the RPC failed because updating the
+    // reference to the new object ID has failed.
+    ReferenceUpdateError reference_update = 2;
+    // CustomHook is set if any custom hook which has running as part of this RPC call has returned
+    // a non-zero exit code.
+    CustomHookError custom_hook = 3;
+  }
+}
+
 // This comment is left unintentionally blank.
 message UserDeleteTagRequest {
   // This comment is left unintentionally blank.
@@ -292,9 +325,12 @@
   // Second message
   // If set, the merge has been applied to the branch.
   OperationBranchUpdate branch_update = 3;
-  // PreReceiveError is never set. Instead, we return a proper gRPC error with
-  // UserMergeBranchError details set to an AccessCheckError.
-  string pre_receive_error = 4 [deprecated=true];
+
+  // PreReceiveError had previously been set in case access checks refused the merge. This has been
+  // changed to Instead we return a proper gRPC error with UserMergeBranchError details set to an
+  // AccessCheckError.
+  reserved "pre_receive_error";
+  reserved 4;
 }
 
 // UserMergeBranchError includes error descriptions which may be set as error
@@ -309,6 +345,8 @@
     // CustomHook is set if any custom hook which has running as part of this RPC call has returned
     // a non-zero exit code.
     CustomHookError custom_hook = 3;
+    // MergeConflictError is set if merging the revisions has resulted in conflicting files.
+    MergeConflictError merge_conflict = 4;
   }
 }
 
@@ -346,9 +384,11 @@
 message UserMergeToRefResponse {
   // commit_id is the object ID of the computed merge commit.
   string commit_id = 1;
-  // PreReceiveError is never set because this RPC does not perform
-  // authentication via `/internal/allowed`.
-  string pre_receive_error = 2 [deprecated=true];
+
+  // PreReceiveError had never been set because this RPC does not perform authentication via
+  // `/internal/allowed`. This field was thus removed without replacement.
+  reserved "pre_receive_error";
+  reserved 2;
 }
 
 // OperationBranchUpdate contains the details of a branch update.
@@ -725,6 +765,7 @@
 message UserSquashResponse {
   // squash_sha is the object ID of the squashed commit.
   string squash_sha = 1;
+
   // DEPRECATED: https://gitlab.com/gitlab-org/gitaly/proto/merge_requests/161
   reserved 2;
   reserved "pre_receive_error";
@@ -732,7 +773,8 @@
   // GitError is not used anymore. Instead, this RPC always returns a real
   // error with an optional UserRebaseConfirmableError, which may be set on
   // special errors.
-  string git_error = 3 [deprecated=true];
+  reserved 3;
+  reserved "git_error";
 }
 
 // This comment is left unintentionally blank.
diff --git a/protos/praefect.proto b/protos/praefect.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3ByYWVmZWN0LnByb3Rv..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3ByYWVmZWN0LnByb3Rv 100644
--- a/protos/praefect.proto
+++ b/protos/praefect.proto
@@ -6,7 +6,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // PraefectInfoService is a service which provides RPCs to query and modify
 // Praefect-specific parameters.
diff --git a/protos/ref.proto b/protos/ref.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3JlZi5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3JlZi5wcm90bw== 100644
--- a/protos/ref.proto
+++ b/protos/ref.proto
@@ -2,7 +2,8 @@
 
 package gitaly;
 
+import "errors.proto";
 import "google/protobuf/timestamp.proto";
 import "lint.proto";
 import "shared.proto";
 
@@ -5,8 +6,8 @@
 import "google/protobuf/timestamp.proto";
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // RefService is a service that provides RPCs to list and modify Git references.
 service RefService {
@@ -402,6 +403,18 @@
   string git_error = 1;
 }
 
+// DeleteRefsError is returned when DeleteRefs fails to delete refs
+message DeleteRefsError {
+  oneof error {
+    // InvalidFormat is returned when one or more of the refs to be deleted
+    // have an invalid format.
+    InvalidRefFormatError invalid_format = 1;
+    // ReferencesLocked is returned when the references to be deleted are already
+    // locked by another process.
+    ReferencesLockedError references_locked = 2;
+  }
+}
+
 // This comment is left unintentionally blank.
 message ListBranchNamesContainingCommitRequest {
   // This comment is left unintentionally blank.
diff --git a/protos/remote.proto b/protos/remote.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3JlbW90ZS5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3JlbW90ZS5wcm90bw== 100644
--- a/protos/remote.proto
+++ b/protos/remote.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // RemoteService is a service providing RPCs to interact with a remote
 // repository that is hosted on another Git server.
diff --git a/protos/repository-service.proto b/protos/repository.proto
similarity index 78%
rename from protos/repository-service.proto
rename to protos/repository.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3JlcG9zaXRvcnktc2VydmljZS5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3JlcG9zaXRvcnkucHJvdG8= 100644
--- a/protos/repository-service.proto
+++ b/protos/repository.proto
@@ -2,8 +2,6 @@
 
 package gitaly;
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
-
 import "lint.proto";
 import "shared.proto";
 
@@ -7,4 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
+
+// RepositoryService is a service providing RPCs accessing repositories as a whole.
 service RepositoryService {
@@ -10,4 +11,6 @@
 service RepositoryService {
+
+  // This comment is left unintentionally blank.
   rpc RepositoryExists(RepositoryExistsRequest) returns (RepositoryExistsResponse) {
     option (op_type) = {
       op: ACCESSOR
@@ -54,8 +57,9 @@
     };
   }
 
+  // This comment is left unintentionally blank.
   rpc RepositorySize(RepositorySizeRequest) returns (RepositorySizeResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -57,8 +61,10 @@
   rpc RepositorySize(RepositorySizeRequest) returns (RepositorySizeResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc ApplyGitattributes(ApplyGitattributesRequest) returns (ApplyGitattributesResponse) {
     option (op_type) = {
       op: MUTATOR
@@ -72,8 +78,10 @@
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc CreateRepository(CreateRepositoryRequest) returns (CreateRepositoryResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
@@ -75,10 +83,12 @@
   rpc CreateRepository(CreateRepositoryRequest) returns (CreateRepositoryResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc GetArchive(GetArchiveRequest) returns (stream GetArchiveResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -80,8 +90,10 @@
   rpc GetArchive(GetArchiveRequest) returns (stream GetArchiveResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc HasLocalBranches(HasLocalBranchesRequest) returns (HasLocalBranchesResponse) {
     option (op_type) = {
       op: ACCESSOR
@@ -95,8 +107,10 @@
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc Fsck(FsckRequest) returns (FsckResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -98,10 +112,12 @@
   rpc Fsck(FsckRequest) returns (FsckResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc WriteRef(WriteRefRequest) returns (WriteRefResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
@@ -103,10 +119,12 @@
   rpc WriteRef(WriteRefRequest) returns (WriteRefResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc FindMergeBase(FindMergeBaseRequest) returns (FindMergeBaseResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -108,11 +126,13 @@
   rpc FindMergeBase(FindMergeBaseRequest) returns (FindMergeBaseResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc CreateFork(CreateForkRequest) returns (CreateForkResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
 
@@ -113,9 +133,10 @@
   rpc CreateFork(CreateForkRequest) returns (CreateForkResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
 
+  // This comment is left unintentionally blank.
   rpc CreateRepositoryFromURL(CreateRepositoryFromURLRequest) returns (CreateRepositoryFromURLResponse) {
     option (op_type) = {
       op: MUTATOR
@@ -146,6 +167,7 @@
     };
   }
 
+  // This comment is left unintentionally blank.
   rpc CreateRepositoryFromBundle(stream CreateRepositoryFromBundleRequest) returns (CreateRepositoryFromBundleResponse) {
     option (op_type) = {
       op: MUTATOR
@@ -160,8 +182,9 @@
     };
   }
 
+  // This comment is left unintentionally blank.
   rpc FindLicense(FindLicenseRequest) returns (FindLicenseResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -163,10 +186,12 @@
   rpc FindLicense(FindLicenseRequest) returns (FindLicenseResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc GetInfoAttributes(GetInfoAttributesRequest) returns (stream GetInfoAttributesResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -168,8 +193,10 @@
   rpc GetInfoAttributes(GetInfoAttributesRequest) returns (stream GetInfoAttributesResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc CalculateChecksum(CalculateChecksumRequest) returns (CalculateChecksumResponse) {
     option (op_type) = {
       op: ACCESSOR
@@ -184,8 +211,9 @@
     };
   }
 
+  // This comment is left unintentionally blank.
   rpc GetSnapshot(GetSnapshotRequest) returns (stream GetSnapshotResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -187,10 +215,12 @@
   rpc GetSnapshot(GetSnapshotRequest) returns (stream GetSnapshotResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc CreateRepositoryFromSnapshot(CreateRepositoryFromSnapshotRequest) returns (CreateRepositoryFromSnapshotResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
@@ -192,10 +222,12 @@
   rpc CreateRepositoryFromSnapshot(CreateRepositoryFromSnapshotRequest) returns (CreateRepositoryFromSnapshotResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc GetRawChanges(GetRawChangesRequest) returns (stream GetRawChangesResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -197,10 +229,12 @@
   rpc GetRawChanges(GetRawChangesRequest) returns (stream GetRawChangesResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc SearchFilesByContent(SearchFilesByContentRequest) returns (stream SearchFilesByContentResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -202,10 +236,12 @@
   rpc SearchFilesByContent(SearchFilesByContentRequest) returns (stream SearchFilesByContentResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc SearchFilesByName(SearchFilesByNameRequest) returns (stream SearchFilesByNameResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -207,10 +243,12 @@
   rpc SearchFilesByName(SearchFilesByNameRequest) returns (stream SearchFilesByNameResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc RestoreCustomHooks(stream RestoreCustomHooksRequest) returns (RestoreCustomHooksResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
@@ -212,10 +250,12 @@
   rpc RestoreCustomHooks(stream RestoreCustomHooksRequest) returns (RestoreCustomHooksResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc BackupCustomHooks(BackupCustomHooksRequest) returns (stream BackupCustomHooksResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -217,10 +257,12 @@
   rpc BackupCustomHooks(BackupCustomHooksRequest) returns (stream BackupCustomHooksResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc GetObjectDirectorySize(GetObjectDirectorySizeRequest) returns (GetObjectDirectorySizeResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
@@ -222,8 +264,9 @@
   rpc GetObjectDirectorySize(GetObjectDirectorySizeRequest) returns (GetObjectDirectorySizeResponse) {
     option (op_type) = {
       op: ACCESSOR
     };
   }
+
   // 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.
@@ -232,8 +275,10 @@
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc RenameRepository(RenameRepositoryRequest) returns (RenameRepositoryResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
@@ -235,8 +280,10 @@
   rpc RenameRepository(RenameRepositoryRequest) returns (RenameRepositoryResponse) {
     option (op_type) = {
       op: MUTATOR
     };
   }
+
+  // This comment is left unintentionally blank.
   rpc ReplicateRepository(ReplicateRepositoryRequest) returns (ReplicateRepositoryResponse) {
     option (op_type)  = {
       op: MUTATOR
@@ -283,4 +330,5 @@
   }
 }
 
+// This comment is left unintentionally blank.
 message RepositoryExistsRequest {
@@ -286,4 +334,5 @@
 message RepositoryExistsRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -287,4 +336,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message RepositoryExistsResponse {
@@ -290,4 +340,5 @@
 message RepositoryExistsResponse {
+  // This comment is left unintentionally blank.
   bool exists = 1;
 }
 
@@ -291,4 +342,5 @@
   bool exists = 1;
 }
 
+// This comment is left unintentionally blank.
 message RepackIncrementalRequest {
@@ -294,4 +346,5 @@
 message RepackIncrementalRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -295,5 +348,7 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
-message RepackIncrementalResponse {}
+// This comment is left unintentionally blank.
+message RepackIncrementalResponse {
+}
 
@@ -299,2 +354,3 @@
 
+// This comment is left unintentionally blank.
 message RepackFullRequest {
@@ -300,2 +356,3 @@
 message RepackFullRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -301,4 +358,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   bool create_bitmap = 2;
 }
 
@@ -302,5 +360,7 @@
   bool create_bitmap = 2;
 }
 
-message RepackFullResponse {}
+// This comment is left unintentionally blank.
+message RepackFullResponse {
+}
 
@@ -306,2 +366,3 @@
 
+// This comment is left unintentionally blank.
 message MidxRepackRequest {
@@ -307,4 +368,5 @@
 message MidxRepackRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -308,5 +370,7 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
-message MidxRepackResponse {}
+// This comment is left unintentionally blank.
+message MidxRepackResponse {
+}
 
@@ -312,2 +376,3 @@
 
+// This comment is left unintentionally blank.
 message GarbageCollectRequest {
@@ -313,2 +378,3 @@
 message GarbageCollectRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -314,4 +380,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   bool create_bitmap = 2;
   // If set to 'true' the 'gc' will be triggered with '--prune=30.minutes.ago' flag.
   // This will remove dangling objects from the object storage that were not modified in the last 30 minutes.
@@ -321,5 +388,7 @@
   bool prune = 3;
 }
 
-message GarbageCollectResponse {}
+// This comment is left unintentionally blank.
+message GarbageCollectResponse {
+}
 
@@ -325,2 +394,3 @@
 
+// This comment is left unintentionally blank.
 message WriteCommitGraphRequest {
@@ -326,5 +396,6 @@
 message WriteCommitGraphRequest {
+  // This comment is left unintentionally blank.
   enum SplitStrategy {
     // SizeMultiple requires to use '--split --size-multiple=4' strategy to create/update commit graph.
     // https://git-scm.com/docs/git-commit-graph#Documentation/git-commit-graph.txt-emwriteem
     // It is a default, there is no need to explicitly set it in the request.
@@ -327,6 +398,6 @@
   enum SplitStrategy {
     // SizeMultiple requires to use '--split --size-multiple=4' strategy to create/update commit graph.
     // https://git-scm.com/docs/git-commit-graph#Documentation/git-commit-graph.txt-emwriteem
     // It is a default, there is no need to explicitly set it in the request.
-    SizeMultiple = 0;
+    SizeMultiple = 0; // protolint:disable:this ENUM_FIELD_NAMES_UPPER_SNAKE_CASE ENUM_FIELD_NAMES_PREFIX ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH
   }
@@ -332,3 +403,5 @@
   }
+
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
   // SplitStrategy is a strategy used to create/update commit graph.
@@ -333,5 +406,5 @@
   Repository repository = 1 [(target_repository)=true];
   // SplitStrategy is a strategy used to create/update commit graph.
-  SplitStrategy splitStrategy = 2;
+  SplitStrategy splitStrategy = 2; // protolint:disable:this FIELD_NAMES_LOWER_SNAKE_CASE
 }
 
@@ -336,4 +409,6 @@
 }
 
-message WriteCommitGraphResponse {}
+// This comment is left unintentionally blank.
+message WriteCommitGraphResponse {
+}
 
@@ -339,2 +414,3 @@
 
+// This comment is left unintentionally blank.
 message CleanupRequest {
@@ -340,4 +416,5 @@
 message CleanupRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -341,5 +418,7 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
-message CleanupResponse {}
+// This comment is left unintentionally blank.
+message CleanupResponse {
+}
 
@@ -345,2 +424,3 @@
 
+// This comment is left unintentionally blank.
 message RepositorySizeRequest {
@@ -346,4 +426,5 @@
 message RepositorySizeRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -347,8 +428,9 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message RepositorySizeResponse {
   // Repository size in kilobytes
   int64 size = 1;
 }
 
@@ -350,6 +432,7 @@
 message RepositorySizeResponse {
   // Repository size in kilobytes
   int64 size = 1;
 }
 
+// This comment is left unintentionally blank.
 message ApplyGitattributesRequest {
@@ -355,2 +438,3 @@
 message ApplyGitattributesRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -356,4 +440,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   bytes revision = 2;
 }
 
@@ -357,5 +442,7 @@
   bytes revision = 2;
 }
 
-message ApplyGitattributesResponse {}
+// This comment is left unintentionally blank.
+message ApplyGitattributesResponse {
+}
 
@@ -361,4 +448,5 @@
 
+// This comment is left unintentionally blank.
 message FetchBundleRequest {
   // Repository into which the reference shall be fetched.
   Repository repository = 1 [(target_repository)=true];
@@ -370,5 +458,7 @@
   bool update_head = 3;
 }
 
-message FetchBundleResponse {}
+// This comment is left unintentionally blank.
+message FetchBundleResponse {
+}
 
@@ -374,2 +464,3 @@
 
+// This comment is left unintentionally blank.
 message FetchRemoteRequest {
@@ -375,4 +466,5 @@
 message FetchRemoteRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
   // force determines if references should be force-updated in case they have
   // diverged.
@@ -381,4 +473,5 @@
   bool no_tags = 4;
   // timeout specifies a timeout for the fetch.
   int32 timeout = 5;
+  // This comment is left unintentionally blank.
   string ssh_key = 6;
@@ -384,4 +477,5 @@
   string ssh_key = 6;
+  // This comment is left unintentionally blank.
   string known_hosts = 7;
   reserved 8;
   // no_prune will the fetch to not prune remote references which do not exist
@@ -399,6 +493,7 @@
   reserved "remote";
 }
 
+// This comment is left unintentionally blank.
 message FetchRemoteResponse {
   // If check_tags_changed was set in the FetchRemoteRequest, the FetchRemote
   // RPC will return false when no tags were changed, and true if tags were
@@ -406,4 +501,5 @@
   bool tags_changed = 1;
 }
 
+// This comment is left unintentionally blank.
 message CreateRepositoryRequest {
@@ -409,4 +505,5 @@
 message CreateRepositoryRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
   // Provide a branch name to set as the default branch of a newly created
   // repository. Note, this will be treated as the branch name and not a
@@ -414,5 +511,7 @@
   bytes default_branch = 2;
 }
 
-message CreateRepositoryResponse {}
+// This comment is left unintentionally blank.
+message CreateRepositoryResponse {
+}
 
@@ -418,2 +517,3 @@
 
+// This comment is left unintentionally blank.
 message GetArchiveRequest {
@@ -419,2 +519,3 @@
 message GetArchiveRequest {
+  // This comment is left unintentionally blank.
   enum Format {
@@ -420,7 +521,11 @@
   enum Format {
-    ZIP = 0;
-    TAR = 1;
-    TAR_GZ = 2;
-    TAR_BZ2 = 3;
+    // This comment is left unintentionally blank.
+    ZIP = 0; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH
+    // This comment is left unintentionally blank.
+    TAR = 1; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+    // This comment is left unintentionally blank.
+    TAR_GZ = 2; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+    // This comment is left unintentionally blank.
+    TAR_BZ2 = 3; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
   }
 
@@ -425,3 +530,4 @@
   }
 
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -427,2 +533,3 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string commit_id = 2;
@@ -428,2 +535,3 @@
   string commit_id = 2;
+  // This comment is left unintentionally blank.
   string prefix = 3;
@@ -429,2 +537,3 @@
   string prefix = 3;
+  // This comment is left unintentionally blank.
   Format format = 4;
@@ -430,2 +539,3 @@
   Format format = 4;
+  // This comment is left unintentionally blank.
   bytes path = 5;
@@ -431,5 +541,6 @@
   bytes path = 5;
-  repeated bytes exclude = 6;
+  // This comment is left unintentionally blank.
+  repeated bytes exclude = 6; // protolint:disable:this REPEATED_FIELD_NAMES_PLURALIZED
   // If `elide_path` is true and `path` refers to a subdirectory, that
   // subdirectory will be elided from archive entries. For example, if `dir`
   // contains `README.md`, with `elide_path = false` the corresponding entry
@@ -437,6 +548,7 @@
   // `README.md`. `elide_path` has no effect if `path` refers to the repository
   // root. `elide_path = true` is not supported if `path` refers to a file.
   bool elide_path = 7;
+  // This comment is left unintentionally blank.
   bool include_lfs_blobs = 8;
 }
 
@@ -440,4 +552,5 @@
   bool include_lfs_blobs = 8;
 }
 
+// This comment is left unintentionally blank.
 message GetArchiveResponse {
@@ -443,4 +556,5 @@
 message GetArchiveResponse {
+  // This comment is left unintentionally blank.
   bytes data = 1;
 }
 
@@ -444,4 +558,5 @@
   bytes data = 1;
 }
 
+// This comment is left unintentionally blank.
 message HasLocalBranchesRequest {
@@ -447,4 +562,5 @@
 message HasLocalBranchesRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -448,4 +564,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message HasLocalBranchesResponse {
@@ -451,4 +568,5 @@
 message HasLocalBranchesResponse {
+  // This comment is left unintentionally blank.
   bool value = 1;
 }
 
@@ -452,6 +570,7 @@
   bool value = 1;
 }
 
+// This comment is left unintentionally blank.
 message FetchSourceBranchRequest {
   // Repository into which the reference shall be fetched. After a successful
   // call, it should contain the target reference which points to the same
@@ -466,9 +585,10 @@
   bytes target_ref = 4;
 }
 
+// This comment is left unintentionally blank.
 message FetchSourceBranchResponse {
   // True if the source branch was successfully fetched into the target
   // repository, false if resolving the remote reference or fetching it failed.
   bool result = 1;
 }
 
@@ -469,7 +589,8 @@
 message FetchSourceBranchResponse {
   // True if the source branch was successfully fetched into the target
   // repository, false if resolving the remote reference or fetching it failed.
   bool result = 1;
 }
 
+// This comment is left unintentionally blank.
 message FsckRequest {
@@ -475,4 +596,5 @@
 message FsckRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -476,4 +598,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message FsckResponse {
@@ -479,4 +602,5 @@
 message FsckResponse {
+  // This comment is left unintentionally blank.
   bytes error = 1;
 }
 
@@ -480,4 +604,5 @@
   bytes error = 1;
 }
 
+// This comment is left unintentionally blank.
 message WriteRefRequest {
@@ -483,2 +608,3 @@
 message WriteRefRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -484,2 +610,3 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   bytes ref = 2;
@@ -485,2 +612,3 @@
   bytes ref = 2;
+  // This comment is left unintentionally blank.
   bytes revision = 3;
@@ -486,2 +614,3 @@
   bytes revision = 3;
+  // This comment is left unintentionally blank.
   bytes old_revision = 4;
@@ -487,7 +616,8 @@
   bytes old_revision = 4;
+  // This comment is left unintentionally blank.
   bool force = 5;
   // This used to be a boolean indicating whether or not to shell out or use
   // the rugged implementation
   reserved 6;
 }
 
@@ -488,12 +618,13 @@
   bool force = 5;
   // This used to be a boolean indicating whether or not to shell out or use
   // the rugged implementation
   reserved 6;
 }
 
+// This comment is left unintentionally blank.
 message WriteRefResponse {
   // This used to contain an error message. Since we're shelling out
   // all exceptions are wrapped in GRPC errors.
   reserved 1;
 }
 
@@ -494,7 +625,8 @@
 message WriteRefResponse {
   // This used to contain an error message. Since we're shelling out
   // all exceptions are wrapped in GRPC errors.
   reserved 1;
 }
 
+// This comment is left unintentionally blank.
 message FindMergeBaseRequest {
@@ -500,4 +632,5 @@
 message FindMergeBaseRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
   // We use a repeated field because rugged supports finding a base
   // for more than 2 revisions, so if we needed that in the future we don't
@@ -505,4 +638,5 @@
   repeated bytes revisions = 2;
 }
 
+// This comment is left unintentionally blank.
 message FindMergeBaseResponse {
@@ -508,4 +642,5 @@
 message FindMergeBaseResponse {
+  // This comment is left unintentionally blank.
   string base = 1;
 }
 
@@ -509,4 +644,5 @@
   string base = 1;
 }
 
+// This comment is left unintentionally blank.
 message CreateForkRequest {
@@ -512,2 +648,3 @@
 message CreateForkRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -513,4 +650,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   Repository source_repository = 2;
 }
 
@@ -514,5 +652,7 @@
   Repository source_repository = 2;
 }
 
-message CreateForkResponse {}
+// This comment is left unintentionally blank.
+message CreateForkResponse {
+}
 
@@ -518,2 +658,3 @@
 
+// This comment is left unintentionally blank.
 message CreateRepositoryFromURLRequest {
@@ -519,2 +660,3 @@
 message CreateRepositoryFromURLRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -520,4 +662,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string url = 2;
   // HttpHost is the hostname of the remote repository. Use this when the
   // URL hostname has already been resolved to an IP address to prevent DNS
@@ -534,5 +677,7 @@
   bool mirror = 5;
 }
 
-message CreateRepositoryFromURLResponse {}
+// This comment is left unintentionally blank.
+message CreateRepositoryFromURLResponse {
+}
 
@@ -538,2 +683,3 @@
 
+// This comment is left unintentionally blank.
 message CreateBundleRequest {
@@ -539,4 +685,5 @@
 message CreateBundleRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -540,4 +687,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message CreateBundleResponse {
@@ -543,4 +691,5 @@
 message CreateBundleResponse {
+  // This comment is left unintentionally blank.
   bytes data = 1;
 }
 
@@ -544,6 +693,7 @@
   bytes data = 1;
 }
 
+// This comment is left unintentionally blank.
 message CreateBundleFromRefListRequest {
   // Repository is the repository that the bundle is created from.
   Repository repository = 1 [(target_repository)=true];
@@ -554,4 +704,5 @@
   repeated bytes patterns = 2;
 }
 
+// This comment is left unintentionally blank.
 message CreateBundleFromRefListResponse {
@@ -557,4 +708,5 @@
 message CreateBundleFromRefListResponse {
+  // This comment is left unintentionally blank.
   bytes data = 1;
 }
 
@@ -571,4 +723,5 @@
   bytes data = 1;
 }
 
+// This comment is left unintentionally blank.
 message  RestoreCustomHooksRequest {
@@ -574,2 +727,3 @@
 message  RestoreCustomHooksRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -575,4 +729,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   bytes data = 2;
 }
 
@@ -576,5 +731,7 @@
   bytes data = 2;
 }
 
-message RestoreCustomHooksResponse {}
+// This comment is left unintentionally blank.
+message RestoreCustomHooksResponse {
+}
 
@@ -580,2 +737,3 @@
 
+// This comment is left unintentionally blank.
 message BackupCustomHooksRequest {
@@ -581,4 +739,5 @@
 message BackupCustomHooksRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -582,4 +741,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message BackupCustomHooksResponse {
@@ -585,4 +745,5 @@
 message BackupCustomHooksResponse {
+  // This comment is left unintentionally blank.
   bytes data = 1;
 }
 
@@ -586,6 +747,7 @@
   bytes data = 1;
 }
 
+// This comment is left unintentionally blank.
 message CreateRepositoryFromBundleRequest {
   // Only available on the first message
   Repository repository = 1 [(target_repository)=true];
@@ -589,6 +751,7 @@
 message CreateRepositoryFromBundleRequest {
   // Only available on the first message
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   bytes data = 2;
 }
 
@@ -592,5 +755,7 @@
   bytes data = 2;
 }
 
-message CreateRepositoryFromBundleResponse {}
+// This comment is left unintentionally blank.
+message CreateRepositoryFromBundleResponse {
+}
 
@@ -596,2 +761,3 @@
 
+// This comment is left unintentionally blank.
 message FindLicenseRequest {
@@ -597,4 +763,5 @@
 message FindLicenseRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -598,4 +765,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message FindLicenseResponse {
@@ -601,4 +769,5 @@
 message FindLicenseResponse {
+  // This comment is left unintentionally blank.
   string license_short_name = 1;
 }
 
@@ -602,4 +771,5 @@
   string license_short_name = 1;
 }
 
+// This comment is left unintentionally blank.
 message GetInfoAttributesRequest {
@@ -605,4 +775,5 @@
 message GetInfoAttributesRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -606,4 +777,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message GetInfoAttributesResponse {
@@ -609,4 +781,5 @@
 message GetInfoAttributesResponse {
+  // This comment is left unintentionally blank.
   bytes attributes = 1;
 }
 
@@ -610,4 +783,5 @@
   bytes attributes = 1;
 }
 
+// This comment is left unintentionally blank.
 message CalculateChecksumRequest {
@@ -613,4 +787,5 @@
 message CalculateChecksumRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -614,4 +789,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message CalculateChecksumResponse {
@@ -617,4 +793,5 @@
 message CalculateChecksumResponse {
+  // This comment is left unintentionally blank.
   string checksum = 1;
 }
 
@@ -618,4 +795,5 @@
   string checksum = 1;
 }
 
+// This comment is left unintentionally blank.
 message GetSnapshotRequest {
@@ -621,4 +799,5 @@
 message GetSnapshotRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -622,4 +801,5 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message GetSnapshotResponse {
@@ -625,4 +805,5 @@
 message GetSnapshotResponse {
+  // This comment is left unintentionally blank.
   bytes data = 1;
 }
 
@@ -626,4 +807,5 @@
   bytes data = 1;
 }
 
+// This comment is left unintentionally blank.
 message CreateRepositoryFromSnapshotRequest {
@@ -629,2 +811,3 @@
 message CreateRepositoryFromSnapshotRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -630,2 +813,3 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string http_url = 2;
@@ -631,4 +815,5 @@
   string http_url = 2;
+  // This comment is left unintentionally blank.
   string http_auth = 3;
   // HttpHost is the hostname of the remote snapshot. Use this when the
   // URL hostname has already been resolved to an IP address to prevent DNS
@@ -636,5 +821,7 @@
   string http_host = 4;
 }
 
-message CreateRepositoryFromSnapshotResponse {}
+// This comment is left unintentionally blank.
+message CreateRepositoryFromSnapshotResponse {
+}
 
@@ -640,2 +827,3 @@
 
+// This comment is left unintentionally blank.
 message GetRawChangesRequest {
@@ -641,2 +829,3 @@
 message GetRawChangesRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -642,2 +831,3 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string from_revision = 2;
@@ -643,4 +833,5 @@
   string from_revision = 2;
+  // This comment is left unintentionally blank.
   string to_revision = 3;
 }
 
@@ -644,4 +835,5 @@
   string to_revision = 3;
 }
 
+// This comment is left unintentionally blank.
 message GetRawChangesResponse {
@@ -647,2 +839,3 @@
 message GetRawChangesResponse {
+  // This comment is left unintentionally blank.
   message RawChange {
@@ -648,2 +841,3 @@
   message RawChange {
+    // This comment is left unintentionally blank.
     enum Operation {
@@ -649,10 +843,17 @@
     enum Operation {
-      UNKNOWN = 0;
-      ADDED = 1;
-      COPIED = 2;
-      DELETED = 3;
-      MODIFIED = 4;
-      RENAMED = 5;
-      TYPE_CHANGED = 6;
+      // This comment is left unintentionally blank.
+      UNKNOWN = 0; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH
+      // This comment is left unintentionally blank.
+      ADDED = 1; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+      // This comment is left unintentionally blank.
+      COPIED = 2; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+      // This comment is left unintentionally blank.
+      DELETED = 3; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+      // This comment is left unintentionally blank.
+      MODIFIED = 4; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+      // This comment is left unintentionally blank.
+      RENAMED = 5; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
+      // This comment is left unintentionally blank.
+      TYPE_CHANGED = 6; // protolint:disable:this ENUM_FIELD_NAMES_PREFIX
     }
 
@@ -657,3 +858,4 @@
     }
 
+    // This comment is left unintentionally blank.
     string blob_id = 1;
@@ -659,4 +861,5 @@
     string blob_id = 1;
+    // This comment is left unintentionally blank.
     int64 size= 2;
 
     // This used to be a string that is now represented by the field 9 as byte array.
@@ -666,4 +869,5 @@
     reserved 4;
     reserved "old_path";
 
+    // This comment is left unintentionally blank.
     Operation operation= 5;
@@ -669,2 +873,3 @@
     Operation operation= 5;
+    // This comment is left unintentionally blank.
     string raw_operation = 6;
@@ -670,2 +875,3 @@
     string raw_operation = 6;
+    // This comment is left unintentionally blank.
     int32 old_mode = 7;
@@ -671,5 +877,6 @@
     int32 old_mode = 7;
+    // This comment is left unintentionally blank.
     int32 new_mode = 8;
 
     // the following fields, 9 and 10, will eventually replace 3 and 4
     bytes new_path_bytes = 9;
@@ -672,7 +879,8 @@
     int32 new_mode = 8;
 
     // the following fields, 9 and 10, will eventually replace 3 and 4
     bytes new_path_bytes = 9;
+    // This comment is left unintentionally blank.
     bytes old_path_bytes = 10;
   }
 
@@ -676,6 +884,7 @@
     bytes old_path_bytes = 10;
   }
 
+  // This comment is left unintentionally blank.
   repeated RawChange raw_changes = 1;
 }
 
@@ -679,4 +888,5 @@
   repeated RawChange raw_changes = 1;
 }
 
+// This comment is left unintentionally blank.
 message SearchFilesByNameRequest {
@@ -682,2 +892,3 @@
 message SearchFilesByNameRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -683,2 +894,3 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string query = 2;
@@ -684,4 +896,5 @@
   string query = 2;
+  // This comment is left unintentionally blank.
   bytes ref = 3;
   // If `filter` is specified and non-empty, it will be parsed as a regular
   // expression and used to filter the result set before it is transmitted. It is
@@ -691,4 +904,5 @@
   string filter = 4;
 }
 
+// This comment is left unintentionally blank.
 message SearchFilesByNameResponse {
@@ -694,4 +908,5 @@
 message SearchFilesByNameResponse {
+  // This comment is left unintentionally blank.
   repeated bytes files = 1;
 }
 
@@ -695,4 +910,5 @@
   repeated bytes files = 1;
 }
 
+// This comment is left unintentionally blank.
 message SearchFilesByContentRequest {
@@ -698,2 +914,3 @@
 message SearchFilesByContentRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -699,2 +916,3 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string query = 2;
@@ -700,2 +918,3 @@
   string query = 2;
+  // This comment is left unintentionally blank.
   bytes ref = 3;
@@ -701,4 +920,5 @@
   bytes ref = 3;
+  // This comment is left unintentionally blank.
   bool chunked_response = 4;
 }
 
@@ -702,4 +922,5 @@
   bool chunked_response = 4;
 }
 
+// This comment is left unintentionally blank.
 message SearchFilesByContentResponse {
@@ -705,2 +926,3 @@
 message SearchFilesByContentResponse {
+  // This comment is left unintentionally blank.
   repeated bytes matches = 1;
@@ -706,2 +928,3 @@
   repeated bytes matches = 1;
+  // This comment is left unintentionally blank.
   bytes match_data = 2;
@@ -707,4 +930,5 @@
   bytes match_data = 2;
+  // This comment is left unintentionally blank.
   bool end_of_match = 3;
 }
 
@@ -742,4 +966,5 @@
   reserved "name";
 }
 
+// This comment is left unintentionally blank.
 message GetObjectDirectorySizeRequest {
@@ -745,4 +970,5 @@
 message GetObjectDirectorySizeRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -746,8 +972,9 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message GetObjectDirectorySizeResponse {
   // Object directory size in kilobytes
   int64 size = 1;
 }
 
@@ -749,6 +976,7 @@
 message GetObjectDirectorySizeResponse {
   // Object directory size in kilobytes
   int64 size = 1;
 }
 
+// This comment is left unintentionally blank.
 message RemoveRepositoryRequest {
@@ -754,4 +982,5 @@
 message RemoveRepositoryRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -755,5 +984,6 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
+// This comment is left unintentionally blank.
 message RemoveRepositoryResponse {
 }
@@ -758,3 +988,5 @@
 message RemoveRepositoryResponse {
 }
+
+// This comment is left unintentionally blank.
 message RenameRepositoryRequest {
@@ -760,2 +992,3 @@
 message RenameRepositoryRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -761,4 +994,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   string relative_path = 2;
 }
 
@@ -762,6 +996,7 @@
   string relative_path = 2;
 }
 
+// This comment is left unintentionally blank.
 message RenameRepositoryResponse{
 }
 
@@ -765,4 +1000,5 @@
 message RenameRepositoryResponse{
 }
 
+// This comment is left unintentionally blank.
 message ReplicateRepositoryRequest {
@@ -768,2 +1004,3 @@
 message ReplicateRepositoryRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
@@ -769,4 +1006,5 @@
   Repository repository = 1 [(target_repository)=true];
+  // This comment is left unintentionally blank.
   Repository source = 2;
 }
 
@@ -770,5 +1008,7 @@
   Repository source = 2;
 }
 
-message ReplicateRepositoryResponse{}
+// This comment is left unintentionally blank.
+message ReplicateRepositoryResponse{
+}
 
@@ -774,2 +1014,3 @@
 
+// This comment is left unintentionally blank.
 message OptimizeRepositoryRequest {
@@ -775,4 +1016,5 @@
 message OptimizeRepositoryRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -776,8 +1018,10 @@
   Repository repository = 1 [(target_repository)=true];
 }
 
-message OptimizeRepositoryResponse{}
+// This comment is left unintentionally blank.
+message OptimizeRepositoryResponse{
+}
 
 // PruneUnreachableObjectsRequest is a request for the PruneUnreachableObjects
 // RPC call.
 message PruneUnreachableObjectsRequest {
@@ -780,7 +1024,8 @@
 
 // PruneUnreachableObjectsRequest is a request for the PruneUnreachableObjects
 // RPC call.
 message PruneUnreachableObjectsRequest {
+  // This comment is left unintentionally blank.
   Repository repository = 1 [(target_repository)=true];
 }
 
@@ -798,4 +1043,5 @@
 }
 
 // SetFullPathResponse is a response fqor the SetFullPath RPC.
-message SetFullPathResponse {}
+message SetFullPathResponse {
+}
diff --git a/protos/server.proto b/protos/server.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3NlcnZlci5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3NlcnZlci5wcm90bw== 100644
--- a/protos/server.proto
+++ b/protos/server.proto
@@ -4,7 +4,7 @@
 
 import "lint.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // ServerService is a service that provides information about a Gitaly server.
 service ServerService {
diff --git a/protos/shared.proto b/protos/shared.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3NoYXJlZC5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3NoYXJlZC5wcm90bw== 100644
--- a/protos/shared.proto
+++ b/protos/shared.proto
@@ -5,7 +5,7 @@
 import "google/protobuf/timestamp.proto";
 import "lint.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // This comment is left unintentionally blank.
 enum ObjectType {
diff --git a/protos/smarthttp.proto b/protos/smarthttp.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3NtYXJ0aHR0cC5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3NtYXJ0aHR0cC5wcm90bw== 100644
--- a/protos/smarthttp.proto
+++ b/protos/smarthttp.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // SmartHTTPService is a service that provides RPCs required for HTTP-based Git
 // clones via the smart HTTP protocol.
diff --git a/protos/ssh.proto b/protos/ssh.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3NzaC5wcm90bw==..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3NzaC5wcm90bw== 100644
--- a/protos/ssh.proto
+++ b/protos/ssh.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // SSHService is a service that provides RPCs required for SSH-based Git clones.
 service SSHService {
diff --git a/protos/transaction.proto b/protos/transaction.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3RyYW5zYWN0aW9uLnByb3Rv..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3RyYW5zYWN0aW9uLnByb3Rv 100644
--- a/protos/transaction.proto
+++ b/protos/transaction.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // RefTransaction is a service which provides RPCs to interact with reference
 // transactions. Reference transactions are used in the context of Gitaly
diff --git a/protos/wiki.proto b/protos/wiki.proto
index 869f612e932c96964406699478a1dc2d364573af_cHJvdG9zL3dpa2kucHJvdG8=..b1170af16fc094077f2e3096568883a0ba7590c7_cHJvdG9zL3dpa2kucHJvdG8= 100644
--- a/protos/wiki.proto
+++ b/protos/wiki.proto
@@ -5,7 +5,7 @@
 import "lint.proto";
 import "shared.proto";
 
-option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";
+option go_package = "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb";
 
 // WikiService is a service that provides Wiki-related functionality. This
 // service is deprecated and should not be used anymore. Instead, all
diff --git a/tests_with_gitaly/gitaly.py b/tests_with_gitaly/gitaly.py
index 869f612e932c96964406699478a1dc2d364573af_dGVzdHNfd2l0aF9naXRhbHkvZ2l0YWx5LnB5..b1170af16fc094077f2e3096568883a0ba7590c7_dGVzdHNfd2l0aF9naXRhbHkvZ2l0YWx5LnB5 100644
--- a/tests_with_gitaly/gitaly.py
+++ b/tests_with_gitaly/gitaly.py
@@ -10,5 +10,5 @@
 import os
 import subprocess
 
-from hgitaly.stub.repository_service_pb2 import RepositoryExistsRequest
+from hgitaly.stub.repository_pb2 import RepositoryExistsRequest
 from hgitaly.stub.shared_pb2 import Repository
@@ -14,5 +14,5 @@
 from hgitaly.stub.shared_pb2 import Repository
-from hgitaly.stub.repository_service_pb2_grpc import RepositoryServiceStub
+from hgitaly.stub.repository_pb2_grpc import RepositoryServiceStub
 
 from . import (
     GITALY_BIN_REL_PATH,
diff --git a/tests_with_gitaly/test_gitaly_server.py b/tests_with_gitaly/test_gitaly_server.py
index 869f612e932c96964406699478a1dc2d364573af_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9naXRhbHlfc2VydmVyLnB5..b1170af16fc094077f2e3096568883a0ba7590c7_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9naXRhbHlfc2VydmVyLnB5 100644
--- a/tests_with_gitaly/test_gitaly_server.py
+++ b/tests_with_gitaly/test_gitaly_server.py
@@ -11,8 +11,8 @@
 """
 import pytest
 
-from hgitaly.stub.repository_service_pb2 import (
+from hgitaly.stub.repository_pb2 import (
     CreateRepositoryRequest,
     RepositoryExistsRequest,
 )
 from hgitaly.stub.shared_pb2 import Repository
@@ -15,8 +15,8 @@
     CreateRepositoryRequest,
     RepositoryExistsRequest,
 )
 from hgitaly.stub.shared_pb2 import Repository
-from hgitaly.stub.repository_service_pb2_grpc import RepositoryServiceStub
+from hgitaly.stub.repository_pb2_grpc import RepositoryServiceStub
 
 from . import skip_comparison_tests
 if skip_comparison_tests():  # pragma no cover
diff --git a/tests_with_gitaly/test_repository_service.py b/tests_with_gitaly/test_repository_service.py
index 869f612e932c96964406699478a1dc2d364573af_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9yZXBvc2l0b3J5X3NlcnZpY2UucHk=..b1170af16fc094077f2e3096568883a0ba7590c7_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9yZXBvc2l0b3J5X3NlcnZpY2UucHk= 100644
--- a/tests_with_gitaly/test_repository_service.py
+++ b/tests_with_gitaly/test_repository_service.py
@@ -14,7 +14,7 @@
 # from hgitaly.git import EMPTY_TREE_OID
 from hgitaly.stub.shared_pb2 import Repository
 from hgitaly import stream
-from hgitaly.stub.repository_service_pb2 import (
+from hgitaly.stub.repository_pb2 import (
     CreateRepositoryRequest,
     CreateBundleRequest,
     CreateBundleFromRefListRequest,
@@ -23,7 +23,7 @@
     RemoveRepositoryRequest,
     SetFullPathRequest,
 )
-from hgitaly.stub.repository_service_pb2_grpc import RepositoryServiceStub
+from hgitaly.stub.repository_pb2_grpc import RepositoryServiceStub
 from heptapod.testhelpers import (
     LocalRepoWrapper,
     git,