158 lines
4.0 KiB
Protocol Buffer
158 lines
4.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package gitks;
|
|
|
|
import "google/protobuf/empty.proto";
|
|
import "oid.proto";
|
|
|
|
// Repository identity used by storage-facing RPCs.
|
|
message RepositoryHeader {
|
|
// Logical storage shard or disk name.
|
|
string storage_name = 1;
|
|
// Path relative to the storage root, usually ending in `.git` for bare repos.
|
|
string relative_path = 2;
|
|
// Optional absolute path for embedded/local deployments.
|
|
string storage_path = 3;
|
|
}
|
|
|
|
message Repository {
|
|
RepositoryHeader header = 1;
|
|
bool bare = 2;
|
|
bool empty = 3;
|
|
ObjectFormat object_format = 4;
|
|
string default_branch = 5;
|
|
string git_object_directory = 6;
|
|
repeated string git_alternate_object_directories = 7;
|
|
}
|
|
|
|
message RepositoryStatistics {
|
|
uint64 size_bytes = 1;
|
|
uint64 loose_object_count = 2;
|
|
uint64 packed_object_count = 3;
|
|
uint64 packfile_count = 4;
|
|
uint64 reference_count = 5;
|
|
uint64 commit_graph_size_bytes = 6;
|
|
uint64 multi_pack_index_size_bytes = 7;
|
|
}
|
|
|
|
message RepositoryConfigEntry {
|
|
string key = 1;
|
|
repeated string values = 2;
|
|
}
|
|
|
|
message RepositoryObjectFormatRequest {
|
|
RepositoryHeader repository = 1;
|
|
}
|
|
|
|
message RepositoryObjectFormatResponse {
|
|
ObjectFormat object_format = 1;
|
|
}
|
|
|
|
message GetRepositoryRequest {
|
|
RepositoryHeader repository = 1;
|
|
}
|
|
|
|
message InitRepositoryRequest {
|
|
RepositoryHeader repository = 1;
|
|
bool bare = 2;
|
|
ObjectFormat object_format = 3;
|
|
string initial_branch = 4;
|
|
}
|
|
|
|
message DeleteRepositoryRequest {
|
|
RepositoryHeader repository = 1;
|
|
}
|
|
|
|
message RepositoryExistsRequest {
|
|
RepositoryHeader repository = 1;
|
|
}
|
|
|
|
message RepositoryExistsResponse {
|
|
bool exists = 1;
|
|
}
|
|
|
|
message GetDefaultBranchRequest {
|
|
RepositoryHeader repository = 1;
|
|
}
|
|
|
|
message GetDefaultBranchResponse {
|
|
string name = 1;
|
|
}
|
|
|
|
message SetDefaultBranchRequest {
|
|
RepositoryHeader repository = 1;
|
|
string name = 2;
|
|
}
|
|
|
|
message GetRepositoryConfigRequest {
|
|
RepositoryHeader repository = 1;
|
|
repeated string keys = 2;
|
|
}
|
|
|
|
message GetRepositoryConfigResponse {
|
|
repeated RepositoryConfigEntry entries = 1;
|
|
}
|
|
|
|
message SetRepositoryConfigRequest {
|
|
RepositoryHeader repository = 1;
|
|
repeated RepositoryConfigEntry entries = 2;
|
|
}
|
|
|
|
message RepositoryStatisticsRequest {
|
|
RepositoryHeader repository = 1;
|
|
}
|
|
|
|
message RepositoryHealthRequest {
|
|
RepositoryHeader repository = 1;
|
|
bool connectivity_only = 2;
|
|
}
|
|
|
|
message RepositoryHealthResponse {
|
|
bool ok = 1;
|
|
repeated string warnings = 2;
|
|
repeated string errors = 3;
|
|
RepositoryStatistics statistics = 4;
|
|
}
|
|
|
|
message GarbageCollectRequest {
|
|
RepositoryHeader repository = 1;
|
|
bool prune = 2;
|
|
bool aggressive = 3;
|
|
}
|
|
|
|
message RepackRequest {
|
|
RepositoryHeader repository = 1;
|
|
bool full = 2;
|
|
bool write_bitmaps = 3;
|
|
bool write_multi_pack_index = 4;
|
|
}
|
|
|
|
message WriteCommitGraphRequest {
|
|
RepositoryHeader repository = 1;
|
|
bool replace = 2;
|
|
bool split = 3;
|
|
}
|
|
|
|
message RepositoryMaintenanceResponse {
|
|
bool ok = 1;
|
|
string stdout = 2;
|
|
string stderr = 3;
|
|
}
|
|
|
|
service RepositoryService {
|
|
rpc GetRepository(GetRepositoryRequest) returns (Repository);
|
|
rpc InitRepository(InitRepositoryRequest) returns (Repository);
|
|
rpc DeleteRepository(DeleteRepositoryRequest) returns (google.protobuf.Empty);
|
|
rpc RepositoryExists(RepositoryExistsRequest) returns (RepositoryExistsResponse);
|
|
rpc GetObjectFormat(RepositoryObjectFormatRequest) returns (RepositoryObjectFormatResponse);
|
|
rpc GetDefaultBranch(GetDefaultBranchRequest) returns (GetDefaultBranchResponse);
|
|
rpc SetDefaultBranch(SetDefaultBranchRequest) returns (google.protobuf.Empty);
|
|
rpc GetRepositoryConfig(GetRepositoryConfigRequest) returns (GetRepositoryConfigResponse);
|
|
rpc SetRepositoryConfig(SetRepositoryConfigRequest) returns (google.protobuf.Empty);
|
|
rpc GetRepositoryStatistics(RepositoryStatisticsRequest) returns (RepositoryStatistics);
|
|
rpc CheckRepositoryHealth(RepositoryHealthRequest) returns (RepositoryHealthResponse);
|
|
rpc GarbageCollect(GarbageCollectRequest) returns (RepositoryMaintenanceResponse);
|
|
rpc Repack(RepackRequest) returns (RepositoryMaintenanceResponse);
|
|
rpc WriteCommitGraph(WriteCommitGraphRequest) returns (RepositoryMaintenanceResponse);
|
|
}
|