drone/gitrpc/proto/repo.proto

263 lines
5.5 KiB
Protocol Buffer

syntax = "proto3";
package rpc;
option go_package = "github.com/harness/gitness/gitrpc/rpc";
import "shared.proto";
// RepositoryService is a service providing RPCs accessing repositories as a whole.
service RepositoryService {
rpc CreateRepository(stream CreateRepositoryRequest) returns (CreateRepositoryResponse);
rpc GetTreeNode(GetTreeNodeRequest) returns (GetTreeNodeResponse);
rpc ListTreeNodes(ListTreeNodesRequest) returns (stream ListTreeNodesResponse);
rpc PathsDetails(PathsDetailsRequest) returns (PathsDetailsResponse);
rpc GetSubmodule(GetSubmoduleRequest) returns (GetSubmoduleResponse);
rpc GetBlob(GetBlobRequest) returns (stream GetBlobResponse);
rpc ListCommits(ListCommitsRequest) returns (stream ListCommitsResponse);
rpc GetCommit(GetCommitRequest) returns (GetCommitResponse);
rpc GetCommitDivergences(GetCommitDivergencesRequest) returns (GetCommitDivergencesResponse);
rpc DeleteRepository(DeleteRepositoryRequest) returns (DeleteRepositoryResponse);
rpc SyncRepository(SyncRepositoryRequest) returns (SyncRepositoryResponse) {}
rpc HashRepository(HashRepositoryRequest) returns (HashRepositoryResponse) {}
rpc MergeBase(MergeBaseRequest) returns (MergeBaseResponse);
rpc MatchFiles(MatchFilesRequest) returns (MatchFilesResponse);
rpc GeneratePipeline(GeneratePipelineRequest) returns (GeneratePipelineResponse);
}
message CreateRepositoryRequest {
oneof data {
CreateRepositoryRequestHeader header = 1;
FileUpload file = 2;
}
}
message CreateRepositoryRequestHeader {
WriteRequest base = 1;
string default_branch = 2;
Identity author = 3;
int64 authorDate = 4;
Identity committer = 5;
int64 committerDate = 6;
}
message CreateRepositoryResponse { }
message GetTreeNodeRequest {
ReadRequest base = 1;
string git_ref = 2;
string path = 3;
bool include_latest_commit = 4;
}
message GetTreeNodeResponse {
TreeNode node = 1;
Commit commit = 2;
}
message ListTreeNodesRequest {
ReadRequest base = 1;
string git_ref = 2;
string path = 3;
}
message ListTreeNodesResponse {
TreeNode node = 1;
}
message TreeNode {
TreeNodeType type = 1;
TreeNodeMode mode = 2;
string sha = 3;
string name = 4;
string path = 5;
}
enum TreeNodeType {
TreeNodeTypeTree = 0;
TreeNodeTypeBlob = 1;
TreeNodeTypeCommit = 2;
}
enum TreeNodeMode {
TreeNodeModeFile = 0;
TreeNodeModeSymlink = 1;
TreeNodeModeExec = 2;
TreeNodeModeTree = 3;
TreeNodeModeCommit = 4;
}
message PathsDetailsRequest {
ReadRequest base = 1;
string git_ref = 2;
repeated string paths = 3;
}
message PathsDetailsResponse {
repeated PathDetails path_details = 1;
}
message PathDetails {
string path = 1;
Commit last_commit = 2;
int64 size = 3;
}
message GetCommitRequest {
ReadRequest base = 1;
string sha = 2;
}
message GetCommitResponse {
Commit commit = 1;
}
message ListCommitsRequest {
ReadRequest base = 1;
string git_ref = 2;
string after = 3;
int32 page = 4;
int32 limit = 5;
string path = 6;
int64 since = 7;
int64 until = 8;
string committer = 9;
}
message ListCommitsResponse {
Commit commit = 1;
repeated RenameDetails rename_details = 2;
}
message RenameDetails{
string old_path = 1;
string new_path = 2;
string commit_sha_before = 3;
string commit_sha_after = 4;
}
message GetBlobRequest {
ReadRequest base = 1;
string sha = 2;
int64 size_limit = 3;
}
message GetBlobResponse {
oneof data {
GetBlobResponseHeader header = 1;
bytes content = 2;
}
}
message GetBlobResponseHeader {
string sha = 1;
int64 size = 2;
int64 content_size = 3;
}
message GetSubmoduleRequest {
ReadRequest base = 1;
string git_ref = 2;
string path = 3;
}
message GetSubmoduleResponse {
Submodule submodule = 1;
}
message Submodule {
string name = 1;
string url = 2;
}
message GetCommitDivergencesRequest {
ReadRequest base = 1;
int32 max_count = 2;
repeated CommitDivergenceRequest requests = 3;
}
message CommitDivergenceRequest {
string from = 1;
string to = 2;
}
message GetCommitDivergencesResponse {
repeated CommitDivergence divergences = 1;
}
message CommitDivergence {
int32 ahead = 1;
int32 behind = 2;
}
message DeleteRepositoryRequest {
WriteRequest base = 1;
}
message DeleteRepositoryResponse {
}
message SyncRepositoryRequest {
WriteRequest base = 1;
string source = 2;
bool create_if_not_exists = 3;
}
message SyncRepositoryResponse {
string default_branch = 1;
}
enum HashType {
HashTypeSHA256 = 0;
}
enum HashAggregationType {
HashAggregationTypeXOR = 0;
}
message HashRepositoryRequest {
ReadRequest base = 1;
HashType hash_type = 2;
HashAggregationType aggregation_type = 3;
}
message HashRepositoryResponse {
bytes hash = 1;
}
message MergeBaseRequest {
ReadRequest base = 1;
string ref1 = 2;
string ref2 = 3;
}
message MergeBaseResponse {
string merge_base_sha = 1;
}
message FileContent {
string path = 1;
bytes content = 2;
}
message MatchFilesRequest {
ReadRequest base = 1;
string ref = 2;
string dir_path = 3;
string pattern = 4;
int32 max_size = 5;
}
message MatchFilesResponse {
repeated FileContent files = 1;
}
message GeneratePipelineRequest {
ReadRequest base = 1;
}
message GeneratePipelineResponse {
bytes pipeline_yaml = 1;
}