blob: 76c4170266121696426b186b0c4226db653516ef (
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
|
syntax = "proto3";
package gitaly;
option go_package = "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb";
import "lint.proto";
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;
}
|