drone/gitrpc/proto/repo.proto
Enver Bisevac 578dd13d8d [maint] eb/gitrpc refactor (#51)
* pull/push impl done

* Basic auth for harness

* gitrpc as top level package

* New ctor for package

* gitrpcserver instead of server2
2022-11-03 13:17:03 +01:00

203 lines
4.0 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);
rpc ListBranches(ListBranchesRequest) returns (stream ListBranchesResponse);
rpc ListCommitTags(ListCommitTagsRequest) returns (stream ListCommitTagsResponse);
}
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 ListBranchesRequest {
enum SortOption {
Default = 0;
Name = 1;
Date = 2;
}
string repo_uid = 1;
bool include_commit = 2;
string query = 3;
SortOption sort = 4;
SortOrder order = 5;
int32 page = 6;
int32 pageSize = 7;
}
message ListBranchesResponse {
Branch branch = 1;
}
message Branch {
string name = 1;
string sha = 2;
Commit commit = 3;
}
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;
}
message ListCommitTagsRequest {
enum SortOption {
Default = 0;
Name = 1;
Date = 2;
}
string repo_uid = 1;
bool include_commit = 2;
string query = 3;
SortOption sort = 4;
SortOrder order = 5;
int32 page = 6;
int32 pageSize = 7;
}
message ListCommitTagsResponse {
CommitTag tag = 1;
}
message CommitTag {
string name = 1;
string sha = 2;
bool is_annotated = 3;
string title = 4;
string message = 5;
Signature tagger = 6;
Commit commit = 7;
}
message Commit {
string sha = 1;
string title = 2;
string message = 3;
Signature author = 4;
Signature committer = 5;
}
message Signature {
Identity identity = 1;
int64 when = 2;
}
message Identity {
string name = 1;
string email = 2;
}