drone/gitrpc/proto/repo.proto
Johannes Batzill c55c53deab [API] Add Create + Delete Branch API (+ Basic GIT Error Propagation) (#70)
This change adds the following:
- create / delete branch
- basic error propagation from git to user (notfound, conflict, invalidinput)
- create repo root folder in server instead of service constructor
2022-11-10 20:57:31 -08:00

126 lines
2.6 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 GetSubmodule(GetSubmoduleRequest) returns (GetSubmoduleResponse);
rpc GetBlob(GetBlobRequest) returns (GetBlobResponse);
rpc ListCommits(ListCommitsRequest) returns (stream ListCommitsResponse);
}
message CreateRepositoryRequest {
oneof data {
CreateRepositoryRequestHeader header = 1;
FileUpload file = 2;
}
}
message CreateRepositoryRequestHeader {
string uid = 1;
string default_branch = 2;
}
message CreateRepositoryResponse { }
message GetTreeNodeRequest {
string repo_uid = 1;
string git_ref = 2;
string path = 3;
bool include_latest_commit = 4;
}
message GetTreeNodeResponse {
TreeNode node = 1;
Commit commit = 2;
}
message ListTreeNodesRequest {
string repo_uid = 1;
string git_ref = 2;
string path = 3;
bool include_latest_commit = 4;
bool recursive = 5;
}
message ListTreeNodesResponse {
TreeNode node = 1;
Commit commit = 2;
}
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 ListCommitsRequest {
string repo_uid = 1;
string git_ref = 2;
int32 page = 3;
int32 pageSize = 4;
}
message ListCommitsResponse {
oneof data {
ListCommitsResponseHeader header = 1;
Commit commit = 2;
}
}
message ListCommitsResponseHeader {
int64 total_count = 1;
}
message GetBlobRequest {
string repo_uid = 1;
string sha = 2;
int64 sizeLimit = 3;
}
message GetBlobResponse {
Blob blob = 1;
}
message Blob {
string sha = 1;
int64 size = 2;
bytes content = 3;
}
message GetSubmoduleRequest {
string repo_uid = 1;
string git_ref = 2;
string path = 3;
}
message GetSubmoduleResponse {
Submodule submodule = 1;
}
message Submodule {
string name = 1;
string url = 2;
}