v0.8.0 11411cf

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// Verdict is the judgement a reviewer gives with a comment.
141type Verdict int32
142
143const (
144	// Not set. The comment carries no verdict. In AddCommentRequest it means a
145	// plain comment.
146	Verdict_VERDICT_UNSPECIFIED Verdict = 0
147	// The reviewer approves the merge request. The comment is created resolved.
148	Verdict_VERDICT_APPROVE Verdict = 1
149	// The reviewer asks for changes. The comment starts unresolved.
150	Verdict_VERDICT_CHANGES_REQUESTED Verdict = 2
151)
152
153// Enum value maps for Verdict.
154var (
155	Verdict_name = map[int32]string{
156		0: "VERDICT_UNSPECIFIED",
157		1: "VERDICT_APPROVE",
158		2: "VERDICT_CHANGES_REQUESTED",
159	}
160	Verdict_value = map[string]int32{
161		"VERDICT_UNSPECIFIED":       0,
162		"VERDICT_APPROVE":           1,
163		"VERDICT_CHANGES_REQUESTED": 2,
164	}
165)
166
167func (x Verdict) Enum() *Verdict {
168	p := new(Verdict)
169	*p = x
170	return p
171}
172
173func (x Verdict) String() string {
174	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
175}
176
177func (Verdict) Descriptor() protoreflect.EnumDescriptor {
178	return file_ermite_merge_request_proto_enumTypes[2].Descriptor()
179}
180
181func (Verdict) Type() protoreflect.EnumType {
182	return &file_ermite_merge_request_proto_enumTypes[2]
183}
184
185func (x Verdict) Number() protoreflect.EnumNumber {
186	return protoreflect.EnumNumber(x)
187}
188
189// Deprecated: Use Verdict.Descriptor instead.
190func (Verdict) EnumDescriptor() ([]byte, []int) {
191	return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
192}
193
194// MergeRequest asks to merge one branch of a repository into another branch
195// of the same repository. It is about a branch, not about who wrote it.
196type MergeRequest struct {
197	state protoimpl.MessageState `protogen:"open.v1"`
198	// Repo is the name of the repository.
199	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
200	// Number identifies the merge request within its repository, starting at 1
201	// and never reused. It is written "!<number>" in messages and URLs.
202	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
203	// Title is a one-line plain-text title, at most 120 characters.
204	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
205	// Description is a plain-text description, at most 8,000 characters. It may
206	// be empty. Clients show it escaped, with line breaks kept.
207	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
208	// SourceBranch is the short name of the branch to merge, for example
209	// "feat/x".
210	SourceBranch string `protobuf:"bytes,5,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"`
211	// TargetBranch is the short name of the branch to merge into, for example
212	// "main".
213	TargetBranch string `protobuf:"bytes,6,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
214	// State is where the merge request is in its life.
215	State MergeRequestState `protobuf:"varint,7,opt,name=state,proto3,enum=ermite.MergeRequestState" json:"state,omitempty"`
216	// Author names who created the merge request: the label of the token that
217	// was used, "root" for the root token, or "owner" for a web session. It is
218	// informational: labels are not unique and the token may be gone.
219	Author string `protobuf:"bytes,8,opt,name=author,proto3" json:"author,omitempty"`
220	// CreatedAt is when the merge request was created.
221	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
222	// UpdatedAt is when the merge request last changed: title, description,
223	// state, or a comment added or resolved. Pushes to the source branch do not
224	// change it.
225	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
226	// HeadId is the id of the commit the source branch points to. While the
227	// merge request is open it is read from Git at every call, so it changes
228	// when the branch is pushed; it is empty if the branch was deleted. Once
229	// merged or closed it is the head at that moment.
230	HeadId string `protobuf:"bytes,11,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
231	// MergedCommitId is the id of the commit the target branch points to after
232	// the merge: the head for a fast-forward, the new commit for a squash.
233	// Empty unless state is MERGED.
234	MergedCommitId string `protobuf:"bytes,12,opt,name=merged_commit_id,json=mergedCommitId,proto3" json:"merged_commit_id,omitempty"`
235	// MergeMode is how the merge request was merged. MERGE_MODE_UNSPECIFIED
236	// unless state is MERGED.
237	MergeMode     MergeMode `protobuf:"varint,13,opt,name=merge_mode,json=mergeMode,proto3,enum=ermite.MergeMode" json:"merge_mode,omitempty"`
238	unknownFields protoimpl.UnknownFields
239	sizeCache     protoimpl.SizeCache
240}
241
242func (x *MergeRequest) Reset() {
243	*x = MergeRequest{}
244	mi := &file_ermite_merge_request_proto_msgTypes[0]
245	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
246	ms.StoreMessageInfo(mi)
247}
248
249func (x *MergeRequest) String() string {
250	return protoimpl.X.MessageStringOf(x)
251}
252
253func (*MergeRequest) ProtoMessage() {}
254
255func (x *MergeRequest) ProtoReflect() protoreflect.Message {
256	mi := &file_ermite_merge_request_proto_msgTypes[0]
257	if x != nil {
258		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
259		if ms.LoadMessageInfo() == nil {
260			ms.StoreMessageInfo(mi)
261		}
262		return ms
263	}
264	return mi.MessageOf(x)
265}
266
267// Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead.
268func (*MergeRequest) Descriptor() ([]byte, []int) {
269	return file_ermite_merge_request_proto_rawDescGZIP(), []int{0}
270}
271
272func (x *MergeRequest) GetRepo() string {
273	if x != nil {
274		return x.Repo
275	}
276	return ""
277}
278
279func (x *MergeRequest) GetNumber() int64 {
280	if x != nil {
281		return x.Number
282	}
283	return 0
284}
285
286func (x *MergeRequest) GetTitle() string {
287	if x != nil {
288		return x.Title
289	}
290	return ""
291}
292
293func (x *MergeRequest) GetDescription() string {
294	if x != nil {
295		return x.Description
296	}
297	return ""
298}
299
300func (x *MergeRequest) GetSourceBranch() string {
301	if x != nil {
302		return x.SourceBranch
303	}
304	return ""
305}
306
307func (x *MergeRequest) GetTargetBranch() string {
308	if x != nil {
309		return x.TargetBranch
310	}
311	return ""
312}
313
314func (x *MergeRequest) GetState() MergeRequestState {
315	if x != nil {
316		return x.State
317	}
318	return MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED
319}
320
321func (x *MergeRequest) GetAuthor() string {
322	if x != nil {
323		return x.Author
324	}
325	return ""
326}
327
328func (x *MergeRequest) GetCreatedAt() *timestamppb.Timestamp {
329	if x != nil {
330		return x.CreatedAt
331	}
332	return nil
333}
334
335func (x *MergeRequest) GetUpdatedAt() *timestamppb.Timestamp {
336	if x != nil {
337		return x.UpdatedAt
338	}
339	return nil
340}
341
342func (x *MergeRequest) GetHeadId() string {
343	if x != nil {
344		return x.HeadId
345	}
346	return ""
347}
348
349func (x *MergeRequest) GetMergedCommitId() string {
350	if x != nil {
351		return x.MergedCommitId
352	}
353	return ""
354}
355
356func (x *MergeRequest) GetMergeMode() MergeMode {
357	if x != nil {
358		return x.MergeMode
359	}
360	return MergeMode_MERGE_MODE_UNSPECIFIED
361}
362
363// Comment is a note on a merge request, either general or attached to a line
364// of its diff.
365type Comment struct {
366	state protoimpl.MessageState `protogen:"open.v1"`
367	// Id identifies the comment within its merge request. Opaque.
368	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
369	// Author names who wrote the comment, like MergeRequest.author.
370	Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
371	// Path is the path of the commented file in the diff (the new path, or the
372	// old path of a deleted file). Empty for a general comment.
373	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
374	// Line is the 1-based line number on side. 0 for a general comment.
375	Line int32 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
376	// Side tells whether line counts on the old or the new side of the diff.
377	// DIFF_SIDE_UNSPECIFIED for a general comment.
378	Side DiffSide `protobuf:"varint,5,opt,name=side,proto3,enum=ermite.DiffSide" json:"side,omitempty"`
379	// CommitId is the head of the merge request when the comment was written.
380	// When it differs from the current head the line may have moved; clients
381	// may show the comment as outdated.
382	CommitId string `protobuf:"bytes,6,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
383	// Text is the Markdown source, at most 8,000 characters. Clients render it
384	// as Markdown without raw HTML; "^<id>" refers to a note of the same merge
385	// request. Empty when deleted is true, and possibly empty for a comment
386	// that carries a verdict.
387	Text string `protobuf:"bytes,7,opt,name=text,proto3" json:"text,omitempty"`
388	// Resolved is true once the comment was marked resolved.
389	Resolved bool `protobuf:"varint,8,opt,name=resolved,proto3" json:"resolved,omitempty"`
390	// CreatedAt is when the comment was written.
391	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
392	// ReplyTo is the id of the root comment this comment replies to. Empty for
393	// a root comment. A reply has the path, line, start_line and side of its
394	// root, and its commit_id is the head when the reply was written. Threads
395	// have one level: a reply never has replies.
396	ReplyTo string `protobuf:"bytes,10,opt,name=reply_to,json=replyTo,proto3" json:"reply_to,omitempty"`
397	// StartLine is the 1-based first line of a range that ends at line, on the
398	// same side. 0 for a comment on a single line or a general comment.
399	StartLine int32 `protobuf:"varint,11,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"`
400	// Verdict is the judgement given with the comment. Only a root comment has
401	// one; it never changes after creation.
402	Verdict Verdict `protobuf:"varint,12,opt,name=verdict,proto3,enum=ermite.Verdict" json:"verdict,omitempty"`
403	// EditedAt is when the text was last changed or the comment was deleted.
404	// Unset if it never was.
405	EditedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=edited_at,json=editedAt,proto3" json:"edited_at,omitempty"`
406	// Deleted is true once the author deleted the comment. Its text is then
407	// empty; its id, anchor, replies and verdict remain.
408	Deleted       bool `protobuf:"varint,14,opt,name=deleted,proto3" json:"deleted,omitempty"`
409	unknownFields protoimpl.UnknownFields
410	sizeCache     protoimpl.SizeCache
411}
412
413func (x *Comment) Reset() {
414	*x = Comment{}
415	mi := &file_ermite_merge_request_proto_msgTypes[1]
416	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
417	ms.StoreMessageInfo(mi)
418}
419
420func (x *Comment) String() string {
421	return protoimpl.X.MessageStringOf(x)
422}
423
424func (*Comment) ProtoMessage() {}
425
426func (x *Comment) ProtoReflect() protoreflect.Message {
427	mi := &file_ermite_merge_request_proto_msgTypes[1]
428	if x != nil {
429		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
430		if ms.LoadMessageInfo() == nil {
431			ms.StoreMessageInfo(mi)
432		}
433		return ms
434	}
435	return mi.MessageOf(x)
436}
437
438// Deprecated: Use Comment.ProtoReflect.Descriptor instead.
439func (*Comment) Descriptor() ([]byte, []int) {
440	return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
441}
442
443func (x *Comment) GetId() string {
444	if x != nil {
445		return x.Id
446	}
447	return ""
448}
449
450func (x *Comment) GetAuthor() string {
451	if x != nil {
452		return x.Author
453	}
454	return ""
455}
456
457func (x *Comment) GetPath() string {
458	if x != nil {
459		return x.Path
460	}
461	return ""
462}
463
464func (x *Comment) GetLine() int32 {
465	if x != nil {
466		return x.Line
467	}
468	return 0
469}
470
471func (x *Comment) GetSide() DiffSide {
472	if x != nil {
473		return x.Side
474	}
475	return DiffSide_DIFF_SIDE_UNSPECIFIED
476}
477
478func (x *Comment) GetCommitId() string {
479	if x != nil {
480		return x.CommitId
481	}
482	return ""
483}
484
485func (x *Comment) GetText() string {
486	if x != nil {
487		return x.Text
488	}
489	return ""
490}
491
492func (x *Comment) GetResolved() bool {
493	if x != nil {
494		return x.Resolved
495	}
496	return false
497}
498
499func (x *Comment) GetCreatedAt() *timestamppb.Timestamp {
500	if x != nil {
501		return x.CreatedAt
502	}
503	return nil
504}
505
506func (x *Comment) GetReplyTo() string {
507	if x != nil {
508		return x.ReplyTo
509	}
510	return ""
511}
512
513func (x *Comment) GetStartLine() int32 {
514	if x != nil {
515		return x.StartLine
516	}
517	return 0
518}
519
520func (x *Comment) GetVerdict() Verdict {
521	if x != nil {
522		return x.Verdict
523	}
524	return Verdict_VERDICT_UNSPECIFIED
525}
526
527func (x *Comment) GetEditedAt() *timestamppb.Timestamp {
528	if x != nil {
529		return x.EditedAt
530	}
531	return nil
532}
533
534func (x *Comment) GetDeleted() bool {
535	if x != nil {
536		return x.Deleted
537	}
538	return false
539}
540
541// AuthorVerdict is the current verdict of one author on a merge request: the
542// one given with the author's latest comment that carries a verdict.
543type AuthorVerdict struct {
544	state protoimpl.MessageState `protogen:"open.v1"`
545	// Author names who gave the verdict, like Comment.author.
546	Author string `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"`
547	// Verdict is the current verdict. Never VERDICT_UNSPECIFIED.
548	Verdict Verdict `protobuf:"varint,2,opt,name=verdict,proto3,enum=ermite.Verdict" json:"verdict,omitempty"`
549	// CommentId is the id of the comment that carries the verdict.
550	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
551	// CommitId is the head of the merge request when the verdict was given.
552	CommitId string `protobuf:"bytes,4,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
553	// CreatedAt is when the verdict was given.
554	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
555	// Stale is true for an approval given on a commit that is not the current
556	// head. A request for changes is never stale.
557	Stale         bool `protobuf:"varint,6,opt,name=stale,proto3" json:"stale,omitempty"`
558	unknownFields protoimpl.UnknownFields
559	sizeCache     protoimpl.SizeCache
560}
561
562func (x *AuthorVerdict) Reset() {
563	*x = AuthorVerdict{}
564	mi := &file_ermite_merge_request_proto_msgTypes[2]
565	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
566	ms.StoreMessageInfo(mi)
567}
568
569func (x *AuthorVerdict) String() string {
570	return protoimpl.X.MessageStringOf(x)
571}
572
573func (*AuthorVerdict) ProtoMessage() {}
574
575func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {
576	mi := &file_ermite_merge_request_proto_msgTypes[2]
577	if x != nil {
578		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
579		if ms.LoadMessageInfo() == nil {
580			ms.StoreMessageInfo(mi)
581		}
582		return ms
583	}
584	return mi.MessageOf(x)
585}
586
587// Deprecated: Use AuthorVerdict.ProtoReflect.Descriptor instead.
588func (*AuthorVerdict) Descriptor() ([]byte, []int) {
589	return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
590}
591
592func (x *AuthorVerdict) GetAuthor() string {
593	if x != nil {
594		return x.Author
595	}
596	return ""
597}
598
599func (x *AuthorVerdict) GetVerdict() Verdict {
600	if x != nil {
601		return x.Verdict
602	}
603	return Verdict_VERDICT_UNSPECIFIED
604}
605
606func (x *AuthorVerdict) GetCommentId() string {
607	if x != nil {
608		return x.CommentId
609	}
610	return ""
611}
612
613func (x *AuthorVerdict) GetCommitId() string {
614	if x != nil {
615		return x.CommitId
616	}
617	return ""
618}
619
620func (x *AuthorVerdict) GetCreatedAt() *timestamppb.Timestamp {
621	if x != nil {
622		return x.CreatedAt
623	}
624	return nil
625}
626
627func (x *AuthorVerdict) GetStale() bool {
628	if x != nil {
629		return x.Stale
630	}
631	return false
632}
633
634// CreateMergeRequestRequest describes the merge request to open.
635type CreateMergeRequestRequest struct {
636	state protoimpl.MessageState `protogen:"open.v1"`
637	// Repo is the repository name.
638	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
639	// Title is the one-line title. Required.
640	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
641	// Description is the optional description.
642	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
643	// SourceBranch is the short name of the branch to merge. Required; the
644	// branch must exist.
645	SourceBranch string `protobuf:"bytes,4,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"`
646	// TargetBranch is the short name of the branch to merge into. Empty means
647	// the default branch of the repository. The branch must exist and differ
648	// from source_branch.
649	TargetBranch  string `protobuf:"bytes,5,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
650	unknownFields protoimpl.UnknownFields
651	sizeCache     protoimpl.SizeCache
652}
653
654func (x *CreateMergeRequestRequest) Reset() {
655	*x = CreateMergeRequestRequest{}
656	mi := &file_ermite_merge_request_proto_msgTypes[3]
657	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
658	ms.StoreMessageInfo(mi)
659}
660
661func (x *CreateMergeRequestRequest) String() string {
662	return protoimpl.X.MessageStringOf(x)
663}
664
665func (*CreateMergeRequestRequest) ProtoMessage() {}
666
667func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
668	mi := &file_ermite_merge_request_proto_msgTypes[3]
669	if x != nil {
670		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
671		if ms.LoadMessageInfo() == nil {
672			ms.StoreMessageInfo(mi)
673		}
674		return ms
675	}
676	return mi.MessageOf(x)
677}
678
679// Deprecated: Use CreateMergeRequestRequest.ProtoReflect.Descriptor instead.
680func (*CreateMergeRequestRequest) Descriptor() ([]byte, []int) {
681	return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
682}
683
684func (x *CreateMergeRequestRequest) GetRepo() string {
685	if x != nil {
686		return x.Repo
687	}
688	return ""
689}
690
691func (x *CreateMergeRequestRequest) GetTitle() string {
692	if x != nil {
693		return x.Title
694	}
695	return ""
696}
697
698func (x *CreateMergeRequestRequest) GetDescription() string {
699	if x != nil {
700		return x.Description
701	}
702	return ""
703}
704
705func (x *CreateMergeRequestRequest) GetSourceBranch() string {
706	if x != nil {
707		return x.SourceBranch
708	}
709	return ""
710}
711
712func (x *CreateMergeRequestRequest) GetTargetBranch() string {
713	if x != nil {
714		return x.TargetBranch
715	}
716	return ""
717}
718
719// CreateMergeRequestResponse holds the new merge request.
720type CreateMergeRequestResponse struct {
721	state protoimpl.MessageState `protogen:"open.v1"`
722	// MergeRequest is the created merge request.
723	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
724	unknownFields protoimpl.UnknownFields
725	sizeCache     protoimpl.SizeCache
726}
727
728func (x *CreateMergeRequestResponse) Reset() {
729	*x = CreateMergeRequestResponse{}
730	mi := &file_ermite_merge_request_proto_msgTypes[4]
731	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
732	ms.StoreMessageInfo(mi)
733}
734
735func (x *CreateMergeRequestResponse) String() string {
736	return protoimpl.X.MessageStringOf(x)
737}
738
739func (*CreateMergeRequestResponse) ProtoMessage() {}
740
741func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
742	mi := &file_ermite_merge_request_proto_msgTypes[4]
743	if x != nil {
744		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
745		if ms.LoadMessageInfo() == nil {
746			ms.StoreMessageInfo(mi)
747		}
748		return ms
749	}
750	return mi.MessageOf(x)
751}
752
753// Deprecated: Use CreateMergeRequestResponse.ProtoReflect.Descriptor instead.
754func (*CreateMergeRequestResponse) Descriptor() ([]byte, []int) {
755	return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
756}
757
758func (x *CreateMergeRequestResponse) GetMergeRequest() *MergeRequest {
759	if x != nil {
760		return x.MergeRequest
761	}
762	return nil
763}
764
765// ListMergeRequestsRequest selects a page of merge requests.
766type ListMergeRequestsRequest struct {
767	state protoimpl.MessageState `protogen:"open.v1"`
768	// Repo is the repository name.
769	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
770	// State restricts the result to one state. MERGE_REQUEST_STATE_UNSPECIFIED
771	// means every state.
772	State MergeRequestState `protobuf:"varint,2,opt,name=state,proto3,enum=ermite.MergeRequestState" json:"state,omitempty"`
773	// PageSize is the maximum number of merge requests to return. 0 means the
774	// server default; values above the server maximum are lowered to it.
775	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
776	// PageToken is the next_page_token of a previous response, to continue the
777	// same listing. Empty for the first page. Other fields must be unchanged.
778	PageToken     string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
779	unknownFields protoimpl.UnknownFields
780	sizeCache     protoimpl.SizeCache
781}
782
783func (x *ListMergeRequestsRequest) Reset() {
784	*x = ListMergeRequestsRequest{}
785	mi := &file_ermite_merge_request_proto_msgTypes[5]
786	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
787	ms.StoreMessageInfo(mi)
788}
789
790func (x *ListMergeRequestsRequest) String() string {
791	return protoimpl.X.MessageStringOf(x)
792}
793
794func (*ListMergeRequestsRequest) ProtoMessage() {}
795
796func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
797	mi := &file_ermite_merge_request_proto_msgTypes[5]
798	if x != nil {
799		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
800		if ms.LoadMessageInfo() == nil {
801			ms.StoreMessageInfo(mi)
802		}
803		return ms
804	}
805	return mi.MessageOf(x)
806}
807
808// Deprecated: Use ListMergeRequestsRequest.ProtoReflect.Descriptor instead.
809func (*ListMergeRequestsRequest) Descriptor() ([]byte, []int) {
810	return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
811}
812
813func (x *ListMergeRequestsRequest) GetRepo() string {
814	if x != nil {
815		return x.Repo
816	}
817	return ""
818}
819
820func (x *ListMergeRequestsRequest) GetState() MergeRequestState {
821	if x != nil {
822		return x.State
823	}
824	return MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED
825}
826
827func (x *ListMergeRequestsRequest) GetPageSize() int32 {
828	if x != nil {
829		return x.PageSize
830	}
831	return 0
832}
833
834func (x *ListMergeRequestsRequest) GetPageToken() string {
835	if x != nil {
836		return x.PageToken
837	}
838	return ""
839}
840
841// ListMergeRequestsResponse is one page of merge requests.
842type ListMergeRequestsResponse struct {
843	state protoimpl.MessageState `protogen:"open.v1"`
844	// MergeRequests are the merge requests of this page, highest number first.
845	MergeRequests []*MergeRequest `protobuf:"bytes,1,rep,name=merge_requests,json=mergeRequests,proto3" json:"merge_requests,omitempty"`
846	// NextPageToken is passed as page_token to get the next page. Empty when
847	// there is no next page.
848	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
849	unknownFields protoimpl.UnknownFields
850	sizeCache     protoimpl.SizeCache
851}
852
853func (x *ListMergeRequestsResponse) Reset() {
854	*x = ListMergeRequestsResponse{}
855	mi := &file_ermite_merge_request_proto_msgTypes[6]
856	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
857	ms.StoreMessageInfo(mi)
858}
859
860func (x *ListMergeRequestsResponse) String() string {
861	return protoimpl.X.MessageStringOf(x)
862}
863
864func (*ListMergeRequestsResponse) ProtoMessage() {}
865
866func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
867	mi := &file_ermite_merge_request_proto_msgTypes[6]
868	if x != nil {
869		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
870		if ms.LoadMessageInfo() == nil {
871			ms.StoreMessageInfo(mi)
872		}
873		return ms
874	}
875	return mi.MessageOf(x)
876}
877
878// Deprecated: Use ListMergeRequestsResponse.ProtoReflect.Descriptor instead.
879func (*ListMergeRequestsResponse) Descriptor() ([]byte, []int) {
880	return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}
881}
882
883func (x *ListMergeRequestsResponse) GetMergeRequests() []*MergeRequest {
884	if x != nil {
885		return x.MergeRequests
886	}
887	return nil
888}
889
890func (x *ListMergeRequestsResponse) GetNextPageToken() string {
891	if x != nil {
892		return x.NextPageToken
893	}
894	return ""
895}
896
897// GetMergeRequestRequest selects a merge request.
898type GetMergeRequestRequest struct {
899	state protoimpl.MessageState `protogen:"open.v1"`
900	// Repo is the repository name.
901	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
902	// Number is the merge request number.
903	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
904	// SinceLastRead asks for the diff between the head recorded by MarkRead and
905	// the current head instead of the diff against the target. It works after a
906	// force-push as long as the recorded commit still exists in the repository.
907	// When nothing was marked read, or the recorded commit is gone, the response
908	// holds the diff against the target and says so in last_read_id and
909	// last_read_lost.
910	SinceLastRead bool `protobuf:"varint,3,opt,name=since_last_read,json=sinceLastRead,proto3" json:"since_last_read,omitempty"`
911	unknownFields protoimpl.UnknownFields
912	sizeCache     protoimpl.SizeCache
913}
914
915func (x *GetMergeRequestRequest) Reset() {
916	*x = GetMergeRequestRequest{}
917	mi := &file_ermite_merge_request_proto_msgTypes[7]
918	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
919	ms.StoreMessageInfo(mi)
920}
921
922func (x *GetMergeRequestRequest) String() string {
923	return protoimpl.X.MessageStringOf(x)
924}
925
926func (*GetMergeRequestRequest) ProtoMessage() {}
927
928func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
929	mi := &file_ermite_merge_request_proto_msgTypes[7]
930	if x != nil {
931		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
932		if ms.LoadMessageInfo() == nil {
933			ms.StoreMessageInfo(mi)
934		}
935		return ms
936	}
937	return mi.MessageOf(x)
938}
939
940// Deprecated: Use GetMergeRequestRequest.ProtoReflect.Descriptor instead.
941func (*GetMergeRequestRequest) Descriptor() ([]byte, []int) {
942	return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}
943}
944
945func (x *GetMergeRequestRequest) GetRepo() string {
946	if x != nil {
947		return x.Repo
948	}
949	return ""
950}
951
952func (x *GetMergeRequestRequest) GetNumber() int64 {
953	if x != nil {
954		return x.Number
955	}
956	return 0
957}
958
959func (x *GetMergeRequestRequest) GetSinceLastRead() bool {
960	if x != nil {
961		return x.SinceLastRead
962	}
963	return false
964}
965
966// GetMergeRequestResponse holds a merge request with its review data.
967type GetMergeRequestResponse struct {
968	state protoimpl.MessageState `protogen:"open.v1"`
969	// MergeRequest is the merge request.
970	MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
971	// Commits are the commits of the head that are not in the target
972	// ("target..head"), newest first. At most 100 are returned (a server limit
973	// that may change; rely on commits_truncated, not on the number). Empty when
974	// the source branch was deleted.
975	Commits []*Commit `protobuf:"bytes,2,rep,name=commits,proto3" json:"commits,omitempty"`
976	// CommitsTruncated is true when the branch has more commits than commits
977	// holds.
978	CommitsTruncated bool `protobuf:"varint,3,opt,name=commits_truncated,json=commitsTruncated,proto3" json:"commits_truncated,omitempty"`
979	// DiffBaseId is the id of the commit the diff compares from: the merge base
980	// of the target and the head, or the last read head when since_last_read
981	// applied. Empty when the source branch was deleted; diff is then empty.
982	DiffBaseId string `protobuf:"bytes,4,opt,name=diff_base_id,json=diffBaseId,proto3" json:"diff_base_id,omitempty"`
983	// Stats are the totals of the diff, including files that it omits or
984	// truncates.
985	Stats *DiffStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
986	// Diff is the structured diff from diff_base_id to the head, with the same
987	// limits and truncated flags as GetCommitResponse.diff.
988	Diff *Diff `protobuf:"bytes,6,opt,name=diff,proto3" json:"diff,omitempty"`
989	// Comments are every comment of the merge request, oldest first.
990	Comments []*Comment `protobuf:"bytes,7,rep,name=comments,proto3" json:"comments,omitempty"`
991	// LastReadId is the head recorded by MarkRead, whether or not
992	// since_last_read was set. Empty when nothing was marked read.
993	LastReadId string `protobuf:"bytes,8,opt,name=last_read_id,json=lastReadId,proto3" json:"last_read_id,omitempty"`
994	// LastReadLost is true when since_last_read was set, a head was recorded,
995	// but that commit no longer exists in the repository: the diff is then the
996	// diff against the target. A client should tell the reader to review the
997	// whole change again.
998	LastReadLost bool `protobuf:"varint,9,opt,name=last_read_lost,json=lastReadLost,proto3" json:"last_read_lost,omitempty"`
999	// Verdicts are the current verdicts, one per author who gave one, ordered
1000	// by the comment that carries them, oldest first.
1001	Verdicts      []*AuthorVerdict `protobuf:"bytes,10,rep,name=verdicts,proto3" json:"verdicts,omitempty"`
1002	unknownFields protoimpl.UnknownFields
1003	sizeCache     protoimpl.SizeCache
1004}
1005
1006func (x *GetMergeRequestResponse) Reset() {
1007	*x = GetMergeRequestResponse{}
1008	mi := &file_ermite_merge_request_proto_msgTypes[8]
1009	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1010	ms.StoreMessageInfo(mi)
1011}
1012
1013func (x *GetMergeRequestResponse) String() string {
1014	return protoimpl.X.MessageStringOf(x)
1015}
1016
1017func (*GetMergeRequestResponse) ProtoMessage() {}
1018
1019func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
1020	mi := &file_ermite_merge_request_proto_msgTypes[8]
1021	if x != nil {
1022		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1023		if ms.LoadMessageInfo() == nil {
1024			ms.StoreMessageInfo(mi)
1025		}
1026		return ms
1027	}
1028	return mi.MessageOf(x)
1029}
1030
1031// Deprecated: Use GetMergeRequestResponse.ProtoReflect.Descriptor instead.
1032func (*GetMergeRequestResponse) Descriptor() ([]byte, []int) {
1033	return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}
1034}
1035
1036func (x *GetMergeRequestResponse) GetMergeRequest() *MergeRequest {
1037	if x != nil {
1038		return x.MergeRequest
1039	}
1040	return nil
1041}
1042
1043func (x *GetMergeRequestResponse) GetCommits() []*Commit {
1044	if x != nil {
1045		return x.Commits
1046	}
1047	return nil
1048}
1049
1050func (x *GetMergeRequestResponse) GetCommitsTruncated() bool {
1051	if x != nil {
1052		return x.CommitsTruncated
1053	}
1054	return false
1055}
1056
1057func (x *GetMergeRequestResponse) GetDiffBaseId() string {
1058	if x != nil {
1059		return x.DiffBaseId
1060	}
1061	return ""
1062}
1063
1064func (x *GetMergeRequestResponse) GetStats() *DiffStats {
1065	if x != nil {
1066		return x.Stats
1067	}
1068	return nil
1069}
1070
1071func (x *GetMergeRequestResponse) GetDiff() *Diff {
1072	if x != nil {
1073		return x.Diff
1074	}
1075	return nil
1076}
1077
1078func (x *GetMergeRequestResponse) GetComments() []*Comment {
1079	if x != nil {
1080		return x.Comments
1081	}
1082	return nil
1083}
1084
1085func (x *GetMergeRequestResponse) GetLastReadId() string {
1086	if x != nil {
1087		return x.LastReadId
1088	}
1089	return ""
1090}
1091
1092func (x *GetMergeRequestResponse) GetLastReadLost() bool {
1093	if x != nil {
1094		return x.LastReadLost
1095	}
1096	return false
1097}
1098
1099func (x *GetMergeRequestResponse) GetVerdicts() []*AuthorVerdict {
1100	if x != nil {
1101		return x.Verdicts
1102	}
1103	return nil
1104}
1105
1106// AddCommentRequest describes the comment to add.
1107type AddCommentRequest struct {
1108	state protoimpl.MessageState `protogen:"open.v1"`
1109	// Repo is the repository name.
1110	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1111	// Number is the merge request number.
1112	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1113	// Path is the file the comment is attached to, as given by the diff of the
1114	// merge request: FileDiff.new_path, or old_path for a deleted file. Empty
1115	// for a general comment; then line must be 0 and side unspecified.
1116	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
1117	// Line is the 1-based line number on side. It must be the old_number or
1118	// new_number of a Line of a hunk of the file; a line outside the hunks is
1119	// invalid_argument. 0 for a general comment.
1120	Line int32 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
1121	// Side is the side line counts on. Required when path is set.
1122	Side DiffSide `protobuf:"varint,5,opt,name=side,proto3,enum=ermite.DiffSide" json:"side,omitempty"`
1123	// Text is the Markdown source. Required, except when verdict is set.
1124	Text string `protobuf:"bytes,6,opt,name=text,proto3" json:"text,omitempty"`
1125	// ReplyTo is the id of the root comment to reply to. Empty for a new root
1126	// comment. A reply takes the anchor of its root: path, line, start_line,
1127	// side and verdict must then be unset.
1128	ReplyTo string `protobuf:"bytes,7,opt,name=reply_to,json=replyTo,proto3" json:"reply_to,omitempty"`
1129	// StartLine is the 1-based first line of a range ending at line. 0 for a
1130	// single line. Needs path; it must be lower than line, and both ends must
1131	// be lines of the diff on side.
1132	StartLine int32 `protobuf:"varint,8,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"`
1133	// Verdict is the judgement to give. Needs the mr:review scope and a root
1134	// comment. VERDICT_UNSPECIFIED for a plain comment.
1135	Verdict       Verdict `protobuf:"varint,9,opt,name=verdict,proto3,enum=ermite.Verdict" json:"verdict,omitempty"`
1136	unknownFields protoimpl.UnknownFields
1137	sizeCache     protoimpl.SizeCache
1138}
1139
1140func (x *AddCommentRequest) Reset() {
1141	*x = AddCommentRequest{}
1142	mi := &file_ermite_merge_request_proto_msgTypes[9]
1143	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1144	ms.StoreMessageInfo(mi)
1145}
1146
1147func (x *AddCommentRequest) String() string {
1148	return protoimpl.X.MessageStringOf(x)
1149}
1150
1151func (*AddCommentRequest) ProtoMessage() {}
1152
1153func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
1154	mi := &file_ermite_merge_request_proto_msgTypes[9]
1155	if x != nil {
1156		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1157		if ms.LoadMessageInfo() == nil {
1158			ms.StoreMessageInfo(mi)
1159		}
1160		return ms
1161	}
1162	return mi.MessageOf(x)
1163}
1164
1165// Deprecated: Use AddCommentRequest.ProtoReflect.Descriptor instead.
1166func (*AddCommentRequest) Descriptor() ([]byte, []int) {
1167	return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}
1168}
1169
1170func (x *AddCommentRequest) GetRepo() string {
1171	if x != nil {
1172		return x.Repo
1173	}
1174	return ""
1175}
1176
1177func (x *AddCommentRequest) GetNumber() int64 {
1178	if x != nil {
1179		return x.Number
1180	}
1181	return 0
1182}
1183
1184func (x *AddCommentRequest) GetPath() string {
1185	if x != nil {
1186		return x.Path
1187	}
1188	return ""
1189}
1190
1191func (x *AddCommentRequest) GetLine() int32 {
1192	if x != nil {
1193		return x.Line
1194	}
1195	return 0
1196}
1197
1198func (x *AddCommentRequest) GetSide() DiffSide {
1199	if x != nil {
1200		return x.Side
1201	}
1202	return DiffSide_DIFF_SIDE_UNSPECIFIED
1203}
1204
1205func (x *AddCommentRequest) GetText() string {
1206	if x != nil {
1207		return x.Text
1208	}
1209	return ""
1210}
1211
1212func (x *AddCommentRequest) GetReplyTo() string {
1213	if x != nil {
1214		return x.ReplyTo
1215	}
1216	return ""
1217}
1218
1219func (x *AddCommentRequest) GetStartLine() int32 {
1220	if x != nil {
1221		return x.StartLine
1222	}
1223	return 0
1224}
1225
1226func (x *AddCommentRequest) GetVerdict() Verdict {
1227	if x != nil {
1228		return x.Verdict
1229	}
1230	return Verdict_VERDICT_UNSPECIFIED
1231}
1232
1233// AddCommentResponse holds the new comment.
1234type AddCommentResponse struct {
1235	state protoimpl.MessageState `protogen:"open.v1"`
1236	// Comment is the created comment.
1237	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1238	unknownFields protoimpl.UnknownFields
1239	sizeCache     protoimpl.SizeCache
1240}
1241
1242func (x *AddCommentResponse) Reset() {
1243	*x = AddCommentResponse{}
1244	mi := &file_ermite_merge_request_proto_msgTypes[10]
1245	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1246	ms.StoreMessageInfo(mi)
1247}
1248
1249func (x *AddCommentResponse) String() string {
1250	return protoimpl.X.MessageStringOf(x)
1251}
1252
1253func (*AddCommentResponse) ProtoMessage() {}
1254
1255func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
1256	mi := &file_ermite_merge_request_proto_msgTypes[10]
1257	if x != nil {
1258		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1259		if ms.LoadMessageInfo() == nil {
1260			ms.StoreMessageInfo(mi)
1261		}
1262		return ms
1263	}
1264	return mi.MessageOf(x)
1265}
1266
1267// Deprecated: Use AddCommentResponse.ProtoReflect.Descriptor instead.
1268func (*AddCommentResponse) Descriptor() ([]byte, []int) {
1269	return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}
1270}
1271
1272func (x *AddCommentResponse) GetComment() *Comment {
1273	if x != nil {
1274		return x.Comment
1275	}
1276	return nil
1277}
1278
1279// EditCommentRequest describes the new text of a comment.
1280type EditCommentRequest struct {
1281	state protoimpl.MessageState `protogen:"open.v1"`
1282	// Repo is the repository name.
1283	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1284	// Number is the merge request number.
1285	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1286	// CommentId is the Comment.id to edit.
1287	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
1288	// Text is the new Markdown source. Required, except for a comment that
1289	// carries a verdict.
1290	Text          string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"`
1291	unknownFields protoimpl.UnknownFields
1292	sizeCache     protoimpl.SizeCache
1293}
1294
1295func (x *EditCommentRequest) Reset() {
1296	*x = EditCommentRequest{}
1297	mi := &file_ermite_merge_request_proto_msgTypes[11]
1298	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1299	ms.StoreMessageInfo(mi)
1300}
1301
1302func (x *EditCommentRequest) String() string {
1303	return protoimpl.X.MessageStringOf(x)
1304}
1305
1306func (*EditCommentRequest) ProtoMessage() {}
1307
1308func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {
1309	mi := &file_ermite_merge_request_proto_msgTypes[11]
1310	if x != nil {
1311		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1312		if ms.LoadMessageInfo() == nil {
1313			ms.StoreMessageInfo(mi)
1314		}
1315		return ms
1316	}
1317	return mi.MessageOf(x)
1318}
1319
1320// Deprecated: Use EditCommentRequest.ProtoReflect.Descriptor instead.
1321func (*EditCommentRequest) Descriptor() ([]byte, []int) {
1322	return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}
1323}
1324
1325func (x *EditCommentRequest) GetRepo() string {
1326	if x != nil {
1327		return x.Repo
1328	}
1329	return ""
1330}
1331
1332func (x *EditCommentRequest) GetNumber() int64 {
1333	if x != nil {
1334		return x.Number
1335	}
1336	return 0
1337}
1338
1339func (x *EditCommentRequest) GetCommentId() string {
1340	if x != nil {
1341		return x.CommentId
1342	}
1343	return ""
1344}
1345
1346func (x *EditCommentRequest) GetText() string {
1347	if x != nil {
1348		return x.Text
1349	}
1350	return ""
1351}
1352
1353// EditCommentResponse holds the comment after the edit.
1354type EditCommentResponse struct {
1355	state protoimpl.MessageState `protogen:"open.v1"`
1356	// Comment is the updated comment.
1357	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1358	unknownFields protoimpl.UnknownFields
1359	sizeCache     protoimpl.SizeCache
1360}
1361
1362func (x *EditCommentResponse) Reset() {
1363	*x = EditCommentResponse{}
1364	mi := &file_ermite_merge_request_proto_msgTypes[12]
1365	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1366	ms.StoreMessageInfo(mi)
1367}
1368
1369func (x *EditCommentResponse) String() string {
1370	return protoimpl.X.MessageStringOf(x)
1371}
1372
1373func (*EditCommentResponse) ProtoMessage() {}
1374
1375func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {
1376	mi := &file_ermite_merge_request_proto_msgTypes[12]
1377	if x != nil {
1378		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1379		if ms.LoadMessageInfo() == nil {
1380			ms.StoreMessageInfo(mi)
1381		}
1382		return ms
1383	}
1384	return mi.MessageOf(x)
1385}
1386
1387// Deprecated: Use EditCommentResponse.ProtoReflect.Descriptor instead.
1388func (*EditCommentResponse) Descriptor() ([]byte, []int) {
1389	return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}
1390}
1391
1392func (x *EditCommentResponse) GetComment() *Comment {
1393	if x != nil {
1394		return x.Comment
1395	}
1396	return nil
1397}
1398
1399// DeleteCommentRequest names the comment to delete.
1400type DeleteCommentRequest struct {
1401	state protoimpl.MessageState `protogen:"open.v1"`
1402	// Repo is the repository name.
1403	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1404	// Number is the merge request number.
1405	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1406	// CommentId is the Comment.id to delete.
1407	CommentId     string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
1408	unknownFields protoimpl.UnknownFields
1409	sizeCache     protoimpl.SizeCache
1410}
1411
1412func (x *DeleteCommentRequest) Reset() {
1413	*x = DeleteCommentRequest{}
1414	mi := &file_ermite_merge_request_proto_msgTypes[13]
1415	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1416	ms.StoreMessageInfo(mi)
1417}
1418
1419func (x *DeleteCommentRequest) String() string {
1420	return protoimpl.X.MessageStringOf(x)
1421}
1422
1423func (*DeleteCommentRequest) ProtoMessage() {}
1424
1425func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
1426	mi := &file_ermite_merge_request_proto_msgTypes[13]
1427	if x != nil {
1428		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1429		if ms.LoadMessageInfo() == nil {
1430			ms.StoreMessageInfo(mi)
1431		}
1432		return ms
1433	}
1434	return mi.MessageOf(x)
1435}
1436
1437// Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead.
1438func (*DeleteCommentRequest) Descriptor() ([]byte, []int) {
1439	return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}
1440}
1441
1442func (x *DeleteCommentRequest) GetRepo() string {
1443	if x != nil {
1444		return x.Repo
1445	}
1446	return ""
1447}
1448
1449func (x *DeleteCommentRequest) GetNumber() int64 {
1450	if x != nil {
1451		return x.Number
1452	}
1453	return 0
1454}
1455
1456func (x *DeleteCommentRequest) GetCommentId() string {
1457	if x != nil {
1458		return x.CommentId
1459	}
1460	return ""
1461}
1462
1463// DeleteCommentResponse holds the comment after the deletion.
1464type DeleteCommentResponse struct {
1465	state protoimpl.MessageState `protogen:"open.v1"`
1466	// Comment is the deleted comment.
1467	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1468	unknownFields protoimpl.UnknownFields
1469	sizeCache     protoimpl.SizeCache
1470}
1471
1472func (x *DeleteCommentResponse) Reset() {
1473	*x = DeleteCommentResponse{}
1474	mi := &file_ermite_merge_request_proto_msgTypes[14]
1475	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1476	ms.StoreMessageInfo(mi)
1477}
1478
1479func (x *DeleteCommentResponse) String() string {
1480	return protoimpl.X.MessageStringOf(x)
1481}
1482
1483func (*DeleteCommentResponse) ProtoMessage() {}
1484
1485func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
1486	mi := &file_ermite_merge_request_proto_msgTypes[14]
1487	if x != nil {
1488		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1489		if ms.LoadMessageInfo() == nil {
1490			ms.StoreMessageInfo(mi)
1491		}
1492		return ms
1493	}
1494	return mi.MessageOf(x)
1495}
1496
1497// Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead.
1498func (*DeleteCommentResponse) Descriptor() ([]byte, []int) {
1499	return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}
1500}
1501
1502func (x *DeleteCommentResponse) GetComment() *Comment {
1503	if x != nil {
1504		return x.Comment
1505	}
1506	return nil
1507}
1508
1509// ResolveCommentRequest changes the resolved state of a comment.
1510type ResolveCommentRequest struct {
1511	state protoimpl.MessageState `protogen:"open.v1"`
1512	// Repo is the repository name.
1513	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1514	// Number is the merge request number.
1515	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1516	// CommentId is the Comment.id to change.
1517	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
1518	// Resolved is the new state: true to resolve, false to unresolve.
1519	Resolved      bool `protobuf:"varint,4,opt,name=resolved,proto3" json:"resolved,omitempty"`
1520	unknownFields protoimpl.UnknownFields
1521	sizeCache     protoimpl.SizeCache
1522}
1523
1524func (x *ResolveCommentRequest) Reset() {
1525	*x = ResolveCommentRequest{}
1526	mi := &file_ermite_merge_request_proto_msgTypes[15]
1527	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1528	ms.StoreMessageInfo(mi)
1529}
1530
1531func (x *ResolveCommentRequest) String() string {
1532	return protoimpl.X.MessageStringOf(x)
1533}
1534
1535func (*ResolveCommentRequest) ProtoMessage() {}
1536
1537func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
1538	mi := &file_ermite_merge_request_proto_msgTypes[15]
1539	if x != nil {
1540		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1541		if ms.LoadMessageInfo() == nil {
1542			ms.StoreMessageInfo(mi)
1543		}
1544		return ms
1545	}
1546	return mi.MessageOf(x)
1547}
1548
1549// Deprecated: Use ResolveCommentRequest.ProtoReflect.Descriptor instead.
1550func (*ResolveCommentRequest) Descriptor() ([]byte, []int) {
1551	return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}
1552}
1553
1554func (x *ResolveCommentRequest) GetRepo() string {
1555	if x != nil {
1556		return x.Repo
1557	}
1558	return ""
1559}
1560
1561func (x *ResolveCommentRequest) GetNumber() int64 {
1562	if x != nil {
1563		return x.Number
1564	}
1565	return 0
1566}
1567
1568func (x *ResolveCommentRequest) GetCommentId() string {
1569	if x != nil {
1570		return x.CommentId
1571	}
1572	return ""
1573}
1574
1575func (x *ResolveCommentRequest) GetResolved() bool {
1576	if x != nil {
1577		return x.Resolved
1578	}
1579	return false
1580}
1581
1582// ResolveCommentResponse holds the comment after the change.
1583type ResolveCommentResponse struct {
1584	state protoimpl.MessageState `protogen:"open.v1"`
1585	// Comment is the updated comment.
1586	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1587	unknownFields protoimpl.UnknownFields
1588	sizeCache     protoimpl.SizeCache
1589}
1590
1591func (x *ResolveCommentResponse) Reset() {
1592	*x = ResolveCommentResponse{}
1593	mi := &file_ermite_merge_request_proto_msgTypes[16]
1594	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1595	ms.StoreMessageInfo(mi)
1596}
1597
1598func (x *ResolveCommentResponse) String() string {
1599	return protoimpl.X.MessageStringOf(x)
1600}
1601
1602func (*ResolveCommentResponse) ProtoMessage() {}
1603
1604func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
1605	mi := &file_ermite_merge_request_proto_msgTypes[16]
1606	if x != nil {
1607		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1608		if ms.LoadMessageInfo() == nil {
1609			ms.StoreMessageInfo(mi)
1610		}
1611		return ms
1612	}
1613	return mi.MessageOf(x)
1614}
1615
1616// Deprecated: Use ResolveCommentResponse.ProtoReflect.Descriptor instead.
1617func (*ResolveCommentResponse) Descriptor() ([]byte, []int) {
1618	return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}
1619}
1620
1621func (x *ResolveCommentResponse) GetComment() *Comment {
1622	if x != nil {
1623		return x.Comment
1624	}
1625	return nil
1626}
1627
1628// CloseMergeRequestRequest names the merge request to close.
1629type CloseMergeRequestRequest struct {
1630	state protoimpl.MessageState `protogen:"open.v1"`
1631	// Repo is the repository name.
1632	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1633	// Number is the merge request number.
1634	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1635	unknownFields protoimpl.UnknownFields
1636	sizeCache     protoimpl.SizeCache
1637}
1638
1639func (x *CloseMergeRequestRequest) Reset() {
1640	*x = CloseMergeRequestRequest{}
1641	mi := &file_ermite_merge_request_proto_msgTypes[17]
1642	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1643	ms.StoreMessageInfo(mi)
1644}
1645
1646func (x *CloseMergeRequestRequest) String() string {
1647	return protoimpl.X.MessageStringOf(x)
1648}
1649
1650func (*CloseMergeRequestRequest) ProtoMessage() {}
1651
1652func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
1653	mi := &file_ermite_merge_request_proto_msgTypes[17]
1654	if x != nil {
1655		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1656		if ms.LoadMessageInfo() == nil {
1657			ms.StoreMessageInfo(mi)
1658		}
1659		return ms
1660	}
1661	return mi.MessageOf(x)
1662}
1663
1664// Deprecated: Use CloseMergeRequestRequest.ProtoReflect.Descriptor instead.
1665func (*CloseMergeRequestRequest) Descriptor() ([]byte, []int) {
1666	return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}
1667}
1668
1669func (x *CloseMergeRequestRequest) GetRepo() string {
1670	if x != nil {
1671		return x.Repo
1672	}
1673	return ""
1674}
1675
1676func (x *CloseMergeRequestRequest) GetNumber() int64 {
1677	if x != nil {
1678		return x.Number
1679	}
1680	return 0
1681}
1682
1683// CloseMergeRequestResponse holds the merge request after closing.
1684type CloseMergeRequestResponse struct {
1685	state protoimpl.MessageState `protogen:"open.v1"`
1686	// MergeRequest is the closed merge request.
1687	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1688	unknownFields protoimpl.UnknownFields
1689	sizeCache     protoimpl.SizeCache
1690}
1691
1692func (x *CloseMergeRequestResponse) Reset() {
1693	*x = CloseMergeRequestResponse{}
1694	mi := &file_ermite_merge_request_proto_msgTypes[18]
1695	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1696	ms.StoreMessageInfo(mi)
1697}
1698
1699func (x *CloseMergeRequestResponse) String() string {
1700	return protoimpl.X.MessageStringOf(x)
1701}
1702
1703func (*CloseMergeRequestResponse) ProtoMessage() {}
1704
1705func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
1706	mi := &file_ermite_merge_request_proto_msgTypes[18]
1707	if x != nil {
1708		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1709		if ms.LoadMessageInfo() == nil {
1710			ms.StoreMessageInfo(mi)
1711		}
1712		return ms
1713	}
1714	return mi.MessageOf(x)
1715}
1716
1717// Deprecated: Use CloseMergeRequestResponse.ProtoReflect.Descriptor instead.
1718func (*CloseMergeRequestResponse) Descriptor() ([]byte, []int) {
1719	return file_ermite_merge_request_proto_rawDescGZIP(), []int{18}
1720}
1721
1722func (x *CloseMergeRequestResponse) GetMergeRequest() *MergeRequest {
1723	if x != nil {
1724		return x.MergeRequest
1725	}
1726	return nil
1727}
1728
1729// MergeMergeRequestRequest describes the merge to perform.
1730type MergeMergeRequestRequest struct {
1731	state protoimpl.MessageState `protogen:"open.v1"`
1732	// Repo is the repository name.
1733	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1734	// Number is the merge request number.
1735	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1736	// Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
1737	// must be in RepoSettings.allowed_merge_modes of the repository.
1738	Mode MergeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
1739	// HeadId is the full id of the commit the caller reviewed, that is the
1740	// MergeRequest.head_id it was shown. Required. The merge happens only if the
1741	// source branch still points to it.
1742	HeadId string `protobuf:"bytes,4,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
1743	// DeleteSourceBranch deletes the source branch after the merge. The merge
1744	// is refused before anything changes when the source branch is the default
1745	// branch of the repository or the source or target of another open merge
1746	// request. Servers without the "merge_requests.delete_branch" feature ignore
1747	// it.
1748	DeleteSourceBranch bool `protobuf:"varint,5,opt,name=delete_source_branch,json=deleteSourceBranch,proto3" json:"delete_source_branch,omitempty"`
1749	unknownFields      protoimpl.UnknownFields
1750	sizeCache          protoimpl.SizeCache
1751}
1752
1753func (x *MergeMergeRequestRequest) Reset() {
1754	*x = MergeMergeRequestRequest{}
1755	mi := &file_ermite_merge_request_proto_msgTypes[19]
1756	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1757	ms.StoreMessageInfo(mi)
1758}
1759
1760func (x *MergeMergeRequestRequest) String() string {
1761	return protoimpl.X.MessageStringOf(x)
1762}
1763
1764func (*MergeMergeRequestRequest) ProtoMessage() {}
1765
1766func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
1767	mi := &file_ermite_merge_request_proto_msgTypes[19]
1768	if x != nil {
1769		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1770		if ms.LoadMessageInfo() == nil {
1771			ms.StoreMessageInfo(mi)
1772		}
1773		return ms
1774	}
1775	return mi.MessageOf(x)
1776}
1777
1778// Deprecated: Use MergeMergeRequestRequest.ProtoReflect.Descriptor instead.
1779func (*MergeMergeRequestRequest) Descriptor() ([]byte, []int) {
1780	return file_ermite_merge_request_proto_rawDescGZIP(), []int{19}
1781}
1782
1783func (x *MergeMergeRequestRequest) GetRepo() string {
1784	if x != nil {
1785		return x.Repo
1786	}
1787	return ""
1788}
1789
1790func (x *MergeMergeRequestRequest) GetNumber() int64 {
1791	if x != nil {
1792		return x.Number
1793	}
1794	return 0
1795}
1796
1797func (x *MergeMergeRequestRequest) GetMode() MergeMode {
1798	if x != nil {
1799		return x.Mode
1800	}
1801	return MergeMode_MERGE_MODE_UNSPECIFIED
1802}
1803
1804func (x *MergeMergeRequestRequest) GetHeadId() string {
1805	if x != nil {
1806		return x.HeadId
1807	}
1808	return ""
1809}
1810
1811func (x *MergeMergeRequestRequest) GetDeleteSourceBranch() bool {
1812	if x != nil {
1813		return x.DeleteSourceBranch
1814	}
1815	return false
1816}
1817
1818// MergeMergeRequestResponse holds the merged merge request.
1819type MergeMergeRequestResponse struct {
1820	state protoimpl.MessageState `protogen:"open.v1"`
1821	// MergeRequest is the merge request after the merge: state MERGED,
1822	// merged_commit_id set to the new tip of the target branch and merge_mode
1823	// set to the mode used.
1824	MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1825	// SourceBranchDeleted is true when delete_source_branch was set and the
1826	// branch is gone. It is false when the deletion failed after the merge (the
1827	// branch moved in between, say): the merge stands and the branch is kept.
1828	SourceBranchDeleted bool `protobuf:"varint,2,opt,name=source_branch_deleted,json=sourceBranchDeleted,proto3" json:"source_branch_deleted,omitempty"`
1829	unknownFields       protoimpl.UnknownFields
1830	sizeCache           protoimpl.SizeCache
1831}
1832
1833func (x *MergeMergeRequestResponse) Reset() {
1834	*x = MergeMergeRequestResponse{}
1835	mi := &file_ermite_merge_request_proto_msgTypes[20]
1836	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1837	ms.StoreMessageInfo(mi)
1838}
1839
1840func (x *MergeMergeRequestResponse) String() string {
1841	return protoimpl.X.MessageStringOf(x)
1842}
1843
1844func (*MergeMergeRequestResponse) ProtoMessage() {}
1845
1846func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
1847	mi := &file_ermite_merge_request_proto_msgTypes[20]
1848	if x != nil {
1849		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1850		if ms.LoadMessageInfo() == nil {
1851			ms.StoreMessageInfo(mi)
1852		}
1853		return ms
1854	}
1855	return mi.MessageOf(x)
1856}
1857
1858// Deprecated: Use MergeMergeRequestResponse.ProtoReflect.Descriptor instead.
1859func (*MergeMergeRequestResponse) Descriptor() ([]byte, []int) {
1860	return file_ermite_merge_request_proto_rawDescGZIP(), []int{20}
1861}
1862
1863func (x *MergeMergeRequestResponse) GetMergeRequest() *MergeRequest {
1864	if x != nil {
1865		return x.MergeRequest
1866	}
1867	return nil
1868}
1869
1870func (x *MergeMergeRequestResponse) GetSourceBranchDeleted() bool {
1871	if x != nil {
1872		return x.SourceBranchDeleted
1873	}
1874	return false
1875}
1876
1877// MarkReadRequest records a read position.
1878type MarkReadRequest struct {
1879	state protoimpl.MessageState `protogen:"open.v1"`
1880	// Repo is the repository name.
1881	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1882	// Number is the merge request number.
1883	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1884	// HeadId is the full id of the commit the caller has reviewed, usually the
1885	// MergeRequest.head_id it was shown. Empty means the current head of the
1886	// source branch.
1887	HeadId        string `protobuf:"bytes,3,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
1888	unknownFields protoimpl.UnknownFields
1889	sizeCache     protoimpl.SizeCache
1890}
1891
1892func (x *MarkReadRequest) Reset() {
1893	*x = MarkReadRequest{}
1894	mi := &file_ermite_merge_request_proto_msgTypes[21]
1895	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1896	ms.StoreMessageInfo(mi)
1897}
1898
1899func (x *MarkReadRequest) String() string {
1900	return protoimpl.X.MessageStringOf(x)
1901}
1902
1903func (*MarkReadRequest) ProtoMessage() {}
1904
1905func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
1906	mi := &file_ermite_merge_request_proto_msgTypes[21]
1907	if x != nil {
1908		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1909		if ms.LoadMessageInfo() == nil {
1910			ms.StoreMessageInfo(mi)
1911		}
1912		return ms
1913	}
1914	return mi.MessageOf(x)
1915}
1916
1917// Deprecated: Use MarkReadRequest.ProtoReflect.Descriptor instead.
1918func (*MarkReadRequest) Descriptor() ([]byte, []int) {
1919	return file_ermite_merge_request_proto_rawDescGZIP(), []int{21}
1920}
1921
1922func (x *MarkReadRequest) GetRepo() string {
1923	if x != nil {
1924		return x.Repo
1925	}
1926	return ""
1927}
1928
1929func (x *MarkReadRequest) GetNumber() int64 {
1930	if x != nil {
1931		return x.Number
1932	}
1933	return 0
1934}
1935
1936func (x *MarkReadRequest) GetHeadId() string {
1937	if x != nil {
1938		return x.HeadId
1939	}
1940	return ""
1941}
1942
1943// MarkReadResponse is empty.
1944type MarkReadResponse struct {
1945	state         protoimpl.MessageState `protogen:"open.v1"`
1946	unknownFields protoimpl.UnknownFields
1947	sizeCache     protoimpl.SizeCache
1948}
1949
1950func (x *MarkReadResponse) Reset() {
1951	*x = MarkReadResponse{}
1952	mi := &file_ermite_merge_request_proto_msgTypes[22]
1953	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1954	ms.StoreMessageInfo(mi)
1955}
1956
1957func (x *MarkReadResponse) String() string {
1958	return protoimpl.X.MessageStringOf(x)
1959}
1960
1961func (*MarkReadResponse) ProtoMessage() {}
1962
1963func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
1964	mi := &file_ermite_merge_request_proto_msgTypes[22]
1965	if x != nil {
1966		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1967		if ms.LoadMessageInfo() == nil {
1968			ms.StoreMessageInfo(mi)
1969		}
1970		return ms
1971	}
1972	return mi.MessageOf(x)
1973}
1974
1975// Deprecated: Use MarkReadResponse.ProtoReflect.Descriptor instead.
1976func (*MarkReadResponse) Descriptor() ([]byte, []int) {
1977	return file_ermite_merge_request_proto_rawDescGZIP(), []int{22}
1978}
1979
1980var File_ermite_merge_request_proto protoreflect.FileDescriptor
1981
1982const file_ermite_merge_request_proto_rawDesc = "" +
1983	"\n" +
1984	"\x1aermite/merge_request.proto\x12\x06ermite\x1a\x10ermite/git.proto\x1a\x12ermite/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf0\x03\n" +
1985	"\fMergeRequest\x12\x12\n" +
1986	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1987	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +
1988	"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
1989	"\vdescription\x18\x04 \x01(\tR\vdescription\x12#\n" +
1990	"\rsource_branch\x18\x05 \x01(\tR\fsourceBranch\x12#\n" +
1991	"\rtarget_branch\x18\x06 \x01(\tR\ftargetBranch\x12/\n" +
1992	"\x05state\x18\a \x01(\x0e2\x19.ermite.MergeRequestStateR\x05state\x12\x16\n" +
1993	"\x06author\x18\b \x01(\tR\x06author\x129\n" +
1994	"\n" +
1995	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
1996	"\n" +
1997	"updated_at\x18\n" +
1998	" \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x17\n" +
1999	"\ahead_id\x18\v \x01(\tR\x06headId\x12(\n" +
2000	"\x10merged_commit_id\x18\f \x01(\tR\x0emergedCommitId\x120\n" +
2001	"\n" +
2002	"merge_mode\x18\r \x01(\x0e2\x11.ermite.MergeModeR\tmergeMode\"\xbf\x03\n" +
2003	"\aComment\x12\x0e\n" +
2004	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
2005	"\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +
2006	"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
2007	"\x04line\x18\x04 \x01(\x05R\x04line\x12$\n" +
2008	"\x04side\x18\x05 \x01(\x0e2\x10.ermite.DiffSideR\x04side\x12\x1b\n" +
2009	"\tcommit_id\x18\x06 \x01(\tR\bcommitId\x12\x12\n" +
2010	"\x04text\x18\a \x01(\tR\x04text\x12\x1a\n" +
2011	"\bresolved\x18\b \x01(\bR\bresolved\x129\n" +
2012	"\n" +
2013	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x19\n" +
2014	"\breply_to\x18\n" +
2015	" \x01(\tR\areplyTo\x12\x1d\n" +
2016	"\n" +
2017	"start_line\x18\v \x01(\x05R\tstartLine\x12)\n" +
2018	"\averdict\x18\f \x01(\x0e2\x0f.ermite.VerdictR\averdict\x127\n" +
2019	"\tedited_at\x18\r \x01(\v2\x1a.google.protobuf.TimestampR\beditedAt\x12\x18\n" +
2020	"\adeleted\x18\x0e \x01(\bR\adeleted\"\xdf\x01\n" +
2021	"\rAuthorVerdict\x12\x16\n" +
2022	"\x06author\x18\x01 \x01(\tR\x06author\x12)\n" +
2023	"\averdict\x18\x02 \x01(\x0e2\x0f.ermite.VerdictR\averdict\x12\x1d\n" +
2024	"\n" +
2025	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x1b\n" +
2026	"\tcommit_id\x18\x04 \x01(\tR\bcommitId\x129\n" +
2027	"\n" +
2028	"created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x14\n" +
2029	"\x05stale\x18\x06 \x01(\bR\x05stale\"\xb1\x01\n" +
2030	"\x19CreateMergeRequestRequest\x12\x12\n" +
2031	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x14\n" +
2032	"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
2033	"\vdescription\x18\x03 \x01(\tR\vdescription\x12#\n" +
2034	"\rsource_branch\x18\x04 \x01(\tR\fsourceBranch\x12#\n" +
2035	"\rtarget_branch\x18\x05 \x01(\tR\ftargetBranch\"W\n" +
2036	"\x1aCreateMergeRequestResponse\x129\n" +
2037	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\x9b\x01\n" +
2038	"\x18ListMergeRequestsRequest\x12\x12\n" +
2039	"\x04repo\x18\x01 \x01(\tR\x04repo\x12/\n" +
2040	"\x05state\x18\x02 \x01(\x0e2\x19.ermite.MergeRequestStateR\x05state\x12\x1b\n" +
2041	"\tpage_size\x18\x03 \x01(\x05R\bpageSize\x12\x1d\n" +
2042	"\n" +
2043	"page_token\x18\x04 \x01(\tR\tpageToken\"\x80\x01\n" +
2044	"\x19ListMergeRequestsResponse\x12;\n" +
2045	"\x0emerge_requests\x18\x01 \x03(\v2\x14.ermite.MergeRequestR\rmergeRequests\x12&\n" +
2046	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"l\n" +
2047	"\x16GetMergeRequestRequest\x12\x12\n" +
2048	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2049	"\x06number\x18\x02 \x01(\x03R\x06number\x12&\n" +
2050	"\x0fsince_last_read\x18\x03 \x01(\bR\rsinceLastRead\"\xc0\x03\n" +
2051	"\x17GetMergeRequestResponse\x129\n" +
2052	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x12(\n" +
2053	"\acommits\x18\x02 \x03(\v2\x0e.ermite.CommitR\acommits\x12+\n" +
2054	"\x11commits_truncated\x18\x03 \x01(\bR\x10commitsTruncated\x12 \n" +
2055	"\fdiff_base_id\x18\x04 \x01(\tR\n" +
2056	"diffBaseId\x12'\n" +
2057	"\x05stats\x18\x05 \x01(\v2\x11.ermite.DiffStatsR\x05stats\x12 \n" +
2058	"\x04diff\x18\x06 \x01(\v2\f.ermite.DiffR\x04diff\x12+\n" +
2059	"\bcomments\x18\a \x03(\v2\x0f.ermite.CommentR\bcomments\x12 \n" +
2060	"\flast_read_id\x18\b \x01(\tR\n" +
2061	"lastReadId\x12$\n" +
2062	"\x0elast_read_lost\x18\t \x01(\bR\flastReadLost\x121\n" +
2063	"\bverdicts\x18\n" +
2064	" \x03(\v2\x15.ermite.AuthorVerdictR\bverdicts\"\x86\x02\n" +
2065	"\x11AddCommentRequest\x12\x12\n" +
2066	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2067	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x12\n" +
2068	"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
2069	"\x04line\x18\x04 \x01(\x05R\x04line\x12$\n" +
2070	"\x04side\x18\x05 \x01(\x0e2\x10.ermite.DiffSideR\x04side\x12\x12\n" +
2071	"\x04text\x18\x06 \x01(\tR\x04text\x12\x19\n" +
2072	"\breply_to\x18\a \x01(\tR\areplyTo\x12\x1d\n" +
2073	"\n" +
2074	"start_line\x18\b \x01(\x05R\tstartLine\x12)\n" +
2075	"\averdict\x18\t \x01(\x0e2\x0f.ermite.VerdictR\averdict\"?\n" +
2076	"\x12AddCommentResponse\x12)\n" +
2077	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"s\n" +
2078	"\x12EditCommentRequest\x12\x12\n" +
2079	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2080	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
2081	"\n" +
2082	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x12\n" +
2083	"\x04text\x18\x04 \x01(\tR\x04text\"@\n" +
2084	"\x13EditCommentResponse\x12)\n" +
2085	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"a\n" +
2086	"\x14DeleteCommentRequest\x12\x12\n" +
2087	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2088	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
2089	"\n" +
2090	"comment_id\x18\x03 \x01(\tR\tcommentId\"B\n" +
2091	"\x15DeleteCommentResponse\x12)\n" +
2092	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"~\n" +
2093	"\x15ResolveCommentRequest\x12\x12\n" +
2094	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2095	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
2096	"\n" +
2097	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x1a\n" +
2098	"\bresolved\x18\x04 \x01(\bR\bresolved\"C\n" +
2099	"\x16ResolveCommentResponse\x12)\n" +
2100	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"F\n" +
2101	"\x18CloseMergeRequestRequest\x12\x12\n" +
2102	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2103	"\x06number\x18\x02 \x01(\x03R\x06number\"V\n" +
2104	"\x19CloseMergeRequestResponse\x129\n" +
2105	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\xb8\x01\n" +
2106	"\x18MergeMergeRequestRequest\x12\x12\n" +
2107	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2108	"\x06number\x18\x02 \x01(\x03R\x06number\x12%\n" +
2109	"\x04mode\x18\x03 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
2110	"\ahead_id\x18\x04 \x01(\tR\x06headId\x120\n" +
2111	"\x14delete_source_branch\x18\x05 \x01(\bR\x12deleteSourceBranch\"\x8a\x01\n" +
2112	"\x19MergeMergeRequestResponse\x129\n" +
2113	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x122\n" +
2114	"\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"V\n" +
2115	"\x0fMarkReadRequest\x12\x12\n" +
2116	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2117	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x17\n" +
2118	"\ahead_id\x18\x03 \x01(\tR\x06headId\"\x12\n" +
2119	"\x10MarkReadResponse*\x96\x01\n" +
2120	"\x11MergeRequestState\x12#\n" +
2121	"\x1fMERGE_REQUEST_STATE_UNSPECIFIED\x10\x00\x12\x1c\n" +
2122	"\x18MERGE_REQUEST_STATE_OPEN\x10\x01\x12\x1e\n" +
2123	"\x1aMERGE_REQUEST_STATE_MERGED\x10\x02\x12\x1e\n" +
2124	"\x1aMERGE_REQUEST_STATE_CLOSED\x10\x03*K\n" +
2125	"\bDiffSide\x12\x19\n" +
2126	"\x15DIFF_SIDE_UNSPECIFIED\x10\x00\x12\x11\n" +
2127	"\rDIFF_SIDE_OLD\x10\x01\x12\x11\n" +
2128	"\rDIFF_SIDE_NEW\x10\x02*V\n" +
2129	"\aVerdict\x12\x17\n" +
2130	"\x13VERDICT_UNSPECIFIED\x10\x00\x12\x13\n" +
2131	"\x0fVERDICT_APPROVE\x10\x01\x12\x1d\n" +
2132	"\x19VERDICT_CHANGES_REQUESTED\x10\x022\xbf\x06\n" +
2133	"\x13MergeRequestService\x12[\n" +
2134	"\x12CreateMergeRequest\x12!.ermite.CreateMergeRequestRequest\x1a\".ermite.CreateMergeRequestResponse\x12X\n" +
2135	"\x11ListMergeRequests\x12 .ermite.ListMergeRequestsRequest\x1a!.ermite.ListMergeRequestsResponse\x12R\n" +
2136	"\x0fGetMergeRequest\x12\x1e.ermite.GetMergeRequestRequest\x1a\x1f.ermite.GetMergeRequestResponse\x12C\n" +
2137	"\n" +
2138	"AddComment\x12\x19.ermite.AddCommentRequest\x1a\x1a.ermite.AddCommentResponse\x12F\n" +
2139	"\vEditComment\x12\x1a.ermite.EditCommentRequest\x1a\x1b.ermite.EditCommentResponse\x12L\n" +
2140	"\rDeleteComment\x12\x1c.ermite.DeleteCommentRequest\x1a\x1d.ermite.DeleteCommentResponse\x12O\n" +
2141	"\x0eResolveComment\x12\x1d.ermite.ResolveCommentRequest\x1a\x1e.ermite.ResolveCommentResponse\x12X\n" +
2142	"\x11CloseMergeRequest\x12 .ermite.CloseMergeRequestRequest\x1a!.ermite.CloseMergeRequestResponse\x12X\n" +
2143	"\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12=\n" +
2144	"\bMarkRead\x12\x17.ermite.MarkReadRequest\x1a\x18.ermite.MarkReadResponseBx\n" +
2145	"\n" +
2146	"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"
2147
2148var (
2149	file_ermite_merge_request_proto_rawDescOnce sync.Once
2150	file_ermite_merge_request_proto_rawDescData []byte
2151)
2152
2153func file_ermite_merge_request_proto_rawDescGZIP() []byte {
2154	file_ermite_merge_request_proto_rawDescOnce.Do(func() {
2155		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)))
2156	})
2157	return file_ermite_merge_request_proto_rawDescData
2158}
2159
2160var file_ermite_merge_request_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
2161var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
2162var file_ermite_merge_request_proto_goTypes = []any{
2163	(MergeRequestState)(0),             // 0: ermite.MergeRequestState
2164	(DiffSide)(0),                      // 1: ermite.DiffSide
2165	(Verdict)(0),                       // 2: ermite.Verdict
2166	(*MergeRequest)(nil),               // 3: ermite.MergeRequest
2167	(*Comment)(nil),                    // 4: ermite.Comment
2168	(*AuthorVerdict)(nil),              // 5: ermite.AuthorVerdict
2169	(*CreateMergeRequestRequest)(nil),  // 6: ermite.CreateMergeRequestRequest
2170	(*CreateMergeRequestResponse)(nil), // 7: ermite.CreateMergeRequestResponse
2171	(*ListMergeRequestsRequest)(nil),   // 8: ermite.ListMergeRequestsRequest
2172	(*ListMergeRequestsResponse)(nil),  // 9: ermite.ListMergeRequestsResponse
2173	(*GetMergeRequestRequest)(nil),     // 10: ermite.GetMergeRequestRequest
2174	(*GetMergeRequestResponse)(nil),    // 11: ermite.GetMergeRequestResponse
2175	(*AddCommentRequest)(nil),          // 12: ermite.AddCommentRequest
2176	(*AddCommentResponse)(nil),         // 13: ermite.AddCommentResponse
2177	(*EditCommentRequest)(nil),         // 14: ermite.EditCommentRequest
2178	(*EditCommentResponse)(nil),        // 15: ermite.EditCommentResponse
2179	(*DeleteCommentRequest)(nil),       // 16: ermite.DeleteCommentRequest
2180	(*DeleteCommentResponse)(nil),      // 17: ermite.DeleteCommentResponse
2181	(*ResolveCommentRequest)(nil),      // 18: ermite.ResolveCommentRequest
2182	(*ResolveCommentResponse)(nil),     // 19: ermite.ResolveCommentResponse
2183	(*CloseMergeRequestRequest)(nil),   // 20: ermite.CloseMergeRequestRequest
2184	(*CloseMergeRequestResponse)(nil),  // 21: ermite.CloseMergeRequestResponse
2185	(*MergeMergeRequestRequest)(nil),   // 22: ermite.MergeMergeRequestRequest
2186	(*MergeMergeRequestResponse)(nil),  // 23: ermite.MergeMergeRequestResponse
2187	(*MarkReadRequest)(nil),            // 24: ermite.MarkReadRequest
2188	(*MarkReadResponse)(nil),           // 25: ermite.MarkReadResponse
2189	(*timestamppb.Timestamp)(nil),      // 26: google.protobuf.Timestamp
2190	(MergeMode)(0),                     // 27: ermite.MergeMode
2191	(*Commit)(nil),                     // 28: ermite.Commit
2192	(*DiffStats)(nil),                  // 29: ermite.DiffStats
2193	(*Diff)(nil),                       // 30: ermite.Diff
2194}
2195var file_ermite_merge_request_proto_depIdxs = []int32{
2196	0,  // 0: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState
2197	26, // 1: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp
2198	26, // 2: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp
2199	27, // 3: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode
2200	1,  // 4: ermite.Comment.side:type_name -> ermite.DiffSide
2201	26, // 5: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp
2202	2,  // 6: ermite.Comment.verdict:type_name -> ermite.Verdict
2203	26, // 7: ermite.Comment.edited_at:type_name -> google.protobuf.Timestamp
2204	2,  // 8: ermite.AuthorVerdict.verdict:type_name -> ermite.Verdict
2205	26, // 9: ermite.AuthorVerdict.created_at:type_name -> google.protobuf.Timestamp
2206	3,  // 10: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2207	0,  // 11: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState
2208	3,  // 12: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest
2209	3,  // 13: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2210	28, // 14: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit
2211	29, // 15: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats
2212	30, // 16: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff
2213	4,  // 17: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment
2214	5,  // 18: ermite.GetMergeRequestResponse.verdicts:type_name -> ermite.AuthorVerdict
2215	1,  // 19: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide
2216	2,  // 20: ermite.AddCommentRequest.verdict:type_name -> ermite.Verdict
2217	4,  // 21: ermite.AddCommentResponse.comment:type_name -> ermite.Comment
2218	4,  // 22: ermite.EditCommentResponse.comment:type_name -> ermite.Comment
2219	4,  // 23: ermite.DeleteCommentResponse.comment:type_name -> ermite.Comment
2220	4,  // 24: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment
2221	3,  // 25: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2222	27, // 26: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode
2223	3,  // 27: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
2224	6,  // 28: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest
2225	8,  // 29: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest
2226	10, // 30: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest
2227	12, // 31: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest
2228	14, // 32: ermite.MergeRequestService.EditComment:input_type -> ermite.EditCommentRequest
2229	16, // 33: ermite.MergeRequestService.DeleteComment:input_type -> ermite.DeleteCommentRequest
2230	18, // 34: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest
2231	20, // 35: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest
2232	22, // 36: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest
2233	24, // 37: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest
2234	7,  // 38: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse
2235	9,  // 39: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse
2236	11, // 40: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse
2237	13, // 41: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse
2238	15, // 42: ermite.MergeRequestService.EditComment:output_type -> ermite.EditCommentResponse
2239	17, // 43: ermite.MergeRequestService.DeleteComment:output_type -> ermite.DeleteCommentResponse
2240	19, // 44: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse
2241	21, // 45: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse
2242	23, // 46: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse
2243	25, // 47: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse
2244	38, // [38:48] is the sub-list for method output_type
2245	28, // [28:38] is the sub-list for method input_type
2246	28, // [28:28] is the sub-list for extension type_name
2247	28, // [28:28] is the sub-list for extension extendee
2248	0,  // [0:28] is the sub-list for field type_name
2249}
2250
2251func init() { file_ermite_merge_request_proto_init() }
2252func file_ermite_merge_request_proto_init() {
2253	if File_ermite_merge_request_proto != nil {
2254		return
2255	}
2256	file_ermite_git_proto_init()
2257	file_ermite_types_proto_init()
2258	type x struct{}
2259	out := protoimpl.TypeBuilder{
2260		File: protoimpl.DescBuilder{
2261			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2262			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)),
2263			NumEnums:      3,
2264			NumMessages:   23,
2265			NumExtensions: 0,
2266			NumServices:   1,
2267		},
2268		GoTypes:           file_ermite_merge_request_proto_goTypes,
2269		DependencyIndexes: file_ermite_merge_request_proto_depIdxs,
2270		EnumInfos:         file_ermite_merge_request_proto_enumTypes,
2271		MessageInfos:      file_ermite_merge_request_proto_msgTypes,
2272	}.Build()
2273	File_ermite_merge_request_proto = out.File
2274	file_ermite_merge_request_proto_goTypes = nil
2275	file_ermite_merge_request_proto_depIdxs = nil
2276}

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