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 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
|
syntax = "proto3";
package testproto;
import "lint.proto";
import "shared.proto";
option go_package = "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb/testproto";
message InvalidMethodRequest {
}
message InvalidMethodRequestWithRepo {
gitaly.Repository destination = 1 [(gitaly.target_repository)=true];
}
message InvalidTargetType {
int32 wrong_type = 1 [(gitaly.target_repository)=true];
}
message InvalidMethodResponse{
}
message InvalidNestedRequest{
InvalidTargetType inner_message = 1;
}
message RequestWithStorage {
string storage_name = 1 [(gitaly.storage)=true];
gitaly.Repository destination = 2;
}
message RequestWithStorageAndRepo {
string storage_name = 1 [(gitaly.storage)=true];
gitaly.Repository destination = 2 [(gitaly.target_repository)=true];
}
message RequestWithNestedStorageAndRepo{
RequestWithStorageAndRepo inner_message = 1;
}
message RequestWithMultipleNestedStorage{
RequestWithStorage inner_message = 1;
string storage_name = 2 [(gitaly.storage)=true];
}
message RequestWithInnerNestedStorage {
message Header {
string storage_name = 1 [(gitaly.storage) = true];
}
Header header = 1;
}
message RequestWithWrongTypeRepository {
message Header {
InvalidMethodResponse repository = 1 [(gitaly.repository) = true];
}
Header header = 1 [(gitaly.target_repository) = true];
}
message RequestWithNestedRepoNotFlagged {
message Header {
gitaly.Repository repository = 1;
}
Header header = 1 [(gitaly.target_repository) = true];
}
service InterceptedWithOperationType {
option (gitaly.intercepted) = true;
// intercepted services can't have operation type annotations.
rpc InvalidMethod(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: ACCESSOR
};
}
}
service InvalidService {
// should fail if op_type extension is missing
rpc InvalidMethod0(InvalidMethodRequest) returns (InvalidMethodResponse) {}
// should fail if op type is unknown
rpc InvalidMethod1(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = UNKNOWN;
}
// should fail if target repo is not provided for accessor
rpc InvalidMethod2(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: ACCESSOR
};
}
// should fail if missing either target repo or non-repo-scope for mutator
rpc InvalidMethod4(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MUTATOR;
}
// should fail if repository is not of type Repository
rpc InvalidMethod5(RequestWithWrongTypeRepository) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MUTATOR;
}
// should fail if nested repository isn't flagged
rpc InvalidMethod6(RequestWithNestedRepoNotFlagged) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MUTATOR;
}
// should fail if target field type is not of type Repository
rpc InvalidMethod7(InvalidTargetType) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MUTATOR
};
}
// should fail if nested target field type is not of type Repository
rpc InvalidMethod8(InvalidNestedRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MUTATOR
};
}
// should fail if target repo is specified for storage scoped RPC
rpc InvalidMethod9(InvalidMethodRequestWithRepo) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MUTATOR
scope_level: STORAGE
};
}
// should fail if storage is specified for implicit repository scoped RPC
rpc InvalidMethod10(RequestWithStorageAndRepo) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: ACCESSOR
};
}
// should fail if storage is specified for repository scoped RPC
rpc InvalidMethod11(RequestWithNestedStorageAndRepo) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MUTATOR
scope_level: REPOSITORY
};
}
// should fail if storage isn't specified for storage scoped RPC
rpc InvalidMethod13(InvalidTargetType) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MUTATOR
scope_level: STORAGE
};
}
// should fail if multiple storage is specified for storage scoped RPC
rpc InvalidMethod14(RequestWithMultipleNestedStorage) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MUTATOR
scope_level: STORAGE
};
}
// Intercepted methods must not have operation type annotations.
rpc InvalidMethod15(RequestWithStorageAndRepo) returns (InvalidMethodResponse) {
option (gitaly.intercepted_method) = true;
option (gitaly.op_type) = {};
};
rpc MaintenanceWithMissingRepository(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MAINTENANCE;
}
rpc MaintenanceWithUnflaggedRepository(RequestWithNestedRepoNotFlagged) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MAINTENANCE;
}
rpc MaintenanceWithWrongNestedRepositoryType(RequestWithWrongTypeRepository) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MAINTENANCE;
}
rpc MaintenanceWithInvalidTargetType(InvalidTargetType) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MAINTENANCE
};
}
rpc MaintenanceWithInvalidNestedRequest(InvalidNestedRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MAINTENANCE
};
}
rpc MaintenanceWithStorageAndRepository(RequestWithStorageAndRepo) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MAINTENANCE
scope_level: REPOSITORY
};
}
rpc MaintenanceWithNestedStorageAndRepository(RequestWithNestedStorageAndRepo) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MAINTENANCE
scope_level: REPOSITORY
};
}
rpc MaintenanceWithStorageScope(InvalidMethodRequestWithRepo) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: MAINTENANCE
scope_level: STORAGE
};
}
}
|