Welcome to mirror list, hosted at ThFree Co, Russian Federation.

shared.proto « proto - gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 978b85040f5dc8aa9d77a5e060d935026390156c (plain)
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
syntax = "proto3";

package gitaly;

option go_package = "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb";

import "google/protobuf/timestamp.proto";
import "lint.proto";

enum ObjectType {
  UNKNOWN = 0;
  COMMIT = 1;
  BLOB = 2;
  TREE = 3;
  TAG = 4;
}

enum SignatureType {
  NONE = 0;
  PGP = 1;
  X509 = 2;
  // maybe add X509+TSA or other combinations at a later step
}

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;
}

// A single Git trailer (https://git-scm.com/docs/git-interpret-trailers)
// key-value pair.
message CommitTrailer {
  // The key of the trailer, such as `Signed-off-by`.
  bytes key = 1;
  // The value of the trailer, such as `Alice <alice@gmail.com>`.
  bytes value = 2;
}

// 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;
  SignatureType signature_type = 8;

  // The tree ID will always be filled, even if the tree is empty. In that case
  // the value will be `4b825dc642cb6eb9a060e54bf8d69288fbee4904`.
  // That value is equivalent to `git hash-object -t tree /dev/null`
  string tree_id = 9;
  // The list of Git trailers (https://git-scm.com/docs/git-interpret-trailers)
  // found in this commit's message. The number of trailers and their key/value
  // sizes are limited. If a trailer exceeds these size limits, it and any
  // trailers that follow it are not included.
  repeated CommitTrailer trailers = 10;
}

message CommitAuthor {
  bytes name = 1;
  bytes email = 2;
  google.protobuf.Timestamp date = 3;
  bytes timezone = 4;
}

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;
  SignatureType signature_type = 7;
}

message User {
  string gl_id = 1;
  bytes name = 2;
  bytes email = 3;
  string gl_username = 4;
  // Timezone is the timezone as configured by the user in the web interface. This
  // timezone may be used when new commits are created via RPC calls.
  string timezone = 5;
}

message ObjectPool {
  Repository repository = 1 [(gitaly.repository)=true];
}

message PaginationParameter {
	// Instructs pagination to start sending results after the provided page
	// token appears. A page token allows for a generic pattern to uniquely
	// identify a result or 'page'. Each paginated RPC may interpret a page
	// token differently.
	string page_token = 1;
	// When fully consuming the response the client will receive _at most_
	// `limit` number of resulting objects. Note that the number of response
	// messages might be much lower, as some response messages already send
	// multiple objects per message.
	// When the limit is smaller than 0, it will be normalized to 2147483647
	// on the server side. When limit is not set, it defaults to 0, and no
	// results are send in the response.
	int32 limit = 2;
}

message PaginationCursor {
  // To the caller, this is an opaque token to indicate what the caller
  // should present as a page_token to get subsequent results.
  string next_cursor = 1;
}

// https://git-scm.com/docs/git/#_options
message GlobalOptions {
    // Treat pathspecs literally (i.e. no globbing, no pathspec magic)
    bool literal_pathspecs = 1;
}

// SortDirection defines the sort direction.
enum SortDirection {
  // ASCENDING sorts by the sort key in ascending order.
  ASCENDING = 0;
  // DESCENDING sorts by the sort key in descending order.
  DESCENDING = 1;
}