syntax = "proto3"; package gitks; import "oid.proto"; import "repository.proto"; message ArchiveOptions { enum Format { ARCHIVE_FORMAT_UNSPECIFIED = 0; ARCHIVE_FORMAT_TAR = 1; ARCHIVE_FORMAT_TAR_GZ = 2; ARCHIVE_FORMAT_TAR_BZ2 = 3; ARCHIVE_FORMAT_TAR_XZ = 4; ARCHIVE_FORMAT_ZIP = 5; } Format format = 1; string prefix = 2; repeated string pathspec = 3; int32 compression_level = 4; bool include_global_extended_pax_headers = 5; } message ArchiveRequest { RepositoryHeader repository = 1; ObjectSelector treeish = 2; ArchiveOptions options = 3; } message ArchiveChunk { bytes data = 1; } message ArchiveEntry { string path = 1; Oid oid = 2; uint32 mode = 3; int64 size = 4; ObjectType type = 5; } message ListArchiveEntriesRequest { RepositoryHeader repository = 1; ObjectSelector treeish = 2; repeated string pathspec = 3; Pagination pagination = 4; } message ListArchiveEntriesResponse { repeated ArchiveEntry entries = 1; PageInfo page_info = 2; } service ArchiveService { rpc GetArchive(ArchiveRequest) returns (stream ArchiveChunk); rpc ListArchiveEntries(ListArchiveEntriesRequest) returns (ListArchiveEntriesResponse); }