blob: 0071d814be6cca28861f3108e1a0d7ee582945e0 (
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
|
syntax = "proto3";
package gitaly;
option go_package = "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb";
import "shared.proto";
service BlobService {
// GetBlob returns the contents of a blob object referenced by its object
// ID. We use a stream to return a chunked arbitrarily large binary
// response
rpc GetBlob(GetBlobRequest) returns (stream GetBlobResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc GetBlobs(GetBlobsRequest) returns (stream GetBlobsResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc GetLFSPointers(GetLFSPointersRequest) returns (stream GetLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc GetNewLFSPointers(GetNewLFSPointersRequest) returns (stream GetNewLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
rpc GetAllLFSPointers(GetAllLFSPointersRequest) returns (stream GetAllLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
}
message GetBlobRequest {
Repository repository = 1[(target_repository)=true];
// Object ID (SHA1) of the blob we want to get
string oid = 2;
// Maximum number of bytes we want to receive. Use '-1' to get the full blob no matter how big.
int64 limit = 3;
}
message GetBlobResponse {
// Blob size; present only in first response message
int64 size = 1;
// Chunk of blob data
bytes data = 2;
// Object ID of the actual blob returned. Empty if no blob was found.
string oid = 3;
}
message GetBlobsRequest {
message RevisionPath {
string revision = 1;
bytes path = 2;
}
Repository repository = 1[(target_repository)=true];
// Revision/Path pairs of the blobs we want to get.
repeated RevisionPath revision_paths = 2;
// Maximum number of bytes we want to receive. Use '-1' to get the full blobs no matter how big.
int64 limit = 3;
}
message GetBlobsResponse {
// Blob size; present only on the first message per blob
int64 size = 1;
// Chunk of blob data, could span over multiple messages.
bytes data = 2;
// Object ID of the current blob. Only present on the first message per blob. Empty if no blob was found.
string oid = 3;
bool is_submodule = 4;
int32 mode = 5;
string revision = 6;
bytes path = 7;
ObjectType type = 8;
}
message LFSPointer {
int64 size = 1;
bytes data = 2;
string oid = 3;
}
message NewBlobObject {
int64 size = 1;
string oid = 2;
bytes path = 3;
}
message GetLFSPointersRequest {
Repository repository = 1[(target_repository)=true];
repeated string blob_ids = 2;
}
message GetLFSPointersResponse {
repeated LFSPointer lfs_pointers = 1;
}
message GetNewLFSPointersRequest {
Repository repository = 1[(target_repository)=true];
bytes revision = 2;
int32 limit = 3;
// Note: When `not_in_all` is true, `not_in_refs` is ignored
bool not_in_all = 4;
repeated bytes not_in_refs = 5;
}
message GetNewLFSPointersResponse {
repeated LFSPointer lfs_pointers = 1;
}
message GetAllLFSPointersRequest {
Repository repository = 1[(target_repository)=true];
reserved 2;
}
message GetAllLFSPointersResponse {
repeated LFSPointer lfs_pointers = 1;
}
|