1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
syntax = "proto3";
package gitaly;
option go_package = "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb";
import "google/protobuf/timestamp.proto";
import "google/protobuf/descriptor.proto";
message OperationMsg {
enum Operation {
UNKNOWN = 0;
MUTATOR = 1;
ACCESSOR = 2;
}
Operation op = 1;
enum Scope {
REPOSITORY = 0;
SERVER = 1;
}
// Scope level indicates how a mutating RPC affects Gitaly:
// - REPOSITORY: mutation is scoped to only a single repo
// - SERVER: mutation affects the entire server and potentially all repos
Scope scope_level = 2;
// If this operation modifies a repository, this field will
// specify the location of the Repository field within the
// request message. The field is specified in an OID style
// formatted string.
//
// For example, if the target repository is at the top level
// of a message at field 1, then the string will be "1"
//
// If the target repository is nested deeper in the message,
// then it will be necessary to specify a nested OID string.
//
// For example, the following OID refers to a target repo field
// nested in a one-of field, both at field one: "1.1"
string target_repository_field = 3;
}
enum ObjectType {
UNKNOWN = 0;
COMMIT = 1;
BLOB = 2;
TREE = 3;
TAG = 4;
}
extend google.protobuf.MethodOptions {
// Random high number..
OperationMsg op_type = 82303;
}
message Repository {
// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/151
reserved 1;
reserved "path";
string storage_name = 2;
string relative_path = 3;
// Sets the GIT_OBJECT_DIRECTORY envvar on git commands to the value of this field.
// It influences the object storage directory the SHA1 directories are created underneath.
string git_object_directory = 4;
// Sets the GIT_ALTERNATE_OBJECT_DIRECTORIES envvar on git commands to the values of this field.
// It influences the list of Git object directories which can be used to search for Git objects.
repeated string git_alternate_object_directories = 5;
// Used in callbacks to GitLab so that it knows what repository the event is
// associated with. May be left empty on RPC's that do not perform callbacks.
// During project creation, `gl_repository` may not be known.
string gl_repository = 6;
reserved 7;
// The human-readable GitLab project path (e.g. gitlab-org/gitlab-ce).
// When hashed storage is use, this associates a project path with its
// path on disk. The name can change over time (e.g. when a project is
// renamed). This is primarily used for logging/debugging at the
// moment.
string gl_project_path = 8;
}
// Corresponds to Gitlab::Git::Commit
message GitCommit {
string id = 1;
bytes subject = 2;
bytes body = 3;
CommitAuthor author = 4;
CommitAuthor committer = 5;
repeated string parent_ids = 6;
// If body exceeds a certain threshold, it will be nullified,
// but its size will be set in body_size so we can know if
// a commit had a body in the first place.
int64 body_size = 7;
}
message CommitAuthor {
bytes name = 1;
bytes email = 2;
google.protobuf.Timestamp date = 3;
}
message ExitStatus {
int32 value = 1;
}
// Corresponds to Gitlab::Git::Branch
message Branch {
bytes name = 1;
GitCommit target_commit = 2;
}
message Tag {
bytes name = 1;
string id = 2;
GitCommit target_commit = 3;
// If message exceeds a certain threshold, it will be nullified,
// but its size will be set in message_size so we can know if
// a tag had a message in the first place.
bytes message = 4;
int64 message_size = 5;
CommitAuthor tagger = 6;
}
message User {
string gl_id = 1;
bytes name = 2;
bytes email = 3;
string gl_username = 4;
}
message ObjectPool {
Repository repository = 1;
}
|