gitdataai/lib/git/proto/commit.proto
2026-05-30 01:38:40 +08:00

183 lines
4.0 KiB
Protocol Buffer

syntax = "proto3";
package git.v1;
import "common.proto";
// Mirrors: cmd/commit/mod.rs — CommitMeta
message CommitMeta {
ObjectId oid = 1;
string message = 2;
string summary = 3;
CommitSignature author = 4;
CommitSignature committer = 5;
ObjectId tree_id = 6;
repeated ObjectId parent_ids = 7;
optional string encoding = 8;
}
// Mirrors: cmd/commit/mod.rs — CommitRefInfo
message CommitRefInfo {
string name = 1;
ObjectId target = 2;
bool is_remote = 3;
bool is_tag = 4;
}
// Mirrors: cmd/commit/commit_summary.rs — CommitSummary
message CommitSummary {
optional CommitMeta head = 1;
uint64 count = 2;
}
// Mirrors: cmd/commit/commit_walker.rs — CommitWalkSort
enum CommitWalkSort {
COMMIT_WALK_SORT_NONE = 0;
COMMIT_WALK_SORT_TOPOLOGICAL = 1;
COMMIT_WALK_SORT_TIME = 2;
COMMIT_WALK_SORT_REVERSE = 3;
}
// Mirrors: cmd/commit/commit_walker.rs — CommitWalkParams
message CommitWalkParams {
repeated ObjectId start_oids = 1;
repeated ObjectId hide_oids = 2;
optional uint64 limit = 3;
uint64 skip = 4;
bool first_parent = 5;
CommitWalkSort sort = 6;
}
// Mirrors: cmd/commit/commit_cherry_pick.rs — CommitCherryPickParams
message CommitCherryPickParams {
ObjectId cherrypick_oid = 1;
CommitSignature author = 2;
CommitSignature committer = 3;
optional string message = 4;
uint32 mainline = 5;
optional string update_ref = 6;
}
// Mirrors: cmd/commit/commit_cherry_pick.rs — CommitCherryPickSequence
message CommitCherryPickSequence {
repeated ObjectId cherrypick_oids = 1;
CommitSignature author = 2;
CommitSignature committer = 3;
optional string update_ref = 4;
}
message CommitInfoRequest {
string repo_id = 1;
ObjectId oid = 2;
}
message CommitInfoResponse {
CommitMeta commit = 1;
}
message CommitHistoryRequest {
string repo_id = 1;
uint64 limit = 2;
uint64 skip = 3;
CommitWalkSort sort = 4;
optional string branch = 5;
}
message CommitHistoryResponse {
repeated CommitMeta commits = 1;
}
message CommitSummaryRequest {
string repo_id = 1;
}
message CommitSummaryResponse {
CommitSummary summary = 1;
}
message CommitWalkRequest {
string repo_id = 1;
CommitWalkParams params = 2;
}
message CommitWalkResponse {
repeated CommitMeta commits = 1;
}
message CommitRefsRequest {
string repo_id = 1;
}
message CommitRefsResponse {
repeated CommitRefInfo refs = 1;
}
message CommitPrefixRequest {
string repo_id = 1;
string prefix = 2;
}
message CommitPrefixResponse {
ObjectId oid = 1;
}
message CommitExistsRequest {
string repo_id = 1;
ObjectId oid = 2;
}
message CommitExistsResponse {
bool exists = 1;
}
message CherryPickRequest {
string repo_id = 1;
CommitCherryPickParams params = 2;
}
message CherryPickResponse {
ObjectId oid = 1;
}
message CherryPickSequenceRequest {
string repo_id = 1;
CommitCherryPickSequence params = 2;
}
message CherryPickSequenceResponse {
ObjectId oid = 1;
}
message FileChange {
string path = 1;
bytes content = 2;
}
message CreateCommitRequest {
string repo_id = 1;
string branch = 2;
string message = 3;
string author_name = 4;
string author_email = 5;
string committer_name = 6;
string committer_email = 7;
repeated FileChange files = 8;
}
message CreateCommitResponse {
ObjectId oid = 1;
}
service CommitService {
rpc CommitInfo(CommitInfoRequest) returns (CommitInfoResponse);
rpc CommitHistory(CommitHistoryRequest) returns (CommitHistoryResponse);
rpc CommitHistoryStream(CommitHistoryRequest) returns (stream CommitMeta);
rpc CommitSummary(CommitSummaryRequest) returns (CommitSummaryResponse);
rpc CommitWalk(CommitWalkRequest) returns (CommitWalkResponse);
rpc CommitRefs(CommitRefsRequest) returns (CommitRefsResponse);
rpc CommitPrefix(CommitPrefixRequest) returns (CommitPrefixResponse);
rpc CommitExists(CommitExistsRequest) returns (CommitExistsResponse);
rpc CherryPick(CherryPickRequest) returns (CherryPickResponse);
rpc CherryPickSequence(CherryPickSequenceRequest) returns (CherryPickSequenceResponse);
rpc CreateCommit(CreateCommitRequest) returns (CreateCommitResponse);
}