merge_request.pb.go RawHistoryFolder

1// SPDX-License-Identifier: MIT
2
3// Code generated by protoc-gen-go. DO NOT EDIT.
4// versions:
5// 	protoc-gen-go v1.36.12
6// 	protoc        (unknown)
7// source: ermite/merge_request.proto
8
9package ermite
10
11import (
12	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
15	reflect "reflect"
16	sync "sync"
17	unsafe "unsafe"
18)
19
20const (
21	// Verify that this generated code is sufficiently up-to-date.
22	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
23	// Verify that runtime/protoimpl is sufficiently up-to-date.
24	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
25)
26
27// MergeRequestState is where a merge request is in its life.
28type MergeRequestState int32
29
30const (
31	// Not set. In ListMergeRequestsRequest.state it means every state. Never
32	// returned by the server.
33	MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED MergeRequestState = 0
34	// The merge request awaits review; it can be commented on, merged or closed.
35	MergeRequestState_MERGE_REQUEST_STATE_OPEN MergeRequestState = 1
36	// The source branch was merged into the target. Final.
37	MergeRequestState_MERGE_REQUEST_STATE_MERGED MergeRequestState = 2
38	// The merge request was closed without merging. Final.
39	MergeRequestState_MERGE_REQUEST_STATE_CLOSED MergeRequestState = 3
40)
41
42// Enum value maps for MergeRequestState.
43var (
44	MergeRequestState_name = map[int32]string{
45		0: "MERGE_REQUEST_STATE_UNSPECIFIED",
46		1: "MERGE_REQUEST_STATE_OPEN",
47		2: "MERGE_REQUEST_STATE_MERGED",
48		3: "MERGE_REQUEST_STATE_CLOSED",
49	}
50	MergeRequestState_value = map[string]int32{
51		"MERGE_REQUEST_STATE_UNSPECIFIED": 0,
52		"MERGE_REQUEST_STATE_OPEN":        1,
53		"MERGE_REQUEST_STATE_MERGED":      2,
54		"MERGE_REQUEST_STATE_CLOSED":      3,
55	}
56)
57
58func (x MergeRequestState) Enum() *MergeRequestState {
59	p := new(MergeRequestState)
60	*p = x
61	return p
62}
63
64func (x MergeRequestState) String() string {
65	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
66}
67
68func (MergeRequestState) Descriptor() protoreflect.EnumDescriptor {
69	return file_ermite_merge_request_proto_enumTypes[0].Descriptor()
70}
71
72func (MergeRequestState) Type() protoreflect.EnumType {
73	return &file_ermite_merge_request_proto_enumTypes[0]
74}
75
76func (x MergeRequestState) Number() protoreflect.EnumNumber {
77	return protoreflect.EnumNumber(x)
78}
79
80// Deprecated: Use MergeRequestState.Descriptor instead.
81func (MergeRequestState) EnumDescriptor() ([]byte, []int) {
82	return file_ermite_merge_request_proto_rawDescGZIP(), []int{0}
83}
84
85// DiffSide is the side of a diff a line comment is attached to.
86type DiffSide int32
87
88const (
89	// Not set. On a Comment it means the comment is general, not attached to a
90	// line. In AddCommentRequest it is valid only for a general comment.
91	DiffSide_DIFF_SIDE_UNSPECIFIED DiffSide = 0
92	// The old side: the line is a Line.old_number (a deletion or a context line).
93	DiffSide_DIFF_SIDE_OLD DiffSide = 1
94	// The new side: the line is a Line.new_number (an addition or a context
95	// line).
96	DiffSide_DIFF_SIDE_NEW DiffSide = 2
97)
98
99// Enum value maps for DiffSide.
100var (
101	DiffSide_name = map[int32]string{
102		0: "DIFF_SIDE_UNSPECIFIED",
103		1: "DIFF_SIDE_OLD",
104		2: "DIFF_SIDE_NEW",
105	}
106	DiffSide_value = map[string]int32{
107		"DIFF_SIDE_UNSPECIFIED": 0,
108		"DIFF_SIDE_OLD":         1,
109		"DIFF_SIDE_NEW":         2,
110	}
111)
112
113func (x DiffSide) Enum() *DiffSide {
114	p := new(DiffSide)
115	*p = x
116	return p
117}
118
119func (x DiffSide) String() string {
120	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
121}
122
123func (DiffSide) Descriptor() protoreflect.EnumDescriptor {
124	return file_ermite_merge_request_proto_enumTypes[1].Descriptor()
125}
126
127func (DiffSide) Type() protoreflect.EnumType {
128	return &file_ermite_merge_request_proto_enumTypes[1]
129}
130
131func (x DiffSide) Number() protoreflect.EnumNumber {
132	return protoreflect.EnumNumber(x)
133}
134
135// Deprecated: Use DiffSide.Descriptor instead.
136func (DiffSide) EnumDescriptor() ([]byte, []int) {
137	return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
138}
139
140// MergeRequest asks to merge one branch of a repository into another branch
141// of the same repository. It is about a branch, not about who wrote it.
142type MergeRequest struct {
143	state protoimpl.MessageState `protogen:"open.v1"`
144	// Repo is the name of the repository.
145	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
146	// Number identifies the merge request within its repository, starting at 1
147	// and never reused. It is written "!<number>" in messages and URLs.
148	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
149	// Title is a one-line plain-text title, at most 120 characters.
150	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
151	// Description is a plain-text description, at most 8,000 characters. It may
152	// be empty. Clients show it escaped, with line breaks kept.
153	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
154	// SourceBranch is the short name of the branch to merge, for example
155	// "feat/x".
156	SourceBranch string `protobuf:"bytes,5,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"`
157	// TargetBranch is the short name of the branch to merge into, for example
158	// "main".
159	TargetBranch string `protobuf:"bytes,6,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
160	// State is where the merge request is in its life.
161	State MergeRequestState `protobuf:"varint,7,opt,name=state,proto3,enum=ermite.MergeRequestState" json:"state,omitempty"`
162	// Author names who created the merge request: the label of the token that
163	// was used, "root" for the root token, or "owner" for a web session. It is
164	// informational: labels are not unique and the token may be gone.
165	Author string `protobuf:"bytes,8,opt,name=author,proto3" json:"author,omitempty"`
166	// CreatedAt is when the merge request was created.
167	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
168	// UpdatedAt is when the merge request last changed: title, description,
169	// state, or a comment added or resolved. Pushes to the source branch do not
170	// change it.
171	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
172	// HeadId is the id of the commit the source branch points to. While the
173	// merge request is open it is read from Git at every call, so it changes
174	// when the branch is pushed; it is empty if the branch was deleted. Once
175	// merged or closed it is the head at that moment.
176	HeadId string `protobuf:"bytes,11,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
177	// MergedCommitId is the id of the commit the target branch points to after
178	// the merge: the head for a fast-forward, the new commit for a squash.
179	// Empty unless state is MERGED.
180	MergedCommitId string `protobuf:"bytes,12,opt,name=merged_commit_id,json=mergedCommitId,proto3" json:"merged_commit_id,omitempty"`
181	// MergeMode is how the merge request was merged. MERGE_MODE_UNSPECIFIED
182	// unless state is MERGED.
183	MergeMode     MergeMode `protobuf:"varint,13,opt,name=merge_mode,json=mergeMode,proto3,enum=ermite.MergeMode" json:"merge_mode,omitempty"`
184	unknownFields protoimpl.UnknownFields
185	sizeCache     protoimpl.SizeCache
186}
187
188func (x *MergeRequest) Reset() {
189	*x = MergeRequest{}
190	mi := &file_ermite_merge_request_proto_msgTypes[0]
191	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
192	ms.StoreMessageInfo(mi)
193}
194
195func (x *MergeRequest) String() string {
196	return protoimpl.X.MessageStringOf(x)
197}
198
199func (*MergeRequest) ProtoMessage() {}
200
201func (x *MergeRequest) ProtoReflect() protoreflect.Message {
202	mi := &file_ermite_merge_request_proto_msgTypes[0]
203	if x != nil {
204		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
205		if ms.LoadMessageInfo() == nil {
206			ms.StoreMessageInfo(mi)
207		}
208		return ms
209	}
210	return mi.MessageOf(x)
211}
212
213// Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead.
214func (*MergeRequest) Descriptor() ([]byte, []int) {
215	return file_ermite_merge_request_proto_rawDescGZIP(), []int{0}
216}
217
218func (x *MergeRequest) GetRepo() string {
219	if x != nil {
220		return x.Repo
221	}
222	return ""
223}
224
225func (x *MergeRequest) GetNumber() int64 {
226	if x != nil {
227		return x.Number
228	}
229	return 0
230}
231
232func (x *MergeRequest) GetTitle() string {
233	if x != nil {
234		return x.Title
235	}
236	return ""
237}
238
239func (x *MergeRequest) GetDescription() string {
240	if x != nil {
241		return x.Description
242	}
243	return ""
244}
245
246func (x *MergeRequest) GetSourceBranch() string {
247	if x != nil {
248		return x.SourceBranch
249	}
250	return ""
251}
252
253func (x *MergeRequest) GetTargetBranch() string {
254	if x != nil {
255		return x.TargetBranch
256	}
257	return ""
258}
259
260func (x *MergeRequest) GetState() MergeRequestState {
261	if x != nil {
262		return x.State
263	}
264	return MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED
265}
266
267func (x *MergeRequest) GetAuthor() string {
268	if x != nil {
269		return x.Author
270	}
271	return ""
272}
273
274func (x *MergeRequest) GetCreatedAt() *timestamppb.Timestamp {
275	if x != nil {
276		return x.CreatedAt
277	}
278	return nil
279}
280
281func (x *MergeRequest) GetUpdatedAt() *timestamppb.Timestamp {
282	if x != nil {
283		return x.UpdatedAt
284	}
285	return nil
286}
287
288func (x *MergeRequest) GetHeadId() string {
289	if x != nil {
290		return x.HeadId
291	}
292	return ""
293}
294
295func (x *MergeRequest) GetMergedCommitId() string {
296	if x != nil {
297		return x.MergedCommitId
298	}
299	return ""
300}
301
302func (x *MergeRequest) GetMergeMode() MergeMode {
303	if x != nil {
304		return x.MergeMode
305	}
306	return MergeMode_MERGE_MODE_UNSPECIFIED
307}
308
309// Comment is a note on a merge request, either general or attached to a line
310// of its diff.
311type Comment struct {
312	state protoimpl.MessageState `protogen:"open.v1"`
313	// Id identifies the comment within its merge request. Opaque.
314	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
315	// Author names who wrote the comment, like MergeRequest.author.
316	Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
317	// Path is the path of the commented file in the diff (the new path, or the
318	// old path of a deleted file). Empty for a general comment.
319	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
320	// Line is the 1-based line number on side. 0 for a general comment.
321	Line int32 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
322	// Side tells whether line counts on the old or the new side of the diff.
323	// DIFF_SIDE_UNSPECIFIED for a general comment.
324	Side DiffSide `protobuf:"varint,5,opt,name=side,proto3,enum=ermite.DiffSide" json:"side,omitempty"`
325	// CommitId is the head of the merge request when the comment was written.
326	// When it differs from the current head the line may have moved; clients
327	// may show the comment as outdated.
328	CommitId string `protobuf:"bytes,6,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
329	// Text is the plain-text content, at most 8,000 characters. Clients show it
330	// escaped, with line breaks kept.
331	Text string `protobuf:"bytes,7,opt,name=text,proto3" json:"text,omitempty"`
332	// Resolved is true once the comment was marked resolved.
333	Resolved bool `protobuf:"varint,8,opt,name=resolved,proto3" json:"resolved,omitempty"`
334	// CreatedAt is when the comment was written.
335	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
336	unknownFields protoimpl.UnknownFields
337	sizeCache     protoimpl.SizeCache
338}
339
340func (x *Comment) Reset() {
341	*x = Comment{}
342	mi := &file_ermite_merge_request_proto_msgTypes[1]
343	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
344	ms.StoreMessageInfo(mi)
345}
346
347func (x *Comment) String() string {
348	return protoimpl.X.MessageStringOf(x)
349}
350
351func (*Comment) ProtoMessage() {}
352
353func (x *Comment) ProtoReflect() protoreflect.Message {
354	mi := &file_ermite_merge_request_proto_msgTypes[1]
355	if x != nil {
356		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
357		if ms.LoadMessageInfo() == nil {
358			ms.StoreMessageInfo(mi)
359		}
360		return ms
361	}
362	return mi.MessageOf(x)
363}
364
365// Deprecated: Use Comment.ProtoReflect.Descriptor instead.
366func (*Comment) Descriptor() ([]byte, []int) {
367	return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
368}
369
370func (x *Comment) GetId() string {
371	if x != nil {
372		return x.Id
373	}
374	return ""
375}
376
377func (x *Comment) GetAuthor() string {
378	if x != nil {
379		return x.Author
380	}
381	return ""
382}
383
384func (x *Comment) GetPath() string {
385	if x != nil {
386		return x.Path
387	}
388	return ""
389}
390
391func (x *Comment) GetLine() int32 {
392	if x != nil {
393		return x.Line
394	}
395	return 0
396}
397
398func (x *Comment) GetSide() DiffSide {
399	if x != nil {
400		return x.Side
401	}
402	return DiffSide_DIFF_SIDE_UNSPECIFIED
403}
404
405func (x *Comment) GetCommitId() string {
406	if x != nil {
407		return x.CommitId
408	}
409	return ""
410}
411
412func (x *Comment) GetText() string {
413	if x != nil {
414		return x.Text
415	}
416	return ""
417}
418
419func (x *Comment) GetResolved() bool {
420	if x != nil {
421		return x.Resolved
422	}
423	return false
424}
425
426func (x *Comment) GetCreatedAt() *timestamppb.Timestamp {
427	if x != nil {
428		return x.CreatedAt
429	}
430	return nil
431}
432
433// CreateMergeRequestRequest describes the merge request to open.
434type CreateMergeRequestRequest struct {
435	state protoimpl.MessageState `protogen:"open.v1"`
436	// Repo is the repository name.
437	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
438	// Title is the one-line title. Required.
439	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
440	// Description is the optional description.
441	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
442	// SourceBranch is the short name of the branch to merge. Required; the
443	// branch must exist.
444	SourceBranch string `protobuf:"bytes,4,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"`
445	// TargetBranch is the short name of the branch to merge into. Empty means
446	// the default branch of the repository. The branch must exist and differ
447	// from source_branch.
448	TargetBranch  string `protobuf:"bytes,5,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
449	unknownFields protoimpl.UnknownFields
450	sizeCache     protoimpl.SizeCache
451}
452
453func (x *CreateMergeRequestRequest) Reset() {
454	*x = CreateMergeRequestRequest{}
455	mi := &file_ermite_merge_request_proto_msgTypes[2]
456	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
457	ms.StoreMessageInfo(mi)
458}
459
460func (x *CreateMergeRequestRequest) String() string {
461	return protoimpl.X.MessageStringOf(x)
462}
463
464func (*CreateMergeRequestRequest) ProtoMessage() {}
465
466func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
467	mi := &file_ermite_merge_request_proto_msgTypes[2]
468	if x != nil {
469		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
470		if ms.LoadMessageInfo() == nil {
471			ms.StoreMessageInfo(mi)
472		}
473		return ms
474	}
475	return mi.MessageOf(x)
476}
477
478// Deprecated: Use CreateMergeRequestRequest.ProtoReflect.Descriptor instead.
479func (*CreateMergeRequestRequest) Descriptor() ([]byte, []int) {
480	return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
481}
482
483func (x *CreateMergeRequestRequest) GetRepo() string {
484	if x != nil {
485		return x.Repo
486	}
487	return ""
488}
489
490func (x *CreateMergeRequestRequest) GetTitle() string {
491	if x != nil {
492		return x.Title
493	}
494	return ""
495}
496
497func (x *CreateMergeRequestRequest) GetDescription() string {
498	if x != nil {
499		return x.Description
500	}
501	return ""
502}
503
504func (x *CreateMergeRequestRequest) GetSourceBranch() string {
505	if x != nil {
506		return x.SourceBranch
507	}
508	return ""
509}
510
511func (x *CreateMergeRequestRequest) GetTargetBranch() string {
512	if x != nil {
513		return x.TargetBranch
514	}
515	return ""
516}
517
518// CreateMergeRequestResponse holds the new merge request.
519type CreateMergeRequestResponse struct {
520	state protoimpl.MessageState `protogen:"open.v1"`
521	// MergeRequest is the created merge request.
522	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
523	unknownFields protoimpl.UnknownFields
524	sizeCache     protoimpl.SizeCache
525}
526
527func (x *CreateMergeRequestResponse) Reset() {
528	*x = CreateMergeRequestResponse{}
529	mi := &file_ermite_merge_request_proto_msgTypes[3]
530	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
531	ms.StoreMessageInfo(mi)
532}
533
534func (x *CreateMergeRequestResponse) String() string {
535	return protoimpl.X.MessageStringOf(x)
536}
537
538func (*CreateMergeRequestResponse) ProtoMessage() {}
539
540func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
541	mi := &file_ermite_merge_request_proto_msgTypes[3]
542	if x != nil {
543		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
544		if ms.LoadMessageInfo() == nil {
545			ms.StoreMessageInfo(mi)
546		}
547		return ms
548	}
549	return mi.MessageOf(x)
550}
551
552// Deprecated: Use CreateMergeRequestResponse.ProtoReflect.Descriptor instead.
553func (*CreateMergeRequestResponse) Descriptor() ([]byte, []int) {
554	return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
555}
556
557func (x *CreateMergeRequestResponse) GetMergeRequest() *MergeRequest {
558	if x != nil {
559		return x.MergeRequest
560	}
561	return nil
562}
563
564// ListMergeRequestsRequest selects a page of merge requests.
565type ListMergeRequestsRequest struct {
566	state protoimpl.MessageState `protogen:"open.v1"`
567	// Repo is the repository name.
568	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
569	// State restricts the result to one state. MERGE_REQUEST_STATE_UNSPECIFIED
570	// means every state.
571	State MergeRequestState `protobuf:"varint,2,opt,name=state,proto3,enum=ermite.MergeRequestState" json:"state,omitempty"`
572	// PageSize is the maximum number of merge requests to return. 0 means the
573	// server default; values above the server maximum are lowered to it.
574	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
575	// PageToken is the next_page_token of a previous response, to continue the
576	// same listing. Empty for the first page. Other fields must be unchanged.
577	PageToken     string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
578	unknownFields protoimpl.UnknownFields
579	sizeCache     protoimpl.SizeCache
580}
581
582func (x *ListMergeRequestsRequest) Reset() {
583	*x = ListMergeRequestsRequest{}
584	mi := &file_ermite_merge_request_proto_msgTypes[4]
585	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
586	ms.StoreMessageInfo(mi)
587}
588
589func (x *ListMergeRequestsRequest) String() string {
590	return protoimpl.X.MessageStringOf(x)
591}
592
593func (*ListMergeRequestsRequest) ProtoMessage() {}
594
595func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
596	mi := &file_ermite_merge_request_proto_msgTypes[4]
597	if x != nil {
598		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
599		if ms.LoadMessageInfo() == nil {
600			ms.StoreMessageInfo(mi)
601		}
602		return ms
603	}
604	return mi.MessageOf(x)
605}
606
607// Deprecated: Use ListMergeRequestsRequest.ProtoReflect.Descriptor instead.
608func (*ListMergeRequestsRequest) Descriptor() ([]byte, []int) {
609	return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
610}
611
612func (x *ListMergeRequestsRequest) GetRepo() string {
613	if x != nil {
614		return x.Repo
615	}
616	return ""
617}
618
619func (x *ListMergeRequestsRequest) GetState() MergeRequestState {
620	if x != nil {
621		return x.State
622	}
623	return MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED
624}
625
626func (x *ListMergeRequestsRequest) GetPageSize() int32 {
627	if x != nil {
628		return x.PageSize
629	}
630	return 0
631}
632
633func (x *ListMergeRequestsRequest) GetPageToken() string {
634	if x != nil {
635		return x.PageToken
636	}
637	return ""
638}
639
640// ListMergeRequestsResponse is one page of merge requests.
641type ListMergeRequestsResponse struct {
642	state protoimpl.MessageState `protogen:"open.v1"`
643	// MergeRequests are the merge requests of this page, highest number first.
644	MergeRequests []*MergeRequest `protobuf:"bytes,1,rep,name=merge_requests,json=mergeRequests,proto3" json:"merge_requests,omitempty"`
645	// NextPageToken is passed as page_token to get the next page. Empty when
646	// there is no next page.
647	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
648	unknownFields protoimpl.UnknownFields
649	sizeCache     protoimpl.SizeCache
650}
651
652func (x *ListMergeRequestsResponse) Reset() {
653	*x = ListMergeRequestsResponse{}
654	mi := &file_ermite_merge_request_proto_msgTypes[5]
655	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
656	ms.StoreMessageInfo(mi)
657}
658
659func (x *ListMergeRequestsResponse) String() string {
660	return protoimpl.X.MessageStringOf(x)
661}
662
663func (*ListMergeRequestsResponse) ProtoMessage() {}
664
665func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
666	mi := &file_ermite_merge_request_proto_msgTypes[5]
667	if x != nil {
668		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
669		if ms.LoadMessageInfo() == nil {
670			ms.StoreMessageInfo(mi)
671		}
672		return ms
673	}
674	return mi.MessageOf(x)
675}
676
677// Deprecated: Use ListMergeRequestsResponse.ProtoReflect.Descriptor instead.
678func (*ListMergeRequestsResponse) Descriptor() ([]byte, []int) {
679	return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
680}
681
682func (x *ListMergeRequestsResponse) GetMergeRequests() []*MergeRequest {
683	if x != nil {
684		return x.MergeRequests
685	}
686	return nil
687}
688
689func (x *ListMergeRequestsResponse) GetNextPageToken() string {
690	if x != nil {
691		return x.NextPageToken
692	}
693	return ""
694}
695
696// GetMergeRequestRequest selects a merge request.
697type GetMergeRequestRequest struct {
698	state protoimpl.MessageState `protogen:"open.v1"`
699	// Repo is the repository name.
700	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
701	// Number is the merge request number.
702	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
703	// SinceLastRead asks for the diff between the head recorded by MarkRead and
704	// the current head instead of the diff against the target. It works after a
705	// force-push as long as the recorded commit still exists in the repository.
706	// When nothing was marked read, or the recorded commit is gone, the response
707	// holds the diff against the target and says so in last_read_id and
708	// last_read_lost.
709	SinceLastRead bool `protobuf:"varint,3,opt,name=since_last_read,json=sinceLastRead,proto3" json:"since_last_read,omitempty"`
710	unknownFields protoimpl.UnknownFields
711	sizeCache     protoimpl.SizeCache
712}
713
714func (x *GetMergeRequestRequest) Reset() {
715	*x = GetMergeRequestRequest{}
716	mi := &file_ermite_merge_request_proto_msgTypes[6]
717	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
718	ms.StoreMessageInfo(mi)
719}
720
721func (x *GetMergeRequestRequest) String() string {
722	return protoimpl.X.MessageStringOf(x)
723}
724
725func (*GetMergeRequestRequest) ProtoMessage() {}
726
727func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
728	mi := &file_ermite_merge_request_proto_msgTypes[6]
729	if x != nil {
730		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
731		if ms.LoadMessageInfo() == nil {
732			ms.StoreMessageInfo(mi)
733		}
734		return ms
735	}
736	return mi.MessageOf(x)
737}
738
739// Deprecated: Use GetMergeRequestRequest.ProtoReflect.Descriptor instead.
740func (*GetMergeRequestRequest) Descriptor() ([]byte, []int) {
741	return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}
742}
743
744func (x *GetMergeRequestRequest) GetRepo() string {
745	if x != nil {
746		return x.Repo
747	}
748	return ""
749}
750
751func (x *GetMergeRequestRequest) GetNumber() int64 {
752	if x != nil {
753		return x.Number
754	}
755	return 0
756}
757
758func (x *GetMergeRequestRequest) GetSinceLastRead() bool {
759	if x != nil {
760		return x.SinceLastRead
761	}
762	return false
763}
764
765// GetMergeRequestResponse holds a merge request with its review data.
766type GetMergeRequestResponse struct {
767	state protoimpl.MessageState `protogen:"open.v1"`
768	// MergeRequest is the merge request.
769	MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
770	// Commits are the commits of the head that are not in the target
771	// ("target..head"), newest first. At most 100 are returned (a server limit
772	// that may change; rely on commits_truncated, not on the number). Empty when
773	// the source branch was deleted.
774	Commits []*Commit `protobuf:"bytes,2,rep,name=commits,proto3" json:"commits,omitempty"`
775	// CommitsTruncated is true when the branch has more commits than commits
776	// holds.
777	CommitsTruncated bool `protobuf:"varint,3,opt,name=commits_truncated,json=commitsTruncated,proto3" json:"commits_truncated,omitempty"`
778	// DiffBaseId is the id of the commit the diff compares from: the merge base
779	// of the target and the head, or the last read head when since_last_read
780	// applied. Empty when the source branch was deleted; diff is then empty.
781	DiffBaseId string `protobuf:"bytes,4,opt,name=diff_base_id,json=diffBaseId,proto3" json:"diff_base_id,omitempty"`
782	// Stats are the totals of the diff, including files that it omits or
783	// truncates.
784	Stats *DiffStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
785	// Diff is the structured diff from diff_base_id to the head, with the same
786	// limits and truncated flags as GetCommitResponse.diff.
787	Diff *Diff `protobuf:"bytes,6,opt,name=diff,proto3" json:"diff,omitempty"`
788	// Comments are every comment of the merge request, oldest first.
789	Comments []*Comment `protobuf:"bytes,7,rep,name=comments,proto3" json:"comments,omitempty"`
790	// LastReadId is the head recorded by MarkRead, whether or not
791	// since_last_read was set. Empty when nothing was marked read.
792	LastReadId string `protobuf:"bytes,8,opt,name=last_read_id,json=lastReadId,proto3" json:"last_read_id,omitempty"`
793	// LastReadLost is true when since_last_read was set, a head was recorded,
794	// but that commit no longer exists in the repository: the diff is then the
795	// diff against the target. A client should tell the reader to review the
796	// whole change again.
797	LastReadLost  bool `protobuf:"varint,9,opt,name=last_read_lost,json=lastReadLost,proto3" json:"last_read_lost,omitempty"`
798	unknownFields protoimpl.UnknownFields
799	sizeCache     protoimpl.SizeCache
800}
801
802func (x *GetMergeRequestResponse) Reset() {
803	*x = GetMergeRequestResponse{}
804	mi := &file_ermite_merge_request_proto_msgTypes[7]
805	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
806	ms.StoreMessageInfo(mi)
807}
808
809func (x *GetMergeRequestResponse) String() string {
810	return protoimpl.X.MessageStringOf(x)
811}
812
813func (*GetMergeRequestResponse) ProtoMessage() {}
814
815func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
816	mi := &file_ermite_merge_request_proto_msgTypes[7]
817	if x != nil {
818		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
819		if ms.LoadMessageInfo() == nil {
820			ms.StoreMessageInfo(mi)
821		}
822		return ms
823	}
824	return mi.MessageOf(x)
825}
826
827// Deprecated: Use GetMergeRequestResponse.ProtoReflect.Descriptor instead.
828func (*GetMergeRequestResponse) Descriptor() ([]byte, []int) {
829	return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}
830}
831
832func (x *GetMergeRequestResponse) GetMergeRequest() *MergeRequest {
833	if x != nil {
834		return x.MergeRequest
835	}
836	return nil
837}
838
839func (x *GetMergeRequestResponse) GetCommits() []*Commit {
840	if x != nil {
841		return x.Commits
842	}
843	return nil
844}
845
846func (x *GetMergeRequestResponse) GetCommitsTruncated() bool {
847	if x != nil {
848		return x.CommitsTruncated
849	}
850	return false
851}
852
853func (x *GetMergeRequestResponse) GetDiffBaseId() string {
854	if x != nil {
855		return x.DiffBaseId
856	}
857	return ""
858}
859
860func (x *GetMergeRequestResponse) GetStats() *DiffStats {
861	if x != nil {
862		return x.Stats
863	}
864	return nil
865}
866
867func (x *GetMergeRequestResponse) GetDiff() *Diff {
868	if x != nil {
869		return x.Diff
870	}
871	return nil
872}
873
874func (x *GetMergeRequestResponse) GetComments() []*Comment {
875	if x != nil {
876		return x.Comments
877	}
878	return nil
879}
880
881func (x *GetMergeRequestResponse) GetLastReadId() string {
882	if x != nil {
883		return x.LastReadId
884	}
885	return ""
886}
887
888func (x *GetMergeRequestResponse) GetLastReadLost() bool {
889	if x != nil {
890		return x.LastReadLost
891	}
892	return false
893}
894
895// AddCommentRequest describes the comment to add.
896type AddCommentRequest struct {
897	state protoimpl.MessageState `protogen:"open.v1"`
898	// Repo is the repository name.
899	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
900	// Number is the merge request number.
901	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
902	// Path is the file the comment is attached to, as given by the diff of the
903	// merge request: FileDiff.new_path, or old_path for a deleted file. Empty
904	// for a general comment; then line must be 0 and side unspecified.
905	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
906	// Line is the 1-based line number on side. It must be the old_number or
907	// new_number of a Line of a hunk of the file; a line outside the hunks is
908	// invalid_argument. 0 for a general comment.
909	Line int32 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
910	// Side is the side line counts on. Required when path is set.
911	Side DiffSide `protobuf:"varint,5,opt,name=side,proto3,enum=ermite.DiffSide" json:"side,omitempty"`
912	// Text is the plain-text content. Required.
913	Text          string `protobuf:"bytes,6,opt,name=text,proto3" json:"text,omitempty"`
914	unknownFields protoimpl.UnknownFields
915	sizeCache     protoimpl.SizeCache
916}
917
918func (x *AddCommentRequest) Reset() {
919	*x = AddCommentRequest{}
920	mi := &file_ermite_merge_request_proto_msgTypes[8]
921	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
922	ms.StoreMessageInfo(mi)
923}
924
925func (x *AddCommentRequest) String() string {
926	return protoimpl.X.MessageStringOf(x)
927}
928
929func (*AddCommentRequest) ProtoMessage() {}
930
931func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
932	mi := &file_ermite_merge_request_proto_msgTypes[8]
933	if x != nil {
934		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
935		if ms.LoadMessageInfo() == nil {
936			ms.StoreMessageInfo(mi)
937		}
938		return ms
939	}
940	return mi.MessageOf(x)
941}
942
943// Deprecated: Use AddCommentRequest.ProtoReflect.Descriptor instead.
944func (*AddCommentRequest) Descriptor() ([]byte, []int) {
945	return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}
946}
947
948func (x *AddCommentRequest) GetRepo() string {
949	if x != nil {
950		return x.Repo
951	}
952	return ""
953}
954
955func (x *AddCommentRequest) GetNumber() int64 {
956	if x != nil {
957		return x.Number
958	}
959	return 0
960}
961
962func (x *AddCommentRequest) GetPath() string {
963	if x != nil {
964		return x.Path
965	}
966	return ""
967}
968
969func (x *AddCommentRequest) GetLine() int32 {
970	if x != nil {
971		return x.Line
972	}
973	return 0
974}
975
976func (x *AddCommentRequest) GetSide() DiffSide {
977	if x != nil {
978		return x.Side
979	}
980	return DiffSide_DIFF_SIDE_UNSPECIFIED
981}
982
983func (x *AddCommentRequest) GetText() string {
984	if x != nil {
985		return x.Text
986	}
987	return ""
988}
989
990// AddCommentResponse holds the new comment.
991type AddCommentResponse struct {
992	state protoimpl.MessageState `protogen:"open.v1"`
993	// Comment is the created comment.
994	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
995	unknownFields protoimpl.UnknownFields
996	sizeCache     protoimpl.SizeCache
997}
998
999func (x *AddCommentResponse) Reset() {
1000	*x = AddCommentResponse{}
1001	mi := &file_ermite_merge_request_proto_msgTypes[9]
1002	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1003	ms.StoreMessageInfo(mi)
1004}
1005
1006func (x *AddCommentResponse) String() string {
1007	return protoimpl.X.MessageStringOf(x)
1008}
1009
1010func (*AddCommentResponse) ProtoMessage() {}
1011
1012func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
1013	mi := &file_ermite_merge_request_proto_msgTypes[9]
1014	if x != nil {
1015		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1016		if ms.LoadMessageInfo() == nil {
1017			ms.StoreMessageInfo(mi)
1018		}
1019		return ms
1020	}
1021	return mi.MessageOf(x)
1022}
1023
1024// Deprecated: Use AddCommentResponse.ProtoReflect.Descriptor instead.
1025func (*AddCommentResponse) Descriptor() ([]byte, []int) {
1026	return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}
1027}
1028
1029func (x *AddCommentResponse) GetComment() *Comment {
1030	if x != nil {
1031		return x.Comment
1032	}
1033	return nil
1034}
1035
1036// ResolveCommentRequest changes the resolved state of a comment.
1037type ResolveCommentRequest struct {
1038	state protoimpl.MessageState `protogen:"open.v1"`
1039	// Repo is the repository name.
1040	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1041	// Number is the merge request number.
1042	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1043	// CommentId is the Comment.id to change.
1044	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
1045	// Resolved is the new state: true to resolve, false to unresolve.
1046	Resolved      bool `protobuf:"varint,4,opt,name=resolved,proto3" json:"resolved,omitempty"`
1047	unknownFields protoimpl.UnknownFields
1048	sizeCache     protoimpl.SizeCache
1049}
1050
1051func (x *ResolveCommentRequest) Reset() {
1052	*x = ResolveCommentRequest{}
1053	mi := &file_ermite_merge_request_proto_msgTypes[10]
1054	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1055	ms.StoreMessageInfo(mi)
1056}
1057
1058func (x *ResolveCommentRequest) String() string {
1059	return protoimpl.X.MessageStringOf(x)
1060}
1061
1062func (*ResolveCommentRequest) ProtoMessage() {}
1063
1064func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
1065	mi := &file_ermite_merge_request_proto_msgTypes[10]
1066	if x != nil {
1067		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1068		if ms.LoadMessageInfo() == nil {
1069			ms.StoreMessageInfo(mi)
1070		}
1071		return ms
1072	}
1073	return mi.MessageOf(x)
1074}
1075
1076// Deprecated: Use ResolveCommentRequest.ProtoReflect.Descriptor instead.
1077func (*ResolveCommentRequest) Descriptor() ([]byte, []int) {
1078	return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}
1079}
1080
1081func (x *ResolveCommentRequest) GetRepo() string {
1082	if x != nil {
1083		return x.Repo
1084	}
1085	return ""
1086}
1087
1088func (x *ResolveCommentRequest) GetNumber() int64 {
1089	if x != nil {
1090		return x.Number
1091	}
1092	return 0
1093}
1094
1095func (x *ResolveCommentRequest) GetCommentId() string {
1096	if x != nil {
1097		return x.CommentId
1098	}
1099	return ""
1100}
1101
1102func (x *ResolveCommentRequest) GetResolved() bool {
1103	if x != nil {
1104		return x.Resolved
1105	}
1106	return false
1107}
1108
1109// ResolveCommentResponse holds the comment after the change.
1110type ResolveCommentResponse struct {
1111	state protoimpl.MessageState `protogen:"open.v1"`
1112	// Comment is the updated comment.
1113	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1114	unknownFields protoimpl.UnknownFields
1115	sizeCache     protoimpl.SizeCache
1116}
1117
1118func (x *ResolveCommentResponse) Reset() {
1119	*x = ResolveCommentResponse{}
1120	mi := &file_ermite_merge_request_proto_msgTypes[11]
1121	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1122	ms.StoreMessageInfo(mi)
1123}
1124
1125func (x *ResolveCommentResponse) String() string {
1126	return protoimpl.X.MessageStringOf(x)
1127}
1128
1129func (*ResolveCommentResponse) ProtoMessage() {}
1130
1131func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
1132	mi := &file_ermite_merge_request_proto_msgTypes[11]
1133	if x != nil {
1134		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1135		if ms.LoadMessageInfo() == nil {
1136			ms.StoreMessageInfo(mi)
1137		}
1138		return ms
1139	}
1140	return mi.MessageOf(x)
1141}
1142
1143// Deprecated: Use ResolveCommentResponse.ProtoReflect.Descriptor instead.
1144func (*ResolveCommentResponse) Descriptor() ([]byte, []int) {
1145	return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}
1146}
1147
1148func (x *ResolveCommentResponse) GetComment() *Comment {
1149	if x != nil {
1150		return x.Comment
1151	}
1152	return nil
1153}
1154
1155// CloseMergeRequestRequest names the merge request to close.
1156type CloseMergeRequestRequest struct {
1157	state protoimpl.MessageState `protogen:"open.v1"`
1158	// Repo is the repository name.
1159	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1160	// Number is the merge request number.
1161	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1162	unknownFields protoimpl.UnknownFields
1163	sizeCache     protoimpl.SizeCache
1164}
1165
1166func (x *CloseMergeRequestRequest) Reset() {
1167	*x = CloseMergeRequestRequest{}
1168	mi := &file_ermite_merge_request_proto_msgTypes[12]
1169	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1170	ms.StoreMessageInfo(mi)
1171}
1172
1173func (x *CloseMergeRequestRequest) String() string {
1174	return protoimpl.X.MessageStringOf(x)
1175}
1176
1177func (*CloseMergeRequestRequest) ProtoMessage() {}
1178
1179func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
1180	mi := &file_ermite_merge_request_proto_msgTypes[12]
1181	if x != nil {
1182		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1183		if ms.LoadMessageInfo() == nil {
1184			ms.StoreMessageInfo(mi)
1185		}
1186		return ms
1187	}
1188	return mi.MessageOf(x)
1189}
1190
1191// Deprecated: Use CloseMergeRequestRequest.ProtoReflect.Descriptor instead.
1192func (*CloseMergeRequestRequest) Descriptor() ([]byte, []int) {
1193	return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}
1194}
1195
1196func (x *CloseMergeRequestRequest) GetRepo() string {
1197	if x != nil {
1198		return x.Repo
1199	}
1200	return ""
1201}
1202
1203func (x *CloseMergeRequestRequest) GetNumber() int64 {
1204	if x != nil {
1205		return x.Number
1206	}
1207	return 0
1208}
1209
1210// CloseMergeRequestResponse holds the merge request after closing.
1211type CloseMergeRequestResponse struct {
1212	state protoimpl.MessageState `protogen:"open.v1"`
1213	// MergeRequest is the closed merge request.
1214	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1215	unknownFields protoimpl.UnknownFields
1216	sizeCache     protoimpl.SizeCache
1217}
1218
1219func (x *CloseMergeRequestResponse) Reset() {
1220	*x = CloseMergeRequestResponse{}
1221	mi := &file_ermite_merge_request_proto_msgTypes[13]
1222	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1223	ms.StoreMessageInfo(mi)
1224}
1225
1226func (x *CloseMergeRequestResponse) String() string {
1227	return protoimpl.X.MessageStringOf(x)
1228}
1229
1230func (*CloseMergeRequestResponse) ProtoMessage() {}
1231
1232func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
1233	mi := &file_ermite_merge_request_proto_msgTypes[13]
1234	if x != nil {
1235		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1236		if ms.LoadMessageInfo() == nil {
1237			ms.StoreMessageInfo(mi)
1238		}
1239		return ms
1240	}
1241	return mi.MessageOf(x)
1242}
1243
1244// Deprecated: Use CloseMergeRequestResponse.ProtoReflect.Descriptor instead.
1245func (*CloseMergeRequestResponse) Descriptor() ([]byte, []int) {
1246	return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}
1247}
1248
1249func (x *CloseMergeRequestResponse) GetMergeRequest() *MergeRequest {
1250	if x != nil {
1251		return x.MergeRequest
1252	}
1253	return nil
1254}
1255
1256// MergeMergeRequestRequest describes the merge to perform.
1257type MergeMergeRequestRequest struct {
1258	state protoimpl.MessageState `protogen:"open.v1"`
1259	// Repo is the repository name.
1260	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1261	// Number is the merge request number.
1262	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1263	// Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
1264	// must be in RepoSettings.allowed_merge_modes of the repository.
1265	Mode MergeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
1266	// HeadId is the full id of the commit the caller reviewed, that is the
1267	// MergeRequest.head_id it was shown. Required. The merge happens only if the
1268	// source branch still points to it.
1269	HeadId string `protobuf:"bytes,4,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
1270	// DeleteSourceBranch deletes the source branch after the merge. The merge
1271	// is refused before anything changes when the source branch is the default
1272	// branch of the repository or the source or target of another open merge
1273	// request. Servers without the "merge_requests.delete_branch" feature ignore
1274	// it.
1275	DeleteSourceBranch bool `protobuf:"varint,5,opt,name=delete_source_branch,json=deleteSourceBranch,proto3" json:"delete_source_branch,omitempty"`
1276	unknownFields      protoimpl.UnknownFields
1277	sizeCache          protoimpl.SizeCache
1278}
1279
1280func (x *MergeMergeRequestRequest) Reset() {
1281	*x = MergeMergeRequestRequest{}
1282	mi := &file_ermite_merge_request_proto_msgTypes[14]
1283	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1284	ms.StoreMessageInfo(mi)
1285}
1286
1287func (x *MergeMergeRequestRequest) String() string {
1288	return protoimpl.X.MessageStringOf(x)
1289}
1290
1291func (*MergeMergeRequestRequest) ProtoMessage() {}
1292
1293func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
1294	mi := &file_ermite_merge_request_proto_msgTypes[14]
1295	if x != nil {
1296		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1297		if ms.LoadMessageInfo() == nil {
1298			ms.StoreMessageInfo(mi)
1299		}
1300		return ms
1301	}
1302	return mi.MessageOf(x)
1303}
1304
1305// Deprecated: Use MergeMergeRequestRequest.ProtoReflect.Descriptor instead.
1306func (*MergeMergeRequestRequest) Descriptor() ([]byte, []int) {
1307	return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}
1308}
1309
1310func (x *MergeMergeRequestRequest) GetRepo() string {
1311	if x != nil {
1312		return x.Repo
1313	}
1314	return ""
1315}
1316
1317func (x *MergeMergeRequestRequest) GetNumber() int64 {
1318	if x != nil {
1319		return x.Number
1320	}
1321	return 0
1322}
1323
1324func (x *MergeMergeRequestRequest) GetMode() MergeMode {
1325	if x != nil {
1326		return x.Mode
1327	}
1328	return MergeMode_MERGE_MODE_UNSPECIFIED
1329}
1330
1331func (x *MergeMergeRequestRequest) GetHeadId() string {
1332	if x != nil {
1333		return x.HeadId
1334	}
1335	return ""
1336}
1337
1338func (x *MergeMergeRequestRequest) GetDeleteSourceBranch() bool {
1339	if x != nil {
1340		return x.DeleteSourceBranch
1341	}
1342	return false
1343}
1344
1345// MergeMergeRequestResponse holds the merged merge request.
1346type MergeMergeRequestResponse struct {
1347	state protoimpl.MessageState `protogen:"open.v1"`
1348	// MergeRequest is the merge request after the merge: state MERGED,
1349	// merged_commit_id set to the new tip of the target branch and merge_mode
1350	// set to the mode used.
1351	MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1352	// SourceBranchDeleted is true when delete_source_branch was set and the
1353	// branch is gone. It is false when the deletion failed after the merge (the
1354	// branch moved in between, say): the merge stands and the branch is kept.
1355	SourceBranchDeleted bool `protobuf:"varint,2,opt,name=source_branch_deleted,json=sourceBranchDeleted,proto3" json:"source_branch_deleted,omitempty"`
1356	unknownFields       protoimpl.UnknownFields
1357	sizeCache           protoimpl.SizeCache
1358}
1359
1360func (x *MergeMergeRequestResponse) Reset() {
1361	*x = MergeMergeRequestResponse{}
1362	mi := &file_ermite_merge_request_proto_msgTypes[15]
1363	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1364	ms.StoreMessageInfo(mi)
1365}
1366
1367func (x *MergeMergeRequestResponse) String() string {
1368	return protoimpl.X.MessageStringOf(x)
1369}
1370
1371func (*MergeMergeRequestResponse) ProtoMessage() {}
1372
1373func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
1374	mi := &file_ermite_merge_request_proto_msgTypes[15]
1375	if x != nil {
1376		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1377		if ms.LoadMessageInfo() == nil {
1378			ms.StoreMessageInfo(mi)
1379		}
1380		return ms
1381	}
1382	return mi.MessageOf(x)
1383}
1384
1385// Deprecated: Use MergeMergeRequestResponse.ProtoReflect.Descriptor instead.
1386func (*MergeMergeRequestResponse) Descriptor() ([]byte, []int) {
1387	return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}
1388}
1389
1390func (x *MergeMergeRequestResponse) GetMergeRequest() *MergeRequest {
1391	if x != nil {
1392		return x.MergeRequest
1393	}
1394	return nil
1395}
1396
1397func (x *MergeMergeRequestResponse) GetSourceBranchDeleted() bool {
1398	if x != nil {
1399		return x.SourceBranchDeleted
1400	}
1401	return false
1402}
1403
1404// MarkReadRequest records a read position.
1405type MarkReadRequest struct {
1406	state protoimpl.MessageState `protogen:"open.v1"`
1407	// Repo is the repository name.
1408	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1409	// Number is the merge request number.
1410	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1411	// HeadId is the full id of the commit the caller has reviewed, usually the
1412	// MergeRequest.head_id it was shown. Empty means the current head of the
1413	// source branch.
1414	HeadId        string `protobuf:"bytes,3,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
1415	unknownFields protoimpl.UnknownFields
1416	sizeCache     protoimpl.SizeCache
1417}
1418
1419func (x *MarkReadRequest) Reset() {
1420	*x = MarkReadRequest{}
1421	mi := &file_ermite_merge_request_proto_msgTypes[16]
1422	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1423	ms.StoreMessageInfo(mi)
1424}
1425
1426func (x *MarkReadRequest) String() string {
1427	return protoimpl.X.MessageStringOf(x)
1428}
1429
1430func (*MarkReadRequest) ProtoMessage() {}
1431
1432func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
1433	mi := &file_ermite_merge_request_proto_msgTypes[16]
1434	if x != nil {
1435		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1436		if ms.LoadMessageInfo() == nil {
1437			ms.StoreMessageInfo(mi)
1438		}
1439		return ms
1440	}
1441	return mi.MessageOf(x)
1442}
1443
1444// Deprecated: Use MarkReadRequest.ProtoReflect.Descriptor instead.
1445func (*MarkReadRequest) Descriptor() ([]byte, []int) {
1446	return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}
1447}
1448
1449func (x *MarkReadRequest) GetRepo() string {
1450	if x != nil {
1451		return x.Repo
1452	}
1453	return ""
1454}
1455
1456func (x *MarkReadRequest) GetNumber() int64 {
1457	if x != nil {
1458		return x.Number
1459	}
1460	return 0
1461}
1462
1463func (x *MarkReadRequest) GetHeadId() string {
1464	if x != nil {
1465		return x.HeadId
1466	}
1467	return ""
1468}
1469
1470// MarkReadResponse is empty.
1471type MarkReadResponse struct {
1472	state         protoimpl.MessageState `protogen:"open.v1"`
1473	unknownFields protoimpl.UnknownFields
1474	sizeCache     protoimpl.SizeCache
1475}
1476
1477func (x *MarkReadResponse) Reset() {
1478	*x = MarkReadResponse{}
1479	mi := &file_ermite_merge_request_proto_msgTypes[17]
1480	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1481	ms.StoreMessageInfo(mi)
1482}
1483
1484func (x *MarkReadResponse) String() string {
1485	return protoimpl.X.MessageStringOf(x)
1486}
1487
1488func (*MarkReadResponse) ProtoMessage() {}
1489
1490func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
1491	mi := &file_ermite_merge_request_proto_msgTypes[17]
1492	if x != nil {
1493		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1494		if ms.LoadMessageInfo() == nil {
1495			ms.StoreMessageInfo(mi)
1496		}
1497		return ms
1498	}
1499	return mi.MessageOf(x)
1500}
1501
1502// Deprecated: Use MarkReadResponse.ProtoReflect.Descriptor instead.
1503func (*MarkReadResponse) Descriptor() ([]byte, []int) {
1504	return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}
1505}
1506
1507var File_ermite_merge_request_proto protoreflect.FileDescriptor
1508
1509const file_ermite_merge_request_proto_rawDesc = "" +
1510	"\n" +
1511	"\x1aermite/merge_request.proto\x12\x06ermite\x1a\x10ermite/git.proto\x1a\x12ermite/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf0\x03\n" +
1512	"\fMergeRequest\x12\x12\n" +
1513	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1514	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +
1515	"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
1516	"\vdescription\x18\x04 \x01(\tR\vdescription\x12#\n" +
1517	"\rsource_branch\x18\x05 \x01(\tR\fsourceBranch\x12#\n" +
1518	"\rtarget_branch\x18\x06 \x01(\tR\ftargetBranch\x12/\n" +
1519	"\x05state\x18\a \x01(\x0e2\x19.ermite.MergeRequestStateR\x05state\x12\x16\n" +
1520	"\x06author\x18\b \x01(\tR\x06author\x129\n" +
1521	"\n" +
1522	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
1523	"\n" +
1524	"updated_at\x18\n" +
1525	" \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x17\n" +
1526	"\ahead_id\x18\v \x01(\tR\x06headId\x12(\n" +
1527	"\x10merged_commit_id\x18\f \x01(\tR\x0emergedCommitId\x120\n" +
1528	"\n" +
1529	"merge_mode\x18\r \x01(\x0e2\x11.ermite.MergeModeR\tmergeMode\"\x87\x02\n" +
1530	"\aComment\x12\x0e\n" +
1531	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
1532	"\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +
1533	"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
1534	"\x04line\x18\x04 \x01(\x05R\x04line\x12$\n" +
1535	"\x04side\x18\x05 \x01(\x0e2\x10.ermite.DiffSideR\x04side\x12\x1b\n" +
1536	"\tcommit_id\x18\x06 \x01(\tR\bcommitId\x12\x12\n" +
1537	"\x04text\x18\a \x01(\tR\x04text\x12\x1a\n" +
1538	"\bresolved\x18\b \x01(\bR\bresolved\x129\n" +
1539	"\n" +
1540	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xb1\x01\n" +
1541	"\x19CreateMergeRequestRequest\x12\x12\n" +
1542	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x14\n" +
1543	"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
1544	"\vdescription\x18\x03 \x01(\tR\vdescription\x12#\n" +
1545	"\rsource_branch\x18\x04 \x01(\tR\fsourceBranch\x12#\n" +
1546	"\rtarget_branch\x18\x05 \x01(\tR\ftargetBranch\"W\n" +
1547	"\x1aCreateMergeRequestResponse\x129\n" +
1548	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\x9b\x01\n" +
1549	"\x18ListMergeRequestsRequest\x12\x12\n" +
1550	"\x04repo\x18\x01 \x01(\tR\x04repo\x12/\n" +
1551	"\x05state\x18\x02 \x01(\x0e2\x19.ermite.MergeRequestStateR\x05state\x12\x1b\n" +
1552	"\tpage_size\x18\x03 \x01(\x05R\bpageSize\x12\x1d\n" +
1553	"\n" +
1554	"page_token\x18\x04 \x01(\tR\tpageToken\"\x80\x01\n" +
1555	"\x19ListMergeRequestsResponse\x12;\n" +
1556	"\x0emerge_requests\x18\x01 \x03(\v2\x14.ermite.MergeRequestR\rmergeRequests\x12&\n" +
1557	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"l\n" +
1558	"\x16GetMergeRequestRequest\x12\x12\n" +
1559	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1560	"\x06number\x18\x02 \x01(\x03R\x06number\x12&\n" +
1561	"\x0fsince_last_read\x18\x03 \x01(\bR\rsinceLastRead\"\x8d\x03\n" +
1562	"\x17GetMergeRequestResponse\x129\n" +
1563	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x12(\n" +
1564	"\acommits\x18\x02 \x03(\v2\x0e.ermite.CommitR\acommits\x12+\n" +
1565	"\x11commits_truncated\x18\x03 \x01(\bR\x10commitsTruncated\x12 \n" +
1566	"\fdiff_base_id\x18\x04 \x01(\tR\n" +
1567	"diffBaseId\x12'\n" +
1568	"\x05stats\x18\x05 \x01(\v2\x11.ermite.DiffStatsR\x05stats\x12 \n" +
1569	"\x04diff\x18\x06 \x01(\v2\f.ermite.DiffR\x04diff\x12+\n" +
1570	"\bcomments\x18\a \x03(\v2\x0f.ermite.CommentR\bcomments\x12 \n" +
1571	"\flast_read_id\x18\b \x01(\tR\n" +
1572	"lastReadId\x12$\n" +
1573	"\x0elast_read_lost\x18\t \x01(\bR\flastReadLost\"\xa1\x01\n" +
1574	"\x11AddCommentRequest\x12\x12\n" +
1575	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1576	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x12\n" +
1577	"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
1578	"\x04line\x18\x04 \x01(\x05R\x04line\x12$\n" +
1579	"\x04side\x18\x05 \x01(\x0e2\x10.ermite.DiffSideR\x04side\x12\x12\n" +
1580	"\x04text\x18\x06 \x01(\tR\x04text\"?\n" +
1581	"\x12AddCommentResponse\x12)\n" +
1582	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"~\n" +
1583	"\x15ResolveCommentRequest\x12\x12\n" +
1584	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1585	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
1586	"\n" +
1587	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x1a\n" +
1588	"\bresolved\x18\x04 \x01(\bR\bresolved\"C\n" +
1589	"\x16ResolveCommentResponse\x12)\n" +
1590	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"F\n" +
1591	"\x18CloseMergeRequestRequest\x12\x12\n" +
1592	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1593	"\x06number\x18\x02 \x01(\x03R\x06number\"V\n" +
1594	"\x19CloseMergeRequestResponse\x129\n" +
1595	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\xb8\x01\n" +
1596	"\x18MergeMergeRequestRequest\x12\x12\n" +
1597	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1598	"\x06number\x18\x02 \x01(\x03R\x06number\x12%\n" +
1599	"\x04mode\x18\x03 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
1600	"\ahead_id\x18\x04 \x01(\tR\x06headId\x120\n" +
1601	"\x14delete_source_branch\x18\x05 \x01(\bR\x12deleteSourceBranch\"\x8a\x01\n" +
1602	"\x19MergeMergeRequestResponse\x129\n" +
1603	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x122\n" +
1604	"\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"V\n" +
1605	"\x0fMarkReadRequest\x12\x12\n" +
1606	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1607	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x17\n" +
1608	"\ahead_id\x18\x03 \x01(\tR\x06headId\"\x12\n" +
1609	"\x10MarkReadResponse*\x96\x01\n" +
1610	"\x11MergeRequestState\x12#\n" +
1611	"\x1fMERGE_REQUEST_STATE_UNSPECIFIED\x10\x00\x12\x1c\n" +
1612	"\x18MERGE_REQUEST_STATE_OPEN\x10\x01\x12\x1e\n" +
1613	"\x1aMERGE_REQUEST_STATE_MERGED\x10\x02\x12\x1e\n" +
1614	"\x1aMERGE_REQUEST_STATE_CLOSED\x10\x03*K\n" +
1615	"\bDiffSide\x12\x19\n" +
1616	"\x15DIFF_SIDE_UNSPECIFIED\x10\x00\x12\x11\n" +
1617	"\rDIFF_SIDE_OLD\x10\x01\x12\x11\n" +
1618	"\rDIFF_SIDE_NEW\x10\x022\xa9\x05\n" +
1619	"\x13MergeRequestService\x12[\n" +
1620	"\x12CreateMergeRequest\x12!.ermite.CreateMergeRequestRequest\x1a\".ermite.CreateMergeRequestResponse\x12X\n" +
1621	"\x11ListMergeRequests\x12 .ermite.ListMergeRequestsRequest\x1a!.ermite.ListMergeRequestsResponse\x12R\n" +
1622	"\x0fGetMergeRequest\x12\x1e.ermite.GetMergeRequestRequest\x1a\x1f.ermite.GetMergeRequestResponse\x12C\n" +
1623	"\n" +
1624	"AddComment\x12\x19.ermite.AddCommentRequest\x1a\x1a.ermite.AddCommentResponse\x12O\n" +
1625	"\x0eResolveComment\x12\x1d.ermite.ResolveCommentRequest\x1a\x1e.ermite.ResolveCommentResponse\x12X\n" +
1626	"\x11CloseMergeRequest\x12 .ermite.CloseMergeRequestRequest\x1a!.ermite.CloseMergeRequestResponse\x12X\n" +
1627	"\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12=\n" +
1628	"\bMarkRead\x12\x17.ermite.MarkReadRequest\x1a\x18.ermite.MarkReadResponseBx\n" +
1629	"\n" +
1630	"com.ermiteB\x11MergeRequestProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
1631
1632var (
1633	file_ermite_merge_request_proto_rawDescOnce sync.Once
1634	file_ermite_merge_request_proto_rawDescData []byte
1635)
1636
1637func file_ermite_merge_request_proto_rawDescGZIP() []byte {
1638	file_ermite_merge_request_proto_rawDescOnce.Do(func() {
1639		file_ermite_merge_request_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)))
1640	})
1641	return file_ermite_merge_request_proto_rawDescData
1642}
1643
1644var file_ermite_merge_request_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
1645var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
1646var file_ermite_merge_request_proto_goTypes = []any{
1647	(MergeRequestState)(0),             // 0: ermite.MergeRequestState
1648	(DiffSide)(0),                      // 1: ermite.DiffSide
1649	(*MergeRequest)(nil),               // 2: ermite.MergeRequest
1650	(*Comment)(nil),                    // 3: ermite.Comment
1651	(*CreateMergeRequestRequest)(nil),  // 4: ermite.CreateMergeRequestRequest
1652	(*CreateMergeRequestResponse)(nil), // 5: ermite.CreateMergeRequestResponse
1653	(*ListMergeRequestsRequest)(nil),   // 6: ermite.ListMergeRequestsRequest
1654	(*ListMergeRequestsResponse)(nil),  // 7: ermite.ListMergeRequestsResponse
1655	(*GetMergeRequestRequest)(nil),     // 8: ermite.GetMergeRequestRequest
1656	(*GetMergeRequestResponse)(nil),    // 9: ermite.GetMergeRequestResponse
1657	(*AddCommentRequest)(nil),          // 10: ermite.AddCommentRequest
1658	(*AddCommentResponse)(nil),         // 11: ermite.AddCommentResponse
1659	(*ResolveCommentRequest)(nil),      // 12: ermite.ResolveCommentRequest
1660	(*ResolveCommentResponse)(nil),     // 13: ermite.ResolveCommentResponse
1661	(*CloseMergeRequestRequest)(nil),   // 14: ermite.CloseMergeRequestRequest
1662	(*CloseMergeRequestResponse)(nil),  // 15: ermite.CloseMergeRequestResponse
1663	(*MergeMergeRequestRequest)(nil),   // 16: ermite.MergeMergeRequestRequest
1664	(*MergeMergeRequestResponse)(nil),  // 17: ermite.MergeMergeRequestResponse
1665	(*MarkReadRequest)(nil),            // 18: ermite.MarkReadRequest
1666	(*MarkReadResponse)(nil),           // 19: ermite.MarkReadResponse
1667	(*timestamppb.Timestamp)(nil),      // 20: google.protobuf.Timestamp
1668	(MergeMode)(0),                     // 21: ermite.MergeMode
1669	(*Commit)(nil),                     // 22: ermite.Commit
1670	(*DiffStats)(nil),                  // 23: ermite.DiffStats
1671	(*Diff)(nil),                       // 24: ermite.Diff
1672}
1673var file_ermite_merge_request_proto_depIdxs = []int32{
1674	0,  // 0: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState
1675	20, // 1: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp
1676	20, // 2: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp
1677	21, // 3: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode
1678	1,  // 4: ermite.Comment.side:type_name -> ermite.DiffSide
1679	20, // 5: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp
1680	2,  // 6: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
1681	0,  // 7: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState
1682	2,  // 8: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest
1683	2,  // 9: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
1684	22, // 10: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit
1685	23, // 11: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats
1686	24, // 12: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff
1687	3,  // 13: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment
1688	1,  // 14: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide
1689	3,  // 15: ermite.AddCommentResponse.comment:type_name -> ermite.Comment
1690	3,  // 16: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment
1691	2,  // 17: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
1692	21, // 18: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode
1693	2,  // 19: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
1694	4,  // 20: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest
1695	6,  // 21: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest
1696	8,  // 22: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest
1697	10, // 23: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest
1698	12, // 24: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest
1699	14, // 25: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest
1700	16, // 26: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest
1701	18, // 27: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest
1702	5,  // 28: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse
1703	7,  // 29: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse
1704	9,  // 30: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse
1705	11, // 31: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse
1706	13, // 32: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse
1707	15, // 33: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse
1708	17, // 34: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse
1709	19, // 35: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse
1710	28, // [28:36] is the sub-list for method output_type
1711	20, // [20:28] is the sub-list for method input_type
1712	20, // [20:20] is the sub-list for extension type_name
1713	20, // [20:20] is the sub-list for extension extendee
1714	0,  // [0:20] is the sub-list for field type_name
1715}
1716
1717func init() { file_ermite_merge_request_proto_init() }
1718func file_ermite_merge_request_proto_init() {
1719	if File_ermite_merge_request_proto != nil {
1720		return
1721	}
1722	file_ermite_git_proto_init()
1723	file_ermite_types_proto_init()
1724	type x struct{}
1725	out := protoimpl.TypeBuilder{
1726		File: protoimpl.DescBuilder{
1727			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1728			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)),
1729			NumEnums:      2,
1730			NumMessages:   18,
1731			NumExtensions: 0,
1732			NumServices:   1,
1733		},
1734		GoTypes:           file_ermite_merge_request_proto_goTypes,
1735		DependencyIndexes: file_ermite_merge_request_proto_depIdxs,
1736		EnumInfos:         file_ermite_merge_request_proto_enumTypes,
1737		MessageInfos:      file_ermite_merge_request_proto_msgTypes,
1738	}.Build()
1739	File_ermite_merge_request_proto = out.File
1740	file_ermite_merge_request_proto_goTypes = nil
1741	file_ermite_merge_request_proto_depIdxs = nil
1742}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 18

↑↓ moveenter openesc close