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

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2022-03-01 14:35:34 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-03-01 14:35:34 +0300
commit009119976f6862362605744a1cefe43080dd7670 (patch)
treeb66581dcd0e658c08e07df3bf6a7c020fb53d880
parentb59babab5083c9441aa75ad0970b39a536f4493c (diff)
proto: Add structured error types for UserSquash RPC
We're about to introduce support for structured errors in the UserSquash RPC. We cannot roll out this change even with a feature flag though because some of our testing infrastructure will always test code with all feature flags enabled. We thus have to land the protobuf changes independently such that we can adjust downstream callers. This commit introduces these changes by creating a new UserSquashError Protobuf message which contains all potential structured errors we want to return from the UserSquash RPC. Changelog: added
-rw-r--r--proto/errors.proto16
-rw-r--r--proto/go/gitalypb/errors.pb.go170
-rw-r--r--proto/go/gitalypb/operations.pb.go658
-rw-r--r--proto/go/gitalypb/operations_grpc.pb.go12
-rw-r--r--proto/operations.proto19
-rw-r--r--ruby/proto/gitaly/errors_pb.rb8
-rw-r--r--ruby/proto/gitaly/operations_pb.rb7
-rw-r--r--ruby/proto/gitaly/operations_services_pb.rb6
8 files changed, 605 insertions, 291 deletions
diff --git a/proto/errors.proto b/proto/errors.proto
index 241c2cb90..8e0b2298b 100644
--- a/proto/errors.proto
+++ b/proto/errors.proto
@@ -17,6 +17,15 @@ message AccessCheckError {
bytes changes = 4;
}
+// MergeConflictError is an error returned in the case when merging two commits
+// fails due to a merge conflict.
+message MergeConflictError {
+ // ConflictingFiles is the set of files which have been conflicting. If this
+ // field is empty, then there has still been a merge conflict, but it wasn't
+ // able to determine which files have been conflicting.
+ repeated bytes conflicting_files = 1;
+}
+
// ReferenceUpdateError is an error returned when updating a reference has
// failed.
message ReferenceUpdateError {
@@ -27,3 +36,10 @@ message ReferenceUpdateError {
// NewOid is the object ID the reference should have pointed to after the update.
string new_oid = 3;
}
+
+// ResolveRevisionError is an error returned when resolving a specific revision
+// has failed.
+message ResolveRevisionError {
+ // Revision is the name of the revision that was tried to be resolved.
+ bytes revision = 1;
+}
diff --git a/proto/go/gitalypb/errors.pb.go b/proto/go/gitalypb/errors.pb.go
index ca218b99a..a228353dc 100644
--- a/proto/go/gitalypb/errors.pb.go
+++ b/proto/go/gitalypb/errors.pb.go
@@ -97,6 +97,58 @@ func (x *AccessCheckError) GetChanges() []byte {
return nil
}
+// MergeConflictError is an error returned in the case when merging two commits
+// fails due to a merge conflict.
+type MergeConflictError struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // ConflictingFiles is the set of files which have been conflicting. If this
+ // field is empty, then there has still been a merge conflict, but it wasn't
+ // able to determine which files have been conflicting.
+ ConflictingFiles [][]byte `protobuf:"bytes,1,rep,name=conflicting_files,json=conflictingFiles,proto3" json:"conflicting_files,omitempty"`
+}
+
+func (x *MergeConflictError) Reset() {
+ *x = MergeConflictError{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_errors_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MergeConflictError) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MergeConflictError) ProtoMessage() {}
+
+func (x *MergeConflictError) ProtoReflect() protoreflect.Message {
+ mi := &file_errors_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MergeConflictError.ProtoReflect.Descriptor instead.
+func (*MergeConflictError) Descriptor() ([]byte, []int) {
+ return file_errors_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *MergeConflictError) GetConflictingFiles() [][]byte {
+ if x != nil {
+ return x.ConflictingFiles
+ }
+ return nil
+}
+
// ReferenceUpdateError is an error returned when updating a reference has
// failed.
type ReferenceUpdateError struct {
@@ -115,7 +167,7 @@ type ReferenceUpdateError struct {
func (x *ReferenceUpdateError) Reset() {
*x = ReferenceUpdateError{}
if protoimpl.UnsafeEnabled {
- mi := &file_errors_proto_msgTypes[1]
+ mi := &file_errors_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -128,7 +180,7 @@ func (x *ReferenceUpdateError) String() string {
func (*ReferenceUpdateError) ProtoMessage() {}
func (x *ReferenceUpdateError) ProtoReflect() protoreflect.Message {
- mi := &file_errors_proto_msgTypes[1]
+ mi := &file_errors_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -141,7 +193,7 @@ func (x *ReferenceUpdateError) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReferenceUpdateError.ProtoReflect.Descriptor instead.
func (*ReferenceUpdateError) Descriptor() ([]byte, []int) {
- return file_errors_proto_rawDescGZIP(), []int{1}
+ return file_errors_proto_rawDescGZIP(), []int{2}
}
func (x *ReferenceUpdateError) GetReferenceName() []byte {
@@ -165,6 +217,56 @@ func (x *ReferenceUpdateError) GetNewOid() string {
return ""
}
+// ResolveRevisionError is an error returned when resolving a specific revision
+// has failed.
+type ResolveRevisionError struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Revision is the name of the revision that was tried to be resolved.
+ Revision []byte `protobuf:"bytes,1,opt,name=revision,proto3" json:"revision,omitempty"`
+}
+
+func (x *ResolveRevisionError) Reset() {
+ *x = ResolveRevisionError{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_errors_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ResolveRevisionError) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ResolveRevisionError) ProtoMessage() {}
+
+func (x *ResolveRevisionError) ProtoReflect() protoreflect.Message {
+ mi := &file_errors_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ResolveRevisionError.ProtoReflect.Descriptor instead.
+func (*ResolveRevisionError) Descriptor() ([]byte, []int) {
+ return file_errors_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ResolveRevisionError) GetRevision() []byte {
+ if x != nil {
+ return x.Revision
+ }
+ return nil
+}
+
var File_errors_proto protoreflect.FileDescriptor
var file_errors_proto_rawDesc = []byte{
@@ -178,17 +280,25 @@ var file_errors_proto_rawDesc = []byte{
0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22,
- 0x6f, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72,
- 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
- 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17,
- 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x6f, 0x6c, 0x64, 0x4f, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x6f,
- 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x4f, 0x69, 0x64,
- 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
- 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
- 0x2f, 0x76, 0x31, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x41, 0x0a, 0x12, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63,
+ 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c,
+ 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c,
+ 0x65, 0x73, 0x22, 0x6f, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65,
+ 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+ 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x6f, 0x6c, 0x64, 0x4f, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65,
+ 0x77, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77,
+ 0x4f, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65,
+ 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x6c, 0x61,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x6f, 0x72, 0x67,
+ 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2f, 0x76, 0x31, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -203,10 +313,12 @@ func file_errors_proto_rawDescGZIP() []byte {
return file_errors_proto_rawDescData
}
-var file_errors_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_errors_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_errors_proto_goTypes = []interface{}{
(*AccessCheckError)(nil), // 0: gitaly.AccessCheckError
- (*ReferenceUpdateError)(nil), // 1: gitaly.ReferenceUpdateError
+ (*MergeConflictError)(nil), // 1: gitaly.MergeConflictError
+ (*ReferenceUpdateError)(nil), // 2: gitaly.ReferenceUpdateError
+ (*ResolveRevisionError)(nil), // 3: gitaly.ResolveRevisionError
}
var file_errors_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
@@ -235,6 +347,18 @@ func file_errors_proto_init() {
}
}
file_errors_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MergeConflictError); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_errors_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReferenceUpdateError); i {
case 0:
return &v.state
@@ -246,6 +370,18 @@ func file_errors_proto_init() {
return nil
}
}
+ file_errors_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ResolveRevisionError); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -253,7 +389,7 @@ func file_errors_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_errors_proto_rawDesc,
NumEnums: 0,
- NumMessages: 2,
+ NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/proto/go/gitalypb/operations.pb.go b/proto/go/gitalypb/operations.pb.go
index 9f2d02ff0..d41088348 100644
--- a/proto/go/gitalypb/operations.pb.go
+++ b/proto/go/gitalypb/operations.pb.go
@@ -2752,6 +2752,92 @@ func (x *UserSquashResponse) GetGitError() string {
return ""
}
+// UserSquashError is an error that may be returned when the UserSquash RPC
+// fails.
+type UserSquashError struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Error:
+ // *UserSquashError_ResolveRevision
+ // *UserSquashError_RebaseConflict
+ Error isUserSquashError_Error `protobuf_oneof:"error"`
+}
+
+func (x *UserSquashError) Reset() {
+ *x = UserSquashError{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_operations_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserSquashError) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserSquashError) ProtoMessage() {}
+
+func (x *UserSquashError) ProtoReflect() protoreflect.Message {
+ mi := &file_operations_proto_msgTypes[31]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserSquashError.ProtoReflect.Descriptor instead.
+func (*UserSquashError) Descriptor() ([]byte, []int) {
+ return file_operations_proto_rawDescGZIP(), []int{31}
+}
+
+func (m *UserSquashError) GetError() isUserSquashError_Error {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (x *UserSquashError) GetResolveRevision() *ResolveRevisionError {
+ if x, ok := x.GetError().(*UserSquashError_ResolveRevision); ok {
+ return x.ResolveRevision
+ }
+ return nil
+}
+
+func (x *UserSquashError) GetRebaseConflict() *MergeConflictError {
+ if x, ok := x.GetError().(*UserSquashError_RebaseConflict); ok {
+ return x.RebaseConflict
+ }
+ return nil
+}
+
+type isUserSquashError_Error interface {
+ isUserSquashError_Error()
+}
+
+type UserSquashError_ResolveRevision struct {
+ // ResolveRevision is returned in case resolving either the start or end
+ // revision has failed.
+ ResolveRevision *ResolveRevisionError `protobuf:"bytes,1,opt,name=resolve_revision,json=resolveRevision,proto3,oneof"`
+}
+
+type UserSquashError_RebaseConflict struct {
+ // RebaseConflict is returned in case rebasing commits on top of the start
+ // commit fails with a merge conflict.
+ RebaseConflict *MergeConflictError `protobuf:"bytes,2,opt,name=rebase_conflict,json=rebaseConflict,proto3,oneof"`
+}
+
+func (*UserSquashError_ResolveRevision) isUserSquashError_Error() {}
+
+func (*UserSquashError_RebaseConflict) isUserSquashError_Error() {}
+
type UserApplyPatchRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -2766,7 +2852,7 @@ type UserApplyPatchRequest struct {
func (x *UserApplyPatchRequest) Reset() {
*x = UserApplyPatchRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_operations_proto_msgTypes[31]
+ mi := &file_operations_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2779,7 +2865,7 @@ func (x *UserApplyPatchRequest) String() string {
func (*UserApplyPatchRequest) ProtoMessage() {}
func (x *UserApplyPatchRequest) ProtoReflect() protoreflect.Message {
- mi := &file_operations_proto_msgTypes[31]
+ mi := &file_operations_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2792,7 +2878,7 @@ func (x *UserApplyPatchRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserApplyPatchRequest.ProtoReflect.Descriptor instead.
func (*UserApplyPatchRequest) Descriptor() ([]byte, []int) {
- return file_operations_proto_rawDescGZIP(), []int{31}
+ return file_operations_proto_rawDescGZIP(), []int{32}
}
func (m *UserApplyPatchRequest) GetUserApplyPatchRequestPayload() isUserApplyPatchRequest_UserApplyPatchRequestPayload {
@@ -2847,7 +2933,7 @@ type UserApplyPatchResponse struct {
func (x *UserApplyPatchResponse) Reset() {
*x = UserApplyPatchResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_operations_proto_msgTypes[32]
+ mi := &file_operations_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2860,7 +2946,7 @@ func (x *UserApplyPatchResponse) String() string {
func (*UserApplyPatchResponse) ProtoMessage() {}
func (x *UserApplyPatchResponse) ProtoReflect() protoreflect.Message {
- mi := &file_operations_proto_msgTypes[32]
+ mi := &file_operations_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2873,7 +2959,7 @@ func (x *UserApplyPatchResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserApplyPatchResponse.ProtoReflect.Descriptor instead.
func (*UserApplyPatchResponse) Descriptor() ([]byte, []int) {
- return file_operations_proto_rawDescGZIP(), []int{32}
+ return file_operations_proto_rawDescGZIP(), []int{33}
}
func (x *UserApplyPatchResponse) GetBranchUpdate() *OperationBranchUpdate {
@@ -2911,7 +2997,7 @@ type UserUpdateSubmoduleRequest struct {
func (x *UserUpdateSubmoduleRequest) Reset() {
*x = UserUpdateSubmoduleRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_operations_proto_msgTypes[33]
+ mi := &file_operations_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2924,7 +3010,7 @@ func (x *UserUpdateSubmoduleRequest) String() string {
func (*UserUpdateSubmoduleRequest) ProtoMessage() {}
func (x *UserUpdateSubmoduleRequest) ProtoReflect() protoreflect.Message {
- mi := &file_operations_proto_msgTypes[33]
+ mi := &file_operations_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2937,7 +3023,7 @@ func (x *UserUpdateSubmoduleRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserUpdateSubmoduleRequest.ProtoReflect.Descriptor instead.
func (*UserUpdateSubmoduleRequest) Descriptor() ([]byte, []int) {
- return file_operations_proto_rawDescGZIP(), []int{33}
+ return file_operations_proto_rawDescGZIP(), []int{34}
}
func (x *UserUpdateSubmoduleRequest) GetRepository() *Repository {
@@ -3006,7 +3092,7 @@ type UserUpdateSubmoduleResponse struct {
func (x *UserUpdateSubmoduleResponse) Reset() {
*x = UserUpdateSubmoduleResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_operations_proto_msgTypes[34]
+ mi := &file_operations_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3019,7 +3105,7 @@ func (x *UserUpdateSubmoduleResponse) String() string {
func (*UserUpdateSubmoduleResponse) ProtoMessage() {}
func (x *UserUpdateSubmoduleResponse) ProtoReflect() protoreflect.Message {
- mi := &file_operations_proto_msgTypes[34]
+ mi := &file_operations_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3032,7 +3118,7 @@ func (x *UserUpdateSubmoduleResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserUpdateSubmoduleResponse.ProtoReflect.Descriptor instead.
func (*UserUpdateSubmoduleResponse) Descriptor() ([]byte, []int) {
- return file_operations_proto_rawDescGZIP(), []int{34}
+ return file_operations_proto_rawDescGZIP(), []int{35}
}
func (x *UserUpdateSubmoduleResponse) GetBranchUpdate() *OperationBranchUpdate {
@@ -3096,7 +3182,7 @@ type UserRebaseConfirmableRequest_Header struct {
func (x *UserRebaseConfirmableRequest_Header) Reset() {
*x = UserRebaseConfirmableRequest_Header{}
if protoimpl.UnsafeEnabled {
- mi := &file_operations_proto_msgTypes[35]
+ mi := &file_operations_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3109,7 +3195,7 @@ func (x *UserRebaseConfirmableRequest_Header) String() string {
func (*UserRebaseConfirmableRequest_Header) ProtoMessage() {}
func (x *UserRebaseConfirmableRequest_Header) ProtoReflect() protoreflect.Message {
- mi := &file_operations_proto_msgTypes[35]
+ mi := &file_operations_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3209,7 +3295,7 @@ type UserApplyPatchRequest_Header struct {
func (x *UserApplyPatchRequest_Header) Reset() {
*x = UserApplyPatchRequest_Header{}
if protoimpl.UnsafeEnabled {
- mi := &file_operations_proto_msgTypes[36]
+ mi := &file_operations_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3222,7 +3308,7 @@ func (x *UserApplyPatchRequest_Header) String() string {
func (*UserApplyPatchRequest_Header) ProtoMessage() {}
func (x *UserApplyPatchRequest_Header) ProtoReflect() protoreflect.Message {
- mi := &file_operations_proto_msgTypes[36]
+ mi := &file_operations_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3235,7 +3321,7 @@ func (x *UserApplyPatchRequest_Header) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserApplyPatchRequest_Header.ProtoReflect.Descriptor instead.
func (*UserApplyPatchRequest_Header) Descriptor() ([]byte, []int) {
- return file_operations_proto_rawDescGZIP(), []int{31, 0}
+ return file_operations_proto_rawDescGZIP(), []int{32, 0}
}
func (x *UserApplyPatchRequest_Header) GetRepository() *Repository {
@@ -3719,157 +3805,168 @@ var file_operations_proto_rawDesc = []byte{
0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67,
0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x11, 0x70,
0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
- 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61,
- 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74,
- 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x61,
- 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x70,
- 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x1a, 0xc3, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52,
- 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52,
- 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75,
- 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x23, 0x0a,
- 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e,
- 0x63, 0x68, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
- 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x22, 0x0a, 0x20,
- 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68,
- 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
- 0x22, 0x5c, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74,
- 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x72,
- 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xae,
- 0x02, 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62,
- 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a,
- 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73,
- 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
- 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e,
- 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68,
- 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x25,
- 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
- 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22,
- 0xc9, 0x01, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75,
- 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x42, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
- 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69,
- 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
- 0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12,
- 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x45, 0x72, 0x72,
- 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0xed, 0x0a, 0x0a, 0x10,
- 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
- 0x12, 0x5d, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72,
- 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
- 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
- 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12,
- 0x5d, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61,
+ 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f,
+ 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f,
+ 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69,
+ 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f,
+ 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22,
+ 0xdd, 0x02, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74,
+ 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61,
+ 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63,
+ 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48,
+ 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x61, 0x74,
+ 0x63, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61,
+ 0x74, 0x63, 0x68, 0x65, 0x73, 0x1a, 0xc3, 0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
+ 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a,
+ 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73,
+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d,
+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x22, 0x0a, 0x20, 0x75,
+ 0x73, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f,
+ 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22,
+ 0x5c, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63,
+ 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x72, 0x61,
+ 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
+ 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xae, 0x02,
+ 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a,
+ 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12,
+ 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x0a,
+ 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9,
+ 0x01, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62,
+ 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42,
+ 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f,
+ 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
+ 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70,
+ 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x21,
+ 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
+ 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0xed, 0x0a, 0x0a, 0x10, 0x4f,
+ 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
+ 0x5d, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61,
0x6e, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
- 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71,
+ 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
- 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65,
+ 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x5d,
- 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e,
+ 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e,
0x63, 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
- 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x54, 0x0a,
- 0x0d, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1c,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
- 0x02, 0x08, 0x01, 0x12, 0x54, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
- 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x73, 0x65,
- 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x12, 0x1d, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x6f,
- 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74,
+ 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x5d, 0x0a,
+ 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x54, 0x0a, 0x0d,
+ 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
+ 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02,
+ 0x08, 0x01, 0x12, 0x54, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x54, 0x61, 0x67, 0x12, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72,
+ 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74,
0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52,
- 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02,
- 0x08, 0x01, 0x12, 0x5e, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42,
- 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
- 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
- 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01,
- 0x30, 0x01, 0x12, 0x51, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46, 0x42, 0x72, 0x61, 0x6e,
- 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
- 0x46, 0x46, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46, 0x42,
- 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa,
- 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65,
- 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
- 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x65,
+ 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08,
+ 0x01, 0x12, 0x5e, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72,
+ 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01, 0x30,
+ 0x01, 0x12, 0x51, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46, 0x42, 0x72, 0x61, 0x6e, 0x63,
+ 0x68, 0x12, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46,
+ 0x46, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46, 0x42, 0x72,
+ 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97,
+ 0x28, 0x02, 0x08, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72,
+ 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x5c,
- 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65,
- 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01, 0x12, 0x70, 0x0a, 0x15,
- 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72,
- 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
+ 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x5c, 0x0a,
+ 0x0f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
+ 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01, 0x12, 0x70, 0x0a, 0x15, 0x55,
0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d,
- 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01, 0x30, 0x01, 0x12, 0x4b,
- 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x19, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
- 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x55,
- 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
- 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x59, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72,
- 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74,
- 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61,
+ 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01, 0x30, 0x01, 0x12, 0x4b, 0x0a,
+ 0x0a, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x19, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x55, 0x73,
+ 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
+ 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x59, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x41,
+ 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61,
0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63,
- 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08,
- 0x01, 0x28, 0x01, 0x12, 0x66, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75,
- 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67,
- 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62,
- 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2f, 0x76, 0x31, 0x34, 0x2f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x70,
- 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01,
+ 0x28, 0x01, 0x12, 0x66, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62,
+ 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69,
+ 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d,
+ 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2f, 0x76, 0x31, 0x34, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x70, 0x62,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3885,7 +3982,7 @@ func file_operations_proto_rawDescGZIP() []byte {
}
var file_operations_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_operations_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
+var file_operations_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
var file_operations_proto_goTypes = []interface{}{
(UserCherryPickResponse_CreateTreeError)(0), // 0: gitaly.UserCherryPickResponse.CreateTreeError
(UserRevertResponse_CreateTreeError)(0), // 1: gitaly.UserRevertResponse.CreateTreeError
@@ -3921,123 +4018,128 @@ var file_operations_proto_goTypes = []interface{}{
(*UserRebaseConfirmableResponse)(nil), // 31: gitaly.UserRebaseConfirmableResponse
(*UserSquashRequest)(nil), // 32: gitaly.UserSquashRequest
(*UserSquashResponse)(nil), // 33: gitaly.UserSquashResponse
- (*UserApplyPatchRequest)(nil), // 34: gitaly.UserApplyPatchRequest
- (*UserApplyPatchResponse)(nil), // 35: gitaly.UserApplyPatchResponse
- (*UserUpdateSubmoduleRequest)(nil), // 36: gitaly.UserUpdateSubmoduleRequest
- (*UserUpdateSubmoduleResponse)(nil), // 37: gitaly.UserUpdateSubmoduleResponse
- (*UserRebaseConfirmableRequest_Header)(nil), // 38: gitaly.UserRebaseConfirmableRequest.Header
- (*UserApplyPatchRequest_Header)(nil), // 39: gitaly.UserApplyPatchRequest.Header
- (*Repository)(nil), // 40: gitaly.Repository
- (*User)(nil), // 41: gitaly.User
- (*Branch)(nil), // 42: gitaly.Branch
- (*timestamppb.Timestamp)(nil), // 43: google.protobuf.Timestamp
- (*Tag)(nil), // 44: gitaly.Tag
- (*AccessCheckError)(nil), // 45: gitaly.AccessCheckError
- (*ReferenceUpdateError)(nil), // 46: gitaly.ReferenceUpdateError
- (*GitCommit)(nil), // 47: gitaly.GitCommit
+ (*UserSquashError)(nil), // 34: gitaly.UserSquashError
+ (*UserApplyPatchRequest)(nil), // 35: gitaly.UserApplyPatchRequest
+ (*UserApplyPatchResponse)(nil), // 36: gitaly.UserApplyPatchResponse
+ (*UserUpdateSubmoduleRequest)(nil), // 37: gitaly.UserUpdateSubmoduleRequest
+ (*UserUpdateSubmoduleResponse)(nil), // 38: gitaly.UserUpdateSubmoduleResponse
+ (*UserRebaseConfirmableRequest_Header)(nil), // 39: gitaly.UserRebaseConfirmableRequest.Header
+ (*UserApplyPatchRequest_Header)(nil), // 40: gitaly.UserApplyPatchRequest.Header
+ (*Repository)(nil), // 41: gitaly.Repository
+ (*User)(nil), // 42: gitaly.User
+ (*Branch)(nil), // 43: gitaly.Branch
+ (*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp
+ (*Tag)(nil), // 45: gitaly.Tag
+ (*AccessCheckError)(nil), // 46: gitaly.AccessCheckError
+ (*ReferenceUpdateError)(nil), // 47: gitaly.ReferenceUpdateError
+ (*GitCommit)(nil), // 48: gitaly.GitCommit
+ (*ResolveRevisionError)(nil), // 49: gitaly.ResolveRevisionError
+ (*MergeConflictError)(nil), // 50: gitaly.MergeConflictError
}
var file_operations_proto_depIdxs = []int32{
- 40, // 0: gitaly.UserCreateBranchRequest.repository:type_name -> gitaly.Repository
- 41, // 1: gitaly.UserCreateBranchRequest.user:type_name -> gitaly.User
- 42, // 2: gitaly.UserCreateBranchResponse.branch:type_name -> gitaly.Branch
- 40, // 3: gitaly.UserUpdateBranchRequest.repository:type_name -> gitaly.Repository
- 41, // 4: gitaly.UserUpdateBranchRequest.user:type_name -> gitaly.User
- 40, // 5: gitaly.UserDeleteBranchRequest.repository:type_name -> gitaly.Repository
- 41, // 6: gitaly.UserDeleteBranchRequest.user:type_name -> gitaly.User
- 40, // 7: gitaly.UserDeleteTagRequest.repository:type_name -> gitaly.Repository
- 41, // 8: gitaly.UserDeleteTagRequest.user:type_name -> gitaly.User
- 40, // 9: gitaly.UserCreateTagRequest.repository:type_name -> gitaly.Repository
- 41, // 10: gitaly.UserCreateTagRequest.user:type_name -> gitaly.User
- 43, // 11: gitaly.UserCreateTagRequest.timestamp:type_name -> google.protobuf.Timestamp
- 44, // 12: gitaly.UserCreateTagResponse.tag:type_name -> gitaly.Tag
- 40, // 13: gitaly.UserMergeBranchRequest.repository:type_name -> gitaly.Repository
- 41, // 14: gitaly.UserMergeBranchRequest.user:type_name -> gitaly.User
- 43, // 15: gitaly.UserMergeBranchRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 41, // 0: gitaly.UserCreateBranchRequest.repository:type_name -> gitaly.Repository
+ 42, // 1: gitaly.UserCreateBranchRequest.user:type_name -> gitaly.User
+ 43, // 2: gitaly.UserCreateBranchResponse.branch:type_name -> gitaly.Branch
+ 41, // 3: gitaly.UserUpdateBranchRequest.repository:type_name -> gitaly.Repository
+ 42, // 4: gitaly.UserUpdateBranchRequest.user:type_name -> gitaly.User
+ 41, // 5: gitaly.UserDeleteBranchRequest.repository:type_name -> gitaly.Repository
+ 42, // 6: gitaly.UserDeleteBranchRequest.user:type_name -> gitaly.User
+ 41, // 7: gitaly.UserDeleteTagRequest.repository:type_name -> gitaly.Repository
+ 42, // 8: gitaly.UserDeleteTagRequest.user:type_name -> gitaly.User
+ 41, // 9: gitaly.UserCreateTagRequest.repository:type_name -> gitaly.Repository
+ 42, // 10: gitaly.UserCreateTagRequest.user:type_name -> gitaly.User
+ 44, // 11: gitaly.UserCreateTagRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 45, // 12: gitaly.UserCreateTagResponse.tag:type_name -> gitaly.Tag
+ 41, // 13: gitaly.UserMergeBranchRequest.repository:type_name -> gitaly.Repository
+ 42, // 14: gitaly.UserMergeBranchRequest.user:type_name -> gitaly.User
+ 44, // 15: gitaly.UserMergeBranchRequest.timestamp:type_name -> google.protobuf.Timestamp
18, // 16: gitaly.UserMergeBranchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
- 45, // 17: gitaly.UserMergeBranchError.access_check:type_name -> gitaly.AccessCheckError
- 46, // 18: gitaly.UserMergeBranchError.reference_update:type_name -> gitaly.ReferenceUpdateError
- 40, // 19: gitaly.UserMergeToRefRequest.repository:type_name -> gitaly.Repository
- 41, // 20: gitaly.UserMergeToRefRequest.user:type_name -> gitaly.User
- 43, // 21: gitaly.UserMergeToRefRequest.timestamp:type_name -> google.protobuf.Timestamp
- 40, // 22: gitaly.UserFFBranchRequest.repository:type_name -> gitaly.Repository
- 41, // 23: gitaly.UserFFBranchRequest.user:type_name -> gitaly.User
+ 46, // 17: gitaly.UserMergeBranchError.access_check:type_name -> gitaly.AccessCheckError
+ 47, // 18: gitaly.UserMergeBranchError.reference_update:type_name -> gitaly.ReferenceUpdateError
+ 41, // 19: gitaly.UserMergeToRefRequest.repository:type_name -> gitaly.Repository
+ 42, // 20: gitaly.UserMergeToRefRequest.user:type_name -> gitaly.User
+ 44, // 21: gitaly.UserMergeToRefRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 41, // 22: gitaly.UserFFBranchRequest.repository:type_name -> gitaly.Repository
+ 42, // 23: gitaly.UserFFBranchRequest.user:type_name -> gitaly.User
18, // 24: gitaly.UserFFBranchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
- 40, // 25: gitaly.UserCherryPickRequest.repository:type_name -> gitaly.Repository
- 41, // 26: gitaly.UserCherryPickRequest.user:type_name -> gitaly.User
- 47, // 27: gitaly.UserCherryPickRequest.commit:type_name -> gitaly.GitCommit
- 40, // 28: gitaly.UserCherryPickRequest.start_repository:type_name -> gitaly.Repository
- 43, // 29: gitaly.UserCherryPickRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 41, // 25: gitaly.UserCherryPickRequest.repository:type_name -> gitaly.Repository
+ 42, // 26: gitaly.UserCherryPickRequest.user:type_name -> gitaly.User
+ 48, // 27: gitaly.UserCherryPickRequest.commit:type_name -> gitaly.GitCommit
+ 41, // 28: gitaly.UserCherryPickRequest.start_repository:type_name -> gitaly.Repository
+ 44, // 29: gitaly.UserCherryPickRequest.timestamp:type_name -> google.protobuf.Timestamp
18, // 30: gitaly.UserCherryPickResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
0, // 31: gitaly.UserCherryPickResponse.create_tree_error_code:type_name -> gitaly.UserCherryPickResponse.CreateTreeError
- 40, // 32: gitaly.UserRevertRequest.repository:type_name -> gitaly.Repository
- 41, // 33: gitaly.UserRevertRequest.user:type_name -> gitaly.User
- 47, // 34: gitaly.UserRevertRequest.commit:type_name -> gitaly.GitCommit
- 40, // 35: gitaly.UserRevertRequest.start_repository:type_name -> gitaly.Repository
- 43, // 36: gitaly.UserRevertRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 41, // 32: gitaly.UserRevertRequest.repository:type_name -> gitaly.Repository
+ 42, // 33: gitaly.UserRevertRequest.user:type_name -> gitaly.User
+ 48, // 34: gitaly.UserRevertRequest.commit:type_name -> gitaly.GitCommit
+ 41, // 35: gitaly.UserRevertRequest.start_repository:type_name -> gitaly.Repository
+ 44, // 36: gitaly.UserRevertRequest.timestamp:type_name -> google.protobuf.Timestamp
18, // 37: gitaly.UserRevertResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
1, // 38: gitaly.UserRevertResponse.create_tree_error_code:type_name -> gitaly.UserRevertResponse.CreateTreeError
2, // 39: gitaly.UserCommitFilesActionHeader.action:type_name -> gitaly.UserCommitFilesActionHeader.ActionType
25, // 40: gitaly.UserCommitFilesAction.header:type_name -> gitaly.UserCommitFilesActionHeader
- 40, // 41: gitaly.UserCommitFilesRequestHeader.repository:type_name -> gitaly.Repository
- 41, // 42: gitaly.UserCommitFilesRequestHeader.user:type_name -> gitaly.User
- 40, // 43: gitaly.UserCommitFilesRequestHeader.start_repository:type_name -> gitaly.Repository
- 43, // 44: gitaly.UserCommitFilesRequestHeader.timestamp:type_name -> google.protobuf.Timestamp
+ 41, // 41: gitaly.UserCommitFilesRequestHeader.repository:type_name -> gitaly.Repository
+ 42, // 42: gitaly.UserCommitFilesRequestHeader.user:type_name -> gitaly.User
+ 41, // 43: gitaly.UserCommitFilesRequestHeader.start_repository:type_name -> gitaly.Repository
+ 44, // 44: gitaly.UserCommitFilesRequestHeader.timestamp:type_name -> google.protobuf.Timestamp
27, // 45: gitaly.UserCommitFilesRequest.header:type_name -> gitaly.UserCommitFilesRequestHeader
26, // 46: gitaly.UserCommitFilesRequest.action:type_name -> gitaly.UserCommitFilesAction
18, // 47: gitaly.UserCommitFilesResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
- 38, // 48: gitaly.UserRebaseConfirmableRequest.header:type_name -> gitaly.UserRebaseConfirmableRequest.Header
- 40, // 49: gitaly.UserSquashRequest.repository:type_name -> gitaly.Repository
- 41, // 50: gitaly.UserSquashRequest.user:type_name -> gitaly.User
- 41, // 51: gitaly.UserSquashRequest.author:type_name -> gitaly.User
- 43, // 52: gitaly.UserSquashRequest.timestamp:type_name -> google.protobuf.Timestamp
- 39, // 53: gitaly.UserApplyPatchRequest.header:type_name -> gitaly.UserApplyPatchRequest.Header
- 18, // 54: gitaly.UserApplyPatchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
- 40, // 55: gitaly.UserUpdateSubmoduleRequest.repository:type_name -> gitaly.Repository
- 41, // 56: gitaly.UserUpdateSubmoduleRequest.user:type_name -> gitaly.User
- 43, // 57: gitaly.UserUpdateSubmoduleRequest.timestamp:type_name -> google.protobuf.Timestamp
- 18, // 58: gitaly.UserUpdateSubmoduleResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
- 40, // 59: gitaly.UserRebaseConfirmableRequest.Header.repository:type_name -> gitaly.Repository
- 41, // 60: gitaly.UserRebaseConfirmableRequest.Header.user:type_name -> gitaly.User
- 40, // 61: gitaly.UserRebaseConfirmableRequest.Header.remote_repository:type_name -> gitaly.Repository
- 43, // 62: gitaly.UserRebaseConfirmableRequest.Header.timestamp:type_name -> google.protobuf.Timestamp
- 40, // 63: gitaly.UserApplyPatchRequest.Header.repository:type_name -> gitaly.Repository
- 41, // 64: gitaly.UserApplyPatchRequest.Header.user:type_name -> gitaly.User
- 43, // 65: gitaly.UserApplyPatchRequest.Header.timestamp:type_name -> google.protobuf.Timestamp
- 3, // 66: gitaly.OperationService.UserCreateBranch:input_type -> gitaly.UserCreateBranchRequest
- 5, // 67: gitaly.OperationService.UserUpdateBranch:input_type -> gitaly.UserUpdateBranchRequest
- 7, // 68: gitaly.OperationService.UserDeleteBranch:input_type -> gitaly.UserDeleteBranchRequest
- 11, // 69: gitaly.OperationService.UserCreateTag:input_type -> gitaly.UserCreateTagRequest
- 9, // 70: gitaly.OperationService.UserDeleteTag:input_type -> gitaly.UserDeleteTagRequest
- 16, // 71: gitaly.OperationService.UserMergeToRef:input_type -> gitaly.UserMergeToRefRequest
- 13, // 72: gitaly.OperationService.UserMergeBranch:input_type -> gitaly.UserMergeBranchRequest
- 19, // 73: gitaly.OperationService.UserFFBranch:input_type -> gitaly.UserFFBranchRequest
- 21, // 74: gitaly.OperationService.UserCherryPick:input_type -> gitaly.UserCherryPickRequest
- 28, // 75: gitaly.OperationService.UserCommitFiles:input_type -> gitaly.UserCommitFilesRequest
- 30, // 76: gitaly.OperationService.UserRebaseConfirmable:input_type -> gitaly.UserRebaseConfirmableRequest
- 23, // 77: gitaly.OperationService.UserRevert:input_type -> gitaly.UserRevertRequest
- 32, // 78: gitaly.OperationService.UserSquash:input_type -> gitaly.UserSquashRequest
- 34, // 79: gitaly.OperationService.UserApplyPatch:input_type -> gitaly.UserApplyPatchRequest
- 36, // 80: gitaly.OperationService.UserUpdateSubmodule:input_type -> gitaly.UserUpdateSubmoduleRequest
- 4, // 81: gitaly.OperationService.UserCreateBranch:output_type -> gitaly.UserCreateBranchResponse
- 6, // 82: gitaly.OperationService.UserUpdateBranch:output_type -> gitaly.UserUpdateBranchResponse
- 8, // 83: gitaly.OperationService.UserDeleteBranch:output_type -> gitaly.UserDeleteBranchResponse
- 12, // 84: gitaly.OperationService.UserCreateTag:output_type -> gitaly.UserCreateTagResponse
- 10, // 85: gitaly.OperationService.UserDeleteTag:output_type -> gitaly.UserDeleteTagResponse
- 17, // 86: gitaly.OperationService.UserMergeToRef:output_type -> gitaly.UserMergeToRefResponse
- 14, // 87: gitaly.OperationService.UserMergeBranch:output_type -> gitaly.UserMergeBranchResponse
- 20, // 88: gitaly.OperationService.UserFFBranch:output_type -> gitaly.UserFFBranchResponse
- 22, // 89: gitaly.OperationService.UserCherryPick:output_type -> gitaly.UserCherryPickResponse
- 29, // 90: gitaly.OperationService.UserCommitFiles:output_type -> gitaly.UserCommitFilesResponse
- 31, // 91: gitaly.OperationService.UserRebaseConfirmable:output_type -> gitaly.UserRebaseConfirmableResponse
- 24, // 92: gitaly.OperationService.UserRevert:output_type -> gitaly.UserRevertResponse
- 33, // 93: gitaly.OperationService.UserSquash:output_type -> gitaly.UserSquashResponse
- 35, // 94: gitaly.OperationService.UserApplyPatch:output_type -> gitaly.UserApplyPatchResponse
- 37, // 95: gitaly.OperationService.UserUpdateSubmodule:output_type -> gitaly.UserUpdateSubmoduleResponse
- 81, // [81:96] is the sub-list for method output_type
- 66, // [66:81] is the sub-list for method input_type
- 66, // [66:66] is the sub-list for extension type_name
- 66, // [66:66] is the sub-list for extension extendee
- 0, // [0:66] is the sub-list for field type_name
+ 39, // 48: gitaly.UserRebaseConfirmableRequest.header:type_name -> gitaly.UserRebaseConfirmableRequest.Header
+ 41, // 49: gitaly.UserSquashRequest.repository:type_name -> gitaly.Repository
+ 42, // 50: gitaly.UserSquashRequest.user:type_name -> gitaly.User
+ 42, // 51: gitaly.UserSquashRequest.author:type_name -> gitaly.User
+ 44, // 52: gitaly.UserSquashRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 49, // 53: gitaly.UserSquashError.resolve_revision:type_name -> gitaly.ResolveRevisionError
+ 50, // 54: gitaly.UserSquashError.rebase_conflict:type_name -> gitaly.MergeConflictError
+ 40, // 55: gitaly.UserApplyPatchRequest.header:type_name -> gitaly.UserApplyPatchRequest.Header
+ 18, // 56: gitaly.UserApplyPatchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
+ 41, // 57: gitaly.UserUpdateSubmoduleRequest.repository:type_name -> gitaly.Repository
+ 42, // 58: gitaly.UserUpdateSubmoduleRequest.user:type_name -> gitaly.User
+ 44, // 59: gitaly.UserUpdateSubmoduleRequest.timestamp:type_name -> google.protobuf.Timestamp
+ 18, // 60: gitaly.UserUpdateSubmoduleResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
+ 41, // 61: gitaly.UserRebaseConfirmableRequest.Header.repository:type_name -> gitaly.Repository
+ 42, // 62: gitaly.UserRebaseConfirmableRequest.Header.user:type_name -> gitaly.User
+ 41, // 63: gitaly.UserRebaseConfirmableRequest.Header.remote_repository:type_name -> gitaly.Repository
+ 44, // 64: gitaly.UserRebaseConfirmableRequest.Header.timestamp:type_name -> google.protobuf.Timestamp
+ 41, // 65: gitaly.UserApplyPatchRequest.Header.repository:type_name -> gitaly.Repository
+ 42, // 66: gitaly.UserApplyPatchRequest.Header.user:type_name -> gitaly.User
+ 44, // 67: gitaly.UserApplyPatchRequest.Header.timestamp:type_name -> google.protobuf.Timestamp
+ 3, // 68: gitaly.OperationService.UserCreateBranch:input_type -> gitaly.UserCreateBranchRequest
+ 5, // 69: gitaly.OperationService.UserUpdateBranch:input_type -> gitaly.UserUpdateBranchRequest
+ 7, // 70: gitaly.OperationService.UserDeleteBranch:input_type -> gitaly.UserDeleteBranchRequest
+ 11, // 71: gitaly.OperationService.UserCreateTag:input_type -> gitaly.UserCreateTagRequest
+ 9, // 72: gitaly.OperationService.UserDeleteTag:input_type -> gitaly.UserDeleteTagRequest
+ 16, // 73: gitaly.OperationService.UserMergeToRef:input_type -> gitaly.UserMergeToRefRequest
+ 13, // 74: gitaly.OperationService.UserMergeBranch:input_type -> gitaly.UserMergeBranchRequest
+ 19, // 75: gitaly.OperationService.UserFFBranch:input_type -> gitaly.UserFFBranchRequest
+ 21, // 76: gitaly.OperationService.UserCherryPick:input_type -> gitaly.UserCherryPickRequest
+ 28, // 77: gitaly.OperationService.UserCommitFiles:input_type -> gitaly.UserCommitFilesRequest
+ 30, // 78: gitaly.OperationService.UserRebaseConfirmable:input_type -> gitaly.UserRebaseConfirmableRequest
+ 23, // 79: gitaly.OperationService.UserRevert:input_type -> gitaly.UserRevertRequest
+ 32, // 80: gitaly.OperationService.UserSquash:input_type -> gitaly.UserSquashRequest
+ 35, // 81: gitaly.OperationService.UserApplyPatch:input_type -> gitaly.UserApplyPatchRequest
+ 37, // 82: gitaly.OperationService.UserUpdateSubmodule:input_type -> gitaly.UserUpdateSubmoduleRequest
+ 4, // 83: gitaly.OperationService.UserCreateBranch:output_type -> gitaly.UserCreateBranchResponse
+ 6, // 84: gitaly.OperationService.UserUpdateBranch:output_type -> gitaly.UserUpdateBranchResponse
+ 8, // 85: gitaly.OperationService.UserDeleteBranch:output_type -> gitaly.UserDeleteBranchResponse
+ 12, // 86: gitaly.OperationService.UserCreateTag:output_type -> gitaly.UserCreateTagResponse
+ 10, // 87: gitaly.OperationService.UserDeleteTag:output_type -> gitaly.UserDeleteTagResponse
+ 17, // 88: gitaly.OperationService.UserMergeToRef:output_type -> gitaly.UserMergeToRefResponse
+ 14, // 89: gitaly.OperationService.UserMergeBranch:output_type -> gitaly.UserMergeBranchResponse
+ 20, // 90: gitaly.OperationService.UserFFBranch:output_type -> gitaly.UserFFBranchResponse
+ 22, // 91: gitaly.OperationService.UserCherryPick:output_type -> gitaly.UserCherryPickResponse
+ 29, // 92: gitaly.OperationService.UserCommitFiles:output_type -> gitaly.UserCommitFilesResponse
+ 31, // 93: gitaly.OperationService.UserRebaseConfirmable:output_type -> gitaly.UserRebaseConfirmableResponse
+ 24, // 94: gitaly.OperationService.UserRevert:output_type -> gitaly.UserRevertResponse
+ 33, // 95: gitaly.OperationService.UserSquash:output_type -> gitaly.UserSquashResponse
+ 36, // 96: gitaly.OperationService.UserApplyPatch:output_type -> gitaly.UserApplyPatchResponse
+ 38, // 97: gitaly.OperationService.UserUpdateSubmodule:output_type -> gitaly.UserUpdateSubmoduleResponse
+ 83, // [83:98] is the sub-list for method output_type
+ 68, // [68:83] is the sub-list for method input_type
+ 68, // [68:68] is the sub-list for extension type_name
+ 68, // [68:68] is the sub-list for extension extendee
+ 0, // [0:68] is the sub-list for field type_name
}
func init() { file_operations_proto_init() }
@@ -4422,7 +4524,7 @@ func file_operations_proto_init() {
}
}
file_operations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserApplyPatchRequest); i {
+ switch v := v.(*UserSquashError); i {
case 0:
return &v.state
case 1:
@@ -4434,7 +4536,7 @@ func file_operations_proto_init() {
}
}
file_operations_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserApplyPatchResponse); i {
+ switch v := v.(*UserApplyPatchRequest); i {
case 0:
return &v.state
case 1:
@@ -4446,7 +4548,7 @@ func file_operations_proto_init() {
}
}
file_operations_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserUpdateSubmoduleRequest); i {
+ switch v := v.(*UserApplyPatchResponse); i {
case 0:
return &v.state
case 1:
@@ -4458,7 +4560,7 @@ func file_operations_proto_init() {
}
}
file_operations_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserUpdateSubmoduleResponse); i {
+ switch v := v.(*UserUpdateSubmoduleRequest); i {
case 0:
return &v.state
case 1:
@@ -4470,7 +4572,7 @@ func file_operations_proto_init() {
}
}
file_operations_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserRebaseConfirmableRequest_Header); i {
+ switch v := v.(*UserUpdateSubmoduleResponse); i {
case 0:
return &v.state
case 1:
@@ -4482,6 +4584,18 @@ func file_operations_proto_init() {
}
}
file_operations_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserRebaseConfirmableRequest_Header); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_operations_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserApplyPatchRequest_Header); i {
case 0:
return &v.state
@@ -4515,6 +4629,10 @@ func file_operations_proto_init() {
(*UserRebaseConfirmableResponse_RebaseApplied)(nil),
}
file_operations_proto_msgTypes[31].OneofWrappers = []interface{}{
+ (*UserSquashError_ResolveRevision)(nil),
+ (*UserSquashError_RebaseConflict)(nil),
+ }
+ file_operations_proto_msgTypes[32].OneofWrappers = []interface{}{
(*UserApplyPatchRequest_Header_)(nil),
(*UserApplyPatchRequest_Patches)(nil),
}
@@ -4524,7 +4642,7 @@ func file_operations_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_operations_proto_rawDesc,
NumEnums: 3,
- NumMessages: 37,
+ NumMessages: 38,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/proto/go/gitalypb/operations_grpc.pb.go b/proto/go/gitalypb/operations_grpc.pb.go
index 4be478c25..45c083841 100644
--- a/proto/go/gitalypb/operations_grpc.pb.go
+++ b/proto/go/gitalypb/operations_grpc.pb.go
@@ -63,7 +63,11 @@ type OperationServiceClient interface {
UserRebaseConfirmable(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserRebaseConfirmableClient, error)
// UserRevert tries to perform a revert of a given commit onto a branch.
UserRevert(ctx context.Context, in *UserRevertRequest, opts ...grpc.CallOption) (*UserRevertResponse, error)
- // UserSquash squashes a range of commits into a single commit.
+ // UserSquash squashes a range of commits into a single commit. If
+ // successful, it returns the object ID of the newly created squash commit.
+ // On error, it returns a gRPC error. Some specific errors will have an
+ // embedded UserSquashError such that clients can deduce what exactly has
+ // failed.
UserSquash(ctx context.Context, in *UserSquashRequest, opts ...grpc.CallOption) (*UserSquashResponse, error)
// UserApplyPatch applies patches to a given branch.
UserApplyPatch(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserApplyPatchClient, error)
@@ -357,7 +361,11 @@ type OperationServiceServer interface {
UserRebaseConfirmable(OperationService_UserRebaseConfirmableServer) error
// UserRevert tries to perform a revert of a given commit onto a branch.
UserRevert(context.Context, *UserRevertRequest) (*UserRevertResponse, error)
- // UserSquash squashes a range of commits into a single commit.
+ // UserSquash squashes a range of commits into a single commit. If
+ // successful, it returns the object ID of the newly created squash commit.
+ // On error, it returns a gRPC error. Some specific errors will have an
+ // embedded UserSquashError such that clients can deduce what exactly has
+ // failed.
UserSquash(context.Context, *UserSquashRequest) (*UserSquashResponse, error)
// UserApplyPatch applies patches to a given branch.
UserApplyPatch(OperationService_UserApplyPatchServer) error
diff --git a/proto/operations.proto b/proto/operations.proto
index f7a56d46d..c944ba244 100644
--- a/proto/operations.proto
+++ b/proto/operations.proto
@@ -116,7 +116,11 @@ service OperationService {
};
}
- // UserSquash squashes a range of commits into a single commit.
+ // UserSquash squashes a range of commits into a single commit. If
+ // successful, it returns the object ID of the newly created squash commit.
+ // On error, it returns a gRPC error. Some specific errors will have an
+ // embedded UserSquashError such that clients can deduce what exactly has
+ // failed.
rpc UserSquash(UserSquashRequest) returns (UserSquashResponse) {
option (op_type) = {
op: MUTATOR
@@ -645,6 +649,19 @@ message UserSquashResponse {
string git_error = 3;
}
+// UserSquashError is an error that may be returned when the UserSquash RPC
+// fails.
+message UserSquashError {
+ oneof error {
+ // ResolveRevision is returned in case resolving either the start or end
+ // revision has failed.
+ ResolveRevisionError resolve_revision = 1;
+ // RebaseConflict is returned in case rebasing commits on top of the start
+ // commit fails with a merge conflict.
+ MergeConflictError rebase_conflict = 2;
+ }
+}
+
message UserApplyPatchRequest {
// Header contains information about how to apply the patches.
message Header {
diff --git a/ruby/proto/gitaly/errors_pb.rb b/ruby/proto/gitaly/errors_pb.rb
index 9d2dec273..f344beaaa 100644
--- a/ruby/proto/gitaly/errors_pb.rb
+++ b/ruby/proto/gitaly/errors_pb.rb
@@ -11,15 +11,23 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
optional :user_id, :string, 3
optional :changes, :bytes, 4
end
+ add_message "gitaly.MergeConflictError" do
+ repeated :conflicting_files, :bytes, 1
+ end
add_message "gitaly.ReferenceUpdateError" do
optional :reference_name, :bytes, 1
optional :old_oid, :string, 2
optional :new_oid, :string, 3
end
+ add_message "gitaly.ResolveRevisionError" do
+ optional :revision, :bytes, 1
+ end
end
end
module Gitaly
AccessCheckError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.AccessCheckError").msgclass
+ MergeConflictError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.MergeConflictError").msgclass
ReferenceUpdateError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ReferenceUpdateError").msgclass
+ ResolveRevisionError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ResolveRevisionError").msgclass
end
diff --git a/ruby/proto/gitaly/operations_pb.rb b/ruby/proto/gitaly/operations_pb.rb
index aaf3c6897..e5a38e03c 100644
--- a/ruby/proto/gitaly/operations_pb.rb
+++ b/ruby/proto/gitaly/operations_pb.rb
@@ -238,6 +238,12 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
optional :squash_sha, :string, 1
optional :git_error, :string, 3
end
+ add_message "gitaly.UserSquashError" do
+ oneof :error do
+ optional :resolve_revision, :message, 1, "gitaly.ResolveRevisionError"
+ optional :rebase_conflict, :message, 2, "gitaly.MergeConflictError"
+ end
+ end
add_message "gitaly.UserApplyPatchRequest" do
oneof :user_apply_patch_request_payload do
optional :header, :message, 1, "gitaly.UserApplyPatchRequest.Header"
@@ -306,6 +312,7 @@ module Gitaly
UserRebaseConfirmableResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserRebaseConfirmableResponse").msgclass
UserSquashRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserSquashRequest").msgclass
UserSquashResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserSquashResponse").msgclass
+ UserSquashError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserSquashError").msgclass
UserApplyPatchRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserApplyPatchRequest").msgclass
UserApplyPatchRequest::Header = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserApplyPatchRequest.Header").msgclass
UserApplyPatchResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.UserApplyPatchResponse").msgclass
diff --git a/ruby/proto/gitaly/operations_services_pb.rb b/ruby/proto/gitaly/operations_services_pb.rb
index 0d573e873..13a98c011 100644
--- a/ruby/proto/gitaly/operations_services_pb.rb
+++ b/ruby/proto/gitaly/operations_services_pb.rb
@@ -63,7 +63,11 @@ module Gitaly
rpc :UserRebaseConfirmable, stream(::Gitaly::UserRebaseConfirmableRequest), stream(::Gitaly::UserRebaseConfirmableResponse)
# UserRevert tries to perform a revert of a given commit onto a branch.
rpc :UserRevert, ::Gitaly::UserRevertRequest, ::Gitaly::UserRevertResponse
- # UserSquash squashes a range of commits into a single commit.
+ # UserSquash squashes a range of commits into a single commit. If
+ # successful, it returns the object ID of the newly created squash commit.
+ # On error, it returns a gRPC error. Some specific errors will have an
+ # embedded UserSquashError such that clients can deduce what exactly has
+ # failed.
rpc :UserSquash, ::Gitaly::UserSquashRequest, ::Gitaly::UserSquashResponse
# UserApplyPatch applies patches to a given branch.
rpc :UserApplyPatch, stream(::Gitaly::UserApplyPatchRequest), ::Gitaly::UserApplyPatchResponse