mirror of https://github.com/harness/drone.git
263 lines
5.5 KiB
Protocol Buffer
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;
|
|
}
|