File: shared.proto

package info (click to toggle)
golang-gitaly-proto 1.37.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid
  • size: 372 kB
  • sloc: ruby: 216; makefile: 93
file content (135 lines) | stat: -rw-r--r-- 3,799 bytes parent folder | download | duplicates (2)
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;
}