main 81ede3b

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// MergeabilityState tells whether the head of an open merge request can be
195// merged into its target.
196type MergeabilityState int32
197
198const (
199	// Not set.
200	MergeabilityState_MERGEABILITY_STATE_UNSPECIFIED MergeabilityState = 0
201	// The server has no result yet for the current tips of both branches. It
202	// is replaced by another state when the check completes.
203	MergeabilityState_MERGEABILITY_STATE_CHECKING MergeabilityState = 1
204	// The target is an ancestor of the head: every mode can merge.
205	MergeabilityState_MERGEABILITY_STATE_UP_TO_DATE MergeabilityState = 2
206	// The target has commits the head lacks, but the head merges cleanly:
207	// squash and merge commit can merge, fast-forward cannot.
208	MergeabilityState_MERGEABILITY_STATE_BEHIND MergeabilityState = 3
209	// The head does not merge cleanly into the target, or the branches share no
210	// history: no mode can merge.
211	MergeabilityState_MERGEABILITY_STATE_CONFLICT MergeabilityState = 4
212)
213
214// Enum value maps for MergeabilityState.
215var (
216	MergeabilityState_name = map[int32]string{
217		0: "MERGEABILITY_STATE_UNSPECIFIED",
218		1: "MERGEABILITY_STATE_CHECKING",
219		2: "MERGEABILITY_STATE_UP_TO_DATE",
220		3: "MERGEABILITY_STATE_BEHIND",
221		4: "MERGEABILITY_STATE_CONFLICT",
222	}
223	MergeabilityState_value = map[string]int32{
224		"MERGEABILITY_STATE_UNSPECIFIED": 0,
225		"MERGEABILITY_STATE_CHECKING":    1,
226		"MERGEABILITY_STATE_UP_TO_DATE":  2,
227		"MERGEABILITY_STATE_BEHIND":      3,
228		"MERGEABILITY_STATE_CONFLICT":    4,
229	}
230)
231
232func (x MergeabilityState) Enum() *MergeabilityState {
233	p := new(MergeabilityState)
234	*p = x
235	return p
236}
237
238func (x MergeabilityState) String() string {
239	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
240}
241
242func (MergeabilityState) Descriptor() protoreflect.EnumDescriptor {
243	return file_ermite_merge_request_proto_enumTypes[3].Descriptor()
244}
245
246func (MergeabilityState) Type() protoreflect.EnumType {
247	return &file_ermite_merge_request_proto_enumTypes[3]
248}
249
250func (x MergeabilityState) Number() protoreflect.EnumNumber {
251	return protoreflect.EnumNumber(x)
252}
253
254// Deprecated: Use MergeabilityState.Descriptor instead.
255func (MergeabilityState) EnumDescriptor() ([]byte, []int) {
256	return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
257}
258
259// MergeRequestIssueState is where an issue named by a merge request is in its
260// life. Values share their numbers with IssueState (3, awaiting moderation,
261// is never shown here). It exists because issue.proto imports this file and
262// cannot be imported back.
263type MergeRequestIssueState int32
264
265const (
266	// Not set. Never returned by the server.
267	MergeRequestIssueState_MERGE_REQUEST_ISSUE_STATE_UNSPECIFIED MergeRequestIssueState = 0
268	// The issue is open.
269	MergeRequestIssueState_MERGE_REQUEST_ISSUE_STATE_OPEN MergeRequestIssueState = 1
270	// The issue is closed without being resolved.
271	MergeRequestIssueState_MERGE_REQUEST_ISSUE_STATE_CLOSED MergeRequestIssueState = 2
272	// The issue was resolved, by a merge or by hand.
273	MergeRequestIssueState_MERGE_REQUEST_ISSUE_STATE_RESOLVED MergeRequestIssueState = 4
274)
275
276// Enum value maps for MergeRequestIssueState.
277var (
278	MergeRequestIssueState_name = map[int32]string{
279		0: "MERGE_REQUEST_ISSUE_STATE_UNSPECIFIED",
280		1: "MERGE_REQUEST_ISSUE_STATE_OPEN",
281		2: "MERGE_REQUEST_ISSUE_STATE_CLOSED",
282		4: "MERGE_REQUEST_ISSUE_STATE_RESOLVED",
283	}
284	MergeRequestIssueState_value = map[string]int32{
285		"MERGE_REQUEST_ISSUE_STATE_UNSPECIFIED": 0,
286		"MERGE_REQUEST_ISSUE_STATE_OPEN":        1,
287		"MERGE_REQUEST_ISSUE_STATE_CLOSED":      2,
288		"MERGE_REQUEST_ISSUE_STATE_RESOLVED":    4,
289	}
290)
291
292func (x MergeRequestIssueState) Enum() *MergeRequestIssueState {
293	p := new(MergeRequestIssueState)
294	*p = x
295	return p
296}
297
298func (x MergeRequestIssueState) String() string {
299	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
300}
301
302func (MergeRequestIssueState) Descriptor() protoreflect.EnumDescriptor {
303	return file_ermite_merge_request_proto_enumTypes[4].Descriptor()
304}
305
306func (MergeRequestIssueState) Type() protoreflect.EnumType {
307	return &file_ermite_merge_request_proto_enumTypes[4]
308}
309
310func (x MergeRequestIssueState) Number() protoreflect.EnumNumber {
311	return protoreflect.EnumNumber(x)
312}
313
314// Deprecated: Use MergeRequestIssueState.Descriptor instead.
315func (MergeRequestIssueState) EnumDescriptor() ([]byte, []int) {
316	return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
317}
318
319// IssueEventKind is what happened in an IssueEvent.
320type IssueEventKind int32
321
322const (
323	// Not set. Never returned by the server.
324	IssueEventKind_ISSUE_EVENT_KIND_UNSPECIFIED IssueEventKind = 0
325	// A merge request started naming the issue; closes says whether with a
326	// closing reference.
327	IssueEventKind_ISSUE_EVENT_KIND_REFERENCED IssueEventKind = 1
328	// The issue was closed without being resolved.
329	IssueEventKind_ISSUE_EVENT_KIND_CLOSED IssueEventKind = 2
330	// The issue was reopened.
331	IssueEventKind_ISSUE_EVENT_KIND_REOPENED IssueEventKind = 3
332	// The issue was resolved; merge_request is set when a merge resolved it.
333	IssueEventKind_ISSUE_EVENT_KIND_RESOLVED IssueEventKind = 4
334)
335
336// Enum value maps for IssueEventKind.
337var (
338	IssueEventKind_name = map[int32]string{
339		0: "ISSUE_EVENT_KIND_UNSPECIFIED",
340		1: "ISSUE_EVENT_KIND_REFERENCED",
341		2: "ISSUE_EVENT_KIND_CLOSED",
342		3: "ISSUE_EVENT_KIND_REOPENED",
343		4: "ISSUE_EVENT_KIND_RESOLVED",
344	}
345	IssueEventKind_value = map[string]int32{
346		"ISSUE_EVENT_KIND_UNSPECIFIED": 0,
347		"ISSUE_EVENT_KIND_REFERENCED":  1,
348		"ISSUE_EVENT_KIND_CLOSED":      2,
349		"ISSUE_EVENT_KIND_REOPENED":    3,
350		"ISSUE_EVENT_KIND_RESOLVED":    4,
351	}
352)
353
354func (x IssueEventKind) Enum() *IssueEventKind {
355	p := new(IssueEventKind)
356	*p = x
357	return p
358}
359
360func (x IssueEventKind) String() string {
361	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
362}
363
364func (IssueEventKind) Descriptor() protoreflect.EnumDescriptor {
365	return file_ermite_merge_request_proto_enumTypes[5].Descriptor()
366}
367
368func (IssueEventKind) Type() protoreflect.EnumType {
369	return &file_ermite_merge_request_proto_enumTypes[5]
370}
371
372func (x IssueEventKind) Number() protoreflect.EnumNumber {
373	return protoreflect.EnumNumber(x)
374}
375
376// Deprecated: Use IssueEventKind.Descriptor instead.
377func (IssueEventKind) EnumDescriptor() ([]byte, []int) {
378	return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
379}
380
381// Mergeability is the result of checking an open merge request against the
382// tips of its branches.
383type Mergeability struct {
384	state protoimpl.MessageState `protogen:"open.v1"`
385	// State is the result.
386	State MergeabilityState `protobuf:"varint,1,opt,name=state,proto3,enum=ermite.MergeabilityState" json:"state,omitempty"`
387	// TargetId is the commit the target branch pointed to when checked. Empty
388	// while CHECKING.
389	TargetId string `protobuf:"bytes,2,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
390	// HeadId is the commit the source branch pointed to when checked. Empty
391	// while CHECKING.
392	HeadId string `protobuf:"bytes,3,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
393	// Behind is the number of commits of the target that the head lacks. Set
394	// only when state is BEHIND.
395	Behind int32 `protobuf:"varint,4,opt,name=behind,proto3" json:"behind,omitempty"`
396	// BehindCapped says that Behind is a lower bound: the server stops counting
397	// at 1,000.
398	BehindCapped bool `protobuf:"varint,5,opt,name=behind_capped,json=behindCapped,proto3" json:"behind_capped,omitempty"`
399	// ConflictPaths are the paths that conflict, at most 20. Set only when
400	// state is CONFLICT; empty when the branches share no history.
401	ConflictPaths []string `protobuf:"bytes,6,rep,name=conflict_paths,json=conflictPaths,proto3" json:"conflict_paths,omitempty"`
402	// ConflictPathsTruncated says that more paths conflict than listed.
403	ConflictPathsTruncated bool `protobuf:"varint,7,opt,name=conflict_paths_truncated,json=conflictPathsTruncated,proto3" json:"conflict_paths_truncated,omitempty"`
404	// CheckedAt is when the server computed the result. Unset while CHECKING.
405	CheckedAt     *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=checked_at,json=checkedAt,proto3" json:"checked_at,omitempty"`
406	unknownFields protoimpl.UnknownFields
407	sizeCache     protoimpl.SizeCache
408}
409
410func (x *Mergeability) Reset() {
411	*x = Mergeability{}
412	mi := &file_ermite_merge_request_proto_msgTypes[0]
413	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
414	ms.StoreMessageInfo(mi)
415}
416
417func (x *Mergeability) String() string {
418	return protoimpl.X.MessageStringOf(x)
419}
420
421func (*Mergeability) ProtoMessage() {}
422
423func (x *Mergeability) ProtoReflect() protoreflect.Message {
424	mi := &file_ermite_merge_request_proto_msgTypes[0]
425	if x != nil {
426		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
427		if ms.LoadMessageInfo() == nil {
428			ms.StoreMessageInfo(mi)
429		}
430		return ms
431	}
432	return mi.MessageOf(x)
433}
434
435// Deprecated: Use Mergeability.ProtoReflect.Descriptor instead.
436func (*Mergeability) Descriptor() ([]byte, []int) {
437	return file_ermite_merge_request_proto_rawDescGZIP(), []int{0}
438}
439
440func (x *Mergeability) GetState() MergeabilityState {
441	if x != nil {
442		return x.State
443	}
444	return MergeabilityState_MERGEABILITY_STATE_UNSPECIFIED
445}
446
447func (x *Mergeability) GetTargetId() string {
448	if x != nil {
449		return x.TargetId
450	}
451	return ""
452}
453
454func (x *Mergeability) GetHeadId() string {
455	if x != nil {
456		return x.HeadId
457	}
458	return ""
459}
460
461func (x *Mergeability) GetBehind() int32 {
462	if x != nil {
463		return x.Behind
464	}
465	return 0
466}
467
468func (x *Mergeability) GetBehindCapped() bool {
469	if x != nil {
470		return x.BehindCapped
471	}
472	return false
473}
474
475func (x *Mergeability) GetConflictPaths() []string {
476	if x != nil {
477		return x.ConflictPaths
478	}
479	return nil
480}
481
482func (x *Mergeability) GetConflictPathsTruncated() bool {
483	if x != nil {
484		return x.ConflictPathsTruncated
485	}
486	return false
487}
488
489func (x *Mergeability) GetCheckedAt() *timestamppb.Timestamp {
490	if x != nil {
491		return x.CheckedAt
492	}
493	return nil
494}
495
496// AutoMerge is the pending auto-merge of an open merge request: the server
497// merges it by itself once its checks pass. Set only by servers with the
498// "merge_requests.auto_merge" feature.
499type AutoMerge struct {
500	state protoimpl.MessageState `protogen:"open.v1"`
501	// Mode is the merge mode used. Never MERGE_MODE_UNSPECIFIED.
502	Mode MergeMode `protobuf:"varint,1,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
503	// HeadId is the head the auto-merge was enabled for. A new head cancels the
504	// auto-merge.
505	HeadId string `protobuf:"bytes,2,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
506	// EnabledBy names who enabled the auto-merge, like MergeRequest.author.
507	EnabledBy string `protobuf:"bytes,3,opt,name=enabled_by,json=enabledBy,proto3" json:"enabled_by,omitempty"`
508	// EnabledAt is when the auto-merge was enabled.
509	EnabledAt     *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=enabled_at,json=enabledAt,proto3" json:"enabled_at,omitempty"`
510	unknownFields protoimpl.UnknownFields
511	sizeCache     protoimpl.SizeCache
512}
513
514func (x *AutoMerge) Reset() {
515	*x = AutoMerge{}
516	mi := &file_ermite_merge_request_proto_msgTypes[1]
517	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
518	ms.StoreMessageInfo(mi)
519}
520
521func (x *AutoMerge) String() string {
522	return protoimpl.X.MessageStringOf(x)
523}
524
525func (*AutoMerge) ProtoMessage() {}
526
527func (x *AutoMerge) ProtoReflect() protoreflect.Message {
528	mi := &file_ermite_merge_request_proto_msgTypes[1]
529	if x != nil {
530		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
531		if ms.LoadMessageInfo() == nil {
532			ms.StoreMessageInfo(mi)
533		}
534		return ms
535	}
536	return mi.MessageOf(x)
537}
538
539// Deprecated: Use AutoMerge.ProtoReflect.Descriptor instead.
540func (*AutoMerge) Descriptor() ([]byte, []int) {
541	return file_ermite_merge_request_proto_rawDescGZIP(), []int{1}
542}
543
544func (x *AutoMerge) GetMode() MergeMode {
545	if x != nil {
546		return x.Mode
547	}
548	return MergeMode_MERGE_MODE_UNSPECIFIED
549}
550
551func (x *AutoMerge) GetHeadId() string {
552	if x != nil {
553		return x.HeadId
554	}
555	return ""
556}
557
558func (x *AutoMerge) GetEnabledBy() string {
559	if x != nil {
560		return x.EnabledBy
561	}
562	return ""
563}
564
565func (x *AutoMerge) GetEnabledAt() *timestamppb.Timestamp {
566	if x != nil {
567		return x.EnabledAt
568	}
569	return nil
570}
571
572// MergeRequest asks to merge one branch of a repository into another branch
573// of the same repository. It is about a branch, not about who wrote it.
574type MergeRequest struct {
575	state protoimpl.MessageState `protogen:"open.v1"`
576	// Repo is the name of the repository.
577	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
578	// Number identifies the merge request within its repository, starting at 1
579	// and never reused. It is written "!<number>" in messages and URLs.
580	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
581	// Title is a one-line plain-text title, at most 120 characters.
582	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
583	// Description is a plain-text description, at most 8,000 characters. It may
584	// be empty. Clients show it escaped, with line breaks kept.
585	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
586	// SourceBranch is the short name of the branch to merge, for example
587	// "feat/x".
588	SourceBranch string `protobuf:"bytes,5,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"`
589	// TargetBranch is the short name of the branch to merge into, for example
590	// "main".
591	TargetBranch string `protobuf:"bytes,6,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
592	// State is where the merge request is in its life.
593	State MergeRequestState `protobuf:"varint,7,opt,name=state,proto3,enum=ermite.MergeRequestState" json:"state,omitempty"`
594	// Author names who created the merge request: the label of the token that
595	// was used, "root" for the root token, or "owner" for a web session. It is
596	// informational: labels are not unique and the token may be gone.
597	Author string `protobuf:"bytes,8,opt,name=author,proto3" json:"author,omitempty"`
598	// CreatedAt is when the merge request was created.
599	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
600	// UpdatedAt is when the merge request last changed: title, description,
601	// state, or a comment added or resolved. Pushes to the source branch do not
602	// change it.
603	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
604	// HeadId is the id of the commit the source branch points to. While the
605	// merge request is open it is read from Git at every call, so it changes
606	// when the branch is pushed; it is empty if the branch was deleted. Once
607	// merged or closed it is the head at that moment.
608	HeadId string `protobuf:"bytes,11,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
609	// MergedCommitId is the id of the commit the target branch points to after
610	// the merge: the head for a fast-forward, the new commit for a squash or a
611	// merge commit.
612	// Empty unless state is MERGED.
613	MergedCommitId string `protobuf:"bytes,12,opt,name=merged_commit_id,json=mergedCommitId,proto3" json:"merged_commit_id,omitempty"`
614	// MergeMode is how the merge request was merged. MERGE_MODE_UNSPECIFIED
615	// unless state is MERGED.
616	MergeMode MergeMode `protobuf:"varint,13,opt,name=merge_mode,json=mergeMode,proto3,enum=ermite.MergeMode" json:"merge_mode,omitempty"`
617	// Mergeability tells whether the head can be merged into the target. Set
618	// while the merge request is OPEN, with state CHECKING until the server has
619	// a result for the current tips; never set once merged or closed. It is a
620	// hint: MergeMergeRequest checks again. Set only by servers with the
621	// "merge_requests.mergeability" feature.
622	Mergeability *Mergeability `protobuf:"bytes,14,opt,name=mergeability,proto3" json:"mergeability,omitempty"`
623	// AutoMerge is the pending auto-merge. Set only while the merge request is
624	// OPEN and auto-merge is enabled; unset once merged or closed. Set only by
625	// servers with the "merge_requests.auto_merge" feature.
626	AutoMerge *AutoMerge `protobuf:"bytes,15,opt,name=auto_merge,json=autoMerge,proto3" json:"auto_merge,omitempty"`
627	// AutoMerged is true when the server merged the merge request by auto-merge.
628	// Always false unless state is MERGED.
629	AutoMerged    bool `protobuf:"varint,16,opt,name=auto_merged,json=autoMerged,proto3" json:"auto_merged,omitempty"`
630	unknownFields protoimpl.UnknownFields
631	sizeCache     protoimpl.SizeCache
632}
633
634func (x *MergeRequest) Reset() {
635	*x = MergeRequest{}
636	mi := &file_ermite_merge_request_proto_msgTypes[2]
637	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
638	ms.StoreMessageInfo(mi)
639}
640
641func (x *MergeRequest) String() string {
642	return protoimpl.X.MessageStringOf(x)
643}
644
645func (*MergeRequest) ProtoMessage() {}
646
647func (x *MergeRequest) ProtoReflect() protoreflect.Message {
648	mi := &file_ermite_merge_request_proto_msgTypes[2]
649	if x != nil {
650		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
651		if ms.LoadMessageInfo() == nil {
652			ms.StoreMessageInfo(mi)
653		}
654		return ms
655	}
656	return mi.MessageOf(x)
657}
658
659// Deprecated: Use MergeRequest.ProtoReflect.Descriptor instead.
660func (*MergeRequest) Descriptor() ([]byte, []int) {
661	return file_ermite_merge_request_proto_rawDescGZIP(), []int{2}
662}
663
664func (x *MergeRequest) GetRepo() string {
665	if x != nil {
666		return x.Repo
667	}
668	return ""
669}
670
671func (x *MergeRequest) GetNumber() int64 {
672	if x != nil {
673		return x.Number
674	}
675	return 0
676}
677
678func (x *MergeRequest) GetTitle() string {
679	if x != nil {
680		return x.Title
681	}
682	return ""
683}
684
685func (x *MergeRequest) GetDescription() string {
686	if x != nil {
687		return x.Description
688	}
689	return ""
690}
691
692func (x *MergeRequest) GetSourceBranch() string {
693	if x != nil {
694		return x.SourceBranch
695	}
696	return ""
697}
698
699func (x *MergeRequest) GetTargetBranch() string {
700	if x != nil {
701		return x.TargetBranch
702	}
703	return ""
704}
705
706func (x *MergeRequest) GetState() MergeRequestState {
707	if x != nil {
708		return x.State
709	}
710	return MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED
711}
712
713func (x *MergeRequest) GetAuthor() string {
714	if x != nil {
715		return x.Author
716	}
717	return ""
718}
719
720func (x *MergeRequest) GetCreatedAt() *timestamppb.Timestamp {
721	if x != nil {
722		return x.CreatedAt
723	}
724	return nil
725}
726
727func (x *MergeRequest) GetUpdatedAt() *timestamppb.Timestamp {
728	if x != nil {
729		return x.UpdatedAt
730	}
731	return nil
732}
733
734func (x *MergeRequest) GetHeadId() string {
735	if x != nil {
736		return x.HeadId
737	}
738	return ""
739}
740
741func (x *MergeRequest) GetMergedCommitId() string {
742	if x != nil {
743		return x.MergedCommitId
744	}
745	return ""
746}
747
748func (x *MergeRequest) GetMergeMode() MergeMode {
749	if x != nil {
750		return x.MergeMode
751	}
752	return MergeMode_MERGE_MODE_UNSPECIFIED
753}
754
755func (x *MergeRequest) GetMergeability() *Mergeability {
756	if x != nil {
757		return x.Mergeability
758	}
759	return nil
760}
761
762func (x *MergeRequest) GetAutoMerge() *AutoMerge {
763	if x != nil {
764		return x.AutoMerge
765	}
766	return nil
767}
768
769func (x *MergeRequest) GetAutoMerged() bool {
770	if x != nil {
771		return x.AutoMerged
772	}
773	return false
774}
775
776// Comment is a note on a merge request, either general or attached to a line
777// of its diff.
778type Comment struct {
779	state protoimpl.MessageState `protogen:"open.v1"`
780	// Id identifies the comment within its merge request. Opaque.
781	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
782	// Author names who wrote the comment, like MergeRequest.author.
783	Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
784	// Path is the path of the commented file in the diff (the new path, or the
785	// old path of a deleted file). Empty for a general comment.
786	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
787	// Line is the 1-based line number on side. 0 for a general comment.
788	Line int32 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
789	// Side tells whether line counts on the old or the new side of the diff.
790	// DIFF_SIDE_UNSPECIFIED for a general comment.
791	Side DiffSide `protobuf:"varint,5,opt,name=side,proto3,enum=ermite.DiffSide" json:"side,omitempty"`
792	// CommitId is the head of the merge request when the comment was written.
793	// When it differs from the current head the line may have moved; clients
794	// may show the comment as outdated.
795	CommitId string `protobuf:"bytes,6,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
796	// Text is the Markdown source, at most 8,000 characters. Clients render it
797	// as Markdown without raw HTML; "^<id>" refers to a note of the same merge
798	// request. Empty when deleted is true, and possibly empty for a comment
799	// that carries a verdict.
800	Text string `protobuf:"bytes,7,opt,name=text,proto3" json:"text,omitempty"`
801	// Resolved is true once the comment was marked resolved.
802	Resolved bool `protobuf:"varint,8,opt,name=resolved,proto3" json:"resolved,omitempty"`
803	// CreatedAt is when the comment was written.
804	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
805	// ReplyTo is the id of the root comment this comment replies to. Empty for
806	// a root comment. A reply has the path, line, start_line and side of its
807	// root, and its commit_id is the head when the reply was written. Threads
808	// have one level: a reply never has replies.
809	ReplyTo string `protobuf:"bytes,10,opt,name=reply_to,json=replyTo,proto3" json:"reply_to,omitempty"`
810	// StartLine is the 1-based first line of a range that ends at line, on the
811	// same side. 0 for a comment on a single line or a general comment.
812	StartLine int32 `protobuf:"varint,11,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"`
813	// Verdict is the judgement given with the comment. Only a root comment has
814	// one; it never changes after creation.
815	Verdict Verdict `protobuf:"varint,12,opt,name=verdict,proto3,enum=ermite.Verdict" json:"verdict,omitempty"`
816	// EditedAt is when the text was last changed or the comment was deleted.
817	// Unset if it never was.
818	EditedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=edited_at,json=editedAt,proto3" json:"edited_at,omitempty"`
819	// Deleted is true once the author deleted the comment. Its text is then
820	// empty; its id, anchor, replies and verdict remain.
821	Deleted       bool `protobuf:"varint,14,opt,name=deleted,proto3" json:"deleted,omitempty"`
822	unknownFields protoimpl.UnknownFields
823	sizeCache     protoimpl.SizeCache
824}
825
826func (x *Comment) Reset() {
827	*x = Comment{}
828	mi := &file_ermite_merge_request_proto_msgTypes[3]
829	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
830	ms.StoreMessageInfo(mi)
831}
832
833func (x *Comment) String() string {
834	return protoimpl.X.MessageStringOf(x)
835}
836
837func (*Comment) ProtoMessage() {}
838
839func (x *Comment) ProtoReflect() protoreflect.Message {
840	mi := &file_ermite_merge_request_proto_msgTypes[3]
841	if x != nil {
842		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
843		if ms.LoadMessageInfo() == nil {
844			ms.StoreMessageInfo(mi)
845		}
846		return ms
847	}
848	return mi.MessageOf(x)
849}
850
851// Deprecated: Use Comment.ProtoReflect.Descriptor instead.
852func (*Comment) Descriptor() ([]byte, []int) {
853	return file_ermite_merge_request_proto_rawDescGZIP(), []int{3}
854}
855
856func (x *Comment) GetId() string {
857	if x != nil {
858		return x.Id
859	}
860	return ""
861}
862
863func (x *Comment) GetAuthor() string {
864	if x != nil {
865		return x.Author
866	}
867	return ""
868}
869
870func (x *Comment) GetPath() string {
871	if x != nil {
872		return x.Path
873	}
874	return ""
875}
876
877func (x *Comment) GetLine() int32 {
878	if x != nil {
879		return x.Line
880	}
881	return 0
882}
883
884func (x *Comment) GetSide() DiffSide {
885	if x != nil {
886		return x.Side
887	}
888	return DiffSide_DIFF_SIDE_UNSPECIFIED
889}
890
891func (x *Comment) GetCommitId() string {
892	if x != nil {
893		return x.CommitId
894	}
895	return ""
896}
897
898func (x *Comment) GetText() string {
899	if x != nil {
900		return x.Text
901	}
902	return ""
903}
904
905func (x *Comment) GetResolved() bool {
906	if x != nil {
907		return x.Resolved
908	}
909	return false
910}
911
912func (x *Comment) GetCreatedAt() *timestamppb.Timestamp {
913	if x != nil {
914		return x.CreatedAt
915	}
916	return nil
917}
918
919func (x *Comment) GetReplyTo() string {
920	if x != nil {
921		return x.ReplyTo
922	}
923	return ""
924}
925
926func (x *Comment) GetStartLine() int32 {
927	if x != nil {
928		return x.StartLine
929	}
930	return 0
931}
932
933func (x *Comment) GetVerdict() Verdict {
934	if x != nil {
935		return x.Verdict
936	}
937	return Verdict_VERDICT_UNSPECIFIED
938}
939
940func (x *Comment) GetEditedAt() *timestamppb.Timestamp {
941	if x != nil {
942		return x.EditedAt
943	}
944	return nil
945}
946
947func (x *Comment) GetDeleted() bool {
948	if x != nil {
949		return x.Deleted
950	}
951	return false
952}
953
954// AuthorVerdict is the current verdict of one author on a merge request: the
955// one given with the author's latest comment that carries a verdict.
956type AuthorVerdict struct {
957	state protoimpl.MessageState `protogen:"open.v1"`
958	// Author names who gave the verdict, like Comment.author.
959	Author string `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"`
960	// Verdict is the current verdict. Never VERDICT_UNSPECIFIED.
961	Verdict Verdict `protobuf:"varint,2,opt,name=verdict,proto3,enum=ermite.Verdict" json:"verdict,omitempty"`
962	// CommentId is the id of the comment that carries the verdict.
963	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
964	// CommitId is the head of the merge request when the verdict was given.
965	CommitId string `protobuf:"bytes,4,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
966	// CreatedAt is when the verdict was given.
967	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
968	// Stale is true for an approval given on a commit that is not the current
969	// head. A request for changes is never stale.
970	Stale         bool `protobuf:"varint,6,opt,name=stale,proto3" json:"stale,omitempty"`
971	unknownFields protoimpl.UnknownFields
972	sizeCache     protoimpl.SizeCache
973}
974
975func (x *AuthorVerdict) Reset() {
976	*x = AuthorVerdict{}
977	mi := &file_ermite_merge_request_proto_msgTypes[4]
978	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
979	ms.StoreMessageInfo(mi)
980}
981
982func (x *AuthorVerdict) String() string {
983	return protoimpl.X.MessageStringOf(x)
984}
985
986func (*AuthorVerdict) ProtoMessage() {}
987
988func (x *AuthorVerdict) ProtoReflect() protoreflect.Message {
989	mi := &file_ermite_merge_request_proto_msgTypes[4]
990	if x != nil {
991		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
992		if ms.LoadMessageInfo() == nil {
993			ms.StoreMessageInfo(mi)
994		}
995		return ms
996	}
997	return mi.MessageOf(x)
998}
999
1000// Deprecated: Use AuthorVerdict.ProtoReflect.Descriptor instead.
1001func (*AuthorVerdict) Descriptor() ([]byte, []int) {
1002	return file_ermite_merge_request_proto_rawDescGZIP(), []int{4}
1003}
1004
1005func (x *AuthorVerdict) GetAuthor() string {
1006	if x != nil {
1007		return x.Author
1008	}
1009	return ""
1010}
1011
1012func (x *AuthorVerdict) GetVerdict() Verdict {
1013	if x != nil {
1014		return x.Verdict
1015	}
1016	return Verdict_VERDICT_UNSPECIFIED
1017}
1018
1019func (x *AuthorVerdict) GetCommentId() string {
1020	if x != nil {
1021		return x.CommentId
1022	}
1023	return ""
1024}
1025
1026func (x *AuthorVerdict) GetCommitId() string {
1027	if x != nil {
1028		return x.CommitId
1029	}
1030	return ""
1031}
1032
1033func (x *AuthorVerdict) GetCreatedAt() *timestamppb.Timestamp {
1034	if x != nil {
1035		return x.CreatedAt
1036	}
1037	return nil
1038}
1039
1040func (x *AuthorVerdict) GetStale() bool {
1041	if x != nil {
1042		return x.Stale
1043	}
1044	return false
1045}
1046
1047// CreateMergeRequestRequest describes the merge request to open.
1048type CreateMergeRequestRequest struct {
1049	state protoimpl.MessageState `protogen:"open.v1"`
1050	// Repo is the repository name.
1051	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1052	// Title is the one-line title. Required.
1053	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
1054	// Description is the optional description.
1055	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
1056	// SourceBranch is the short name of the branch to merge. Required; the
1057	// branch must exist.
1058	SourceBranch string `protobuf:"bytes,4,opt,name=source_branch,json=sourceBranch,proto3" json:"source_branch,omitempty"`
1059	// TargetBranch is the short name of the branch to merge into. Empty means
1060	// the default branch of the repository. The branch must exist and differ
1061	// from source_branch.
1062	TargetBranch  string `protobuf:"bytes,5,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
1063	unknownFields protoimpl.UnknownFields
1064	sizeCache     protoimpl.SizeCache
1065}
1066
1067func (x *CreateMergeRequestRequest) Reset() {
1068	*x = CreateMergeRequestRequest{}
1069	mi := &file_ermite_merge_request_proto_msgTypes[5]
1070	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1071	ms.StoreMessageInfo(mi)
1072}
1073
1074func (x *CreateMergeRequestRequest) String() string {
1075	return protoimpl.X.MessageStringOf(x)
1076}
1077
1078func (*CreateMergeRequestRequest) ProtoMessage() {}
1079
1080func (x *CreateMergeRequestRequest) ProtoReflect() protoreflect.Message {
1081	mi := &file_ermite_merge_request_proto_msgTypes[5]
1082	if x != nil {
1083		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1084		if ms.LoadMessageInfo() == nil {
1085			ms.StoreMessageInfo(mi)
1086		}
1087		return ms
1088	}
1089	return mi.MessageOf(x)
1090}
1091
1092// Deprecated: Use CreateMergeRequestRequest.ProtoReflect.Descriptor instead.
1093func (*CreateMergeRequestRequest) Descriptor() ([]byte, []int) {
1094	return file_ermite_merge_request_proto_rawDescGZIP(), []int{5}
1095}
1096
1097func (x *CreateMergeRequestRequest) GetRepo() string {
1098	if x != nil {
1099		return x.Repo
1100	}
1101	return ""
1102}
1103
1104func (x *CreateMergeRequestRequest) GetTitle() string {
1105	if x != nil {
1106		return x.Title
1107	}
1108	return ""
1109}
1110
1111func (x *CreateMergeRequestRequest) GetDescription() string {
1112	if x != nil {
1113		return x.Description
1114	}
1115	return ""
1116}
1117
1118func (x *CreateMergeRequestRequest) GetSourceBranch() string {
1119	if x != nil {
1120		return x.SourceBranch
1121	}
1122	return ""
1123}
1124
1125func (x *CreateMergeRequestRequest) GetTargetBranch() string {
1126	if x != nil {
1127		return x.TargetBranch
1128	}
1129	return ""
1130}
1131
1132// CreateMergeRequestResponse holds the new merge request.
1133type CreateMergeRequestResponse struct {
1134	state protoimpl.MessageState `protogen:"open.v1"`
1135	// MergeRequest is the created merge request.
1136	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1137	unknownFields protoimpl.UnknownFields
1138	sizeCache     protoimpl.SizeCache
1139}
1140
1141func (x *CreateMergeRequestResponse) Reset() {
1142	*x = CreateMergeRequestResponse{}
1143	mi := &file_ermite_merge_request_proto_msgTypes[6]
1144	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1145	ms.StoreMessageInfo(mi)
1146}
1147
1148func (x *CreateMergeRequestResponse) String() string {
1149	return protoimpl.X.MessageStringOf(x)
1150}
1151
1152func (*CreateMergeRequestResponse) ProtoMessage() {}
1153
1154func (x *CreateMergeRequestResponse) ProtoReflect() protoreflect.Message {
1155	mi := &file_ermite_merge_request_proto_msgTypes[6]
1156	if x != nil {
1157		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1158		if ms.LoadMessageInfo() == nil {
1159			ms.StoreMessageInfo(mi)
1160		}
1161		return ms
1162	}
1163	return mi.MessageOf(x)
1164}
1165
1166// Deprecated: Use CreateMergeRequestResponse.ProtoReflect.Descriptor instead.
1167func (*CreateMergeRequestResponse) Descriptor() ([]byte, []int) {
1168	return file_ermite_merge_request_proto_rawDescGZIP(), []int{6}
1169}
1170
1171func (x *CreateMergeRequestResponse) GetMergeRequest() *MergeRequest {
1172	if x != nil {
1173		return x.MergeRequest
1174	}
1175	return nil
1176}
1177
1178// ListMergeRequestsRequest selects a page of merge requests.
1179type ListMergeRequestsRequest struct {
1180	state protoimpl.MessageState `protogen:"open.v1"`
1181	// Repo is the repository name.
1182	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1183	// State restricts the result to one state. MERGE_REQUEST_STATE_UNSPECIFIED
1184	// means every state.
1185	State MergeRequestState `protobuf:"varint,2,opt,name=state,proto3,enum=ermite.MergeRequestState" json:"state,omitempty"`
1186	// PageSize is the maximum number of merge requests to return. 0 means the
1187	// server default; values above the server maximum are lowered to it.
1188	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1189	// PageToken is the next_page_token of a previous response, to continue the
1190	// same listing. Empty for the first page. Other fields must be unchanged.
1191	PageToken     string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1192	unknownFields protoimpl.UnknownFields
1193	sizeCache     protoimpl.SizeCache
1194}
1195
1196func (x *ListMergeRequestsRequest) Reset() {
1197	*x = ListMergeRequestsRequest{}
1198	mi := &file_ermite_merge_request_proto_msgTypes[7]
1199	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1200	ms.StoreMessageInfo(mi)
1201}
1202
1203func (x *ListMergeRequestsRequest) String() string {
1204	return protoimpl.X.MessageStringOf(x)
1205}
1206
1207func (*ListMergeRequestsRequest) ProtoMessage() {}
1208
1209func (x *ListMergeRequestsRequest) ProtoReflect() protoreflect.Message {
1210	mi := &file_ermite_merge_request_proto_msgTypes[7]
1211	if x != nil {
1212		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1213		if ms.LoadMessageInfo() == nil {
1214			ms.StoreMessageInfo(mi)
1215		}
1216		return ms
1217	}
1218	return mi.MessageOf(x)
1219}
1220
1221// Deprecated: Use ListMergeRequestsRequest.ProtoReflect.Descriptor instead.
1222func (*ListMergeRequestsRequest) Descriptor() ([]byte, []int) {
1223	return file_ermite_merge_request_proto_rawDescGZIP(), []int{7}
1224}
1225
1226func (x *ListMergeRequestsRequest) GetRepo() string {
1227	if x != nil {
1228		return x.Repo
1229	}
1230	return ""
1231}
1232
1233func (x *ListMergeRequestsRequest) GetState() MergeRequestState {
1234	if x != nil {
1235		return x.State
1236	}
1237	return MergeRequestState_MERGE_REQUEST_STATE_UNSPECIFIED
1238}
1239
1240func (x *ListMergeRequestsRequest) GetPageSize() int32 {
1241	if x != nil {
1242		return x.PageSize
1243	}
1244	return 0
1245}
1246
1247func (x *ListMergeRequestsRequest) GetPageToken() string {
1248	if x != nil {
1249		return x.PageToken
1250	}
1251	return ""
1252}
1253
1254// ListMergeRequestsResponse is one page of merge requests.
1255type ListMergeRequestsResponse struct {
1256	state protoimpl.MessageState `protogen:"open.v1"`
1257	// MergeRequests are the merge requests of this page, highest number first.
1258	MergeRequests []*MergeRequest `protobuf:"bytes,1,rep,name=merge_requests,json=mergeRequests,proto3" json:"merge_requests,omitempty"`
1259	// NextPageToken is passed as page_token to get the next page. Empty when
1260	// there is no next page.
1261	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1262	unknownFields protoimpl.UnknownFields
1263	sizeCache     protoimpl.SizeCache
1264}
1265
1266func (x *ListMergeRequestsResponse) Reset() {
1267	*x = ListMergeRequestsResponse{}
1268	mi := &file_ermite_merge_request_proto_msgTypes[8]
1269	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1270	ms.StoreMessageInfo(mi)
1271}
1272
1273func (x *ListMergeRequestsResponse) String() string {
1274	return protoimpl.X.MessageStringOf(x)
1275}
1276
1277func (*ListMergeRequestsResponse) ProtoMessage() {}
1278
1279func (x *ListMergeRequestsResponse) ProtoReflect() protoreflect.Message {
1280	mi := &file_ermite_merge_request_proto_msgTypes[8]
1281	if x != nil {
1282		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1283		if ms.LoadMessageInfo() == nil {
1284			ms.StoreMessageInfo(mi)
1285		}
1286		return ms
1287	}
1288	return mi.MessageOf(x)
1289}
1290
1291// Deprecated: Use ListMergeRequestsResponse.ProtoReflect.Descriptor instead.
1292func (*ListMergeRequestsResponse) Descriptor() ([]byte, []int) {
1293	return file_ermite_merge_request_proto_rawDescGZIP(), []int{8}
1294}
1295
1296func (x *ListMergeRequestsResponse) GetMergeRequests() []*MergeRequest {
1297	if x != nil {
1298		return x.MergeRequests
1299	}
1300	return nil
1301}
1302
1303func (x *ListMergeRequestsResponse) GetNextPageToken() string {
1304	if x != nil {
1305		return x.NextPageToken
1306	}
1307	return ""
1308}
1309
1310// MergeRequestIssue is an issue of the same repository that a merge request
1311// names ("#N").
1312type MergeRequestIssue struct {
1313	state protoimpl.MessageState `protogen:"open.v1"`
1314	// Number is the number of the issue.
1315	Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
1316	// Title is the title of the issue.
1317	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
1318	// State is where the issue is in its life.
1319	State MergeRequestIssueState `protobuf:"varint,3,opt,name=state,proto3,enum=ermite.MergeRequestIssueState" json:"state,omitempty"`
1320	// Closes says that a closing reference names the issue: merging the request
1321	// resolves it.
1322	Closes        bool `protobuf:"varint,4,opt,name=closes,proto3" json:"closes,omitempty"`
1323	unknownFields protoimpl.UnknownFields
1324	sizeCache     protoimpl.SizeCache
1325}
1326
1327func (x *MergeRequestIssue) Reset() {
1328	*x = MergeRequestIssue{}
1329	mi := &file_ermite_merge_request_proto_msgTypes[9]
1330	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1331	ms.StoreMessageInfo(mi)
1332}
1333
1334func (x *MergeRequestIssue) String() string {
1335	return protoimpl.X.MessageStringOf(x)
1336}
1337
1338func (*MergeRequestIssue) ProtoMessage() {}
1339
1340func (x *MergeRequestIssue) ProtoReflect() protoreflect.Message {
1341	mi := &file_ermite_merge_request_proto_msgTypes[9]
1342	if x != nil {
1343		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1344		if ms.LoadMessageInfo() == nil {
1345			ms.StoreMessageInfo(mi)
1346		}
1347		return ms
1348	}
1349	return mi.MessageOf(x)
1350}
1351
1352// Deprecated: Use MergeRequestIssue.ProtoReflect.Descriptor instead.
1353func (*MergeRequestIssue) Descriptor() ([]byte, []int) {
1354	return file_ermite_merge_request_proto_rawDescGZIP(), []int{9}
1355}
1356
1357func (x *MergeRequestIssue) GetNumber() int64 {
1358	if x != nil {
1359		return x.Number
1360	}
1361	return 0
1362}
1363
1364func (x *MergeRequestIssue) GetTitle() string {
1365	if x != nil {
1366		return x.Title
1367	}
1368	return ""
1369}
1370
1371func (x *MergeRequestIssue) GetState() MergeRequestIssueState {
1372	if x != nil {
1373		return x.State
1374	}
1375	return MergeRequestIssueState_MERGE_REQUEST_ISSUE_STATE_UNSPECIFIED
1376}
1377
1378func (x *MergeRequestIssue) GetCloses() bool {
1379	if x != nil {
1380		return x.Closes
1381	}
1382	return false
1383}
1384
1385// IssueEvent is one entry in the history of an issue. Events are append-only:
1386// a reference that later disappears does not remove its event.
1387type IssueEvent struct {
1388	state protoimpl.MessageState `protogen:"open.v1"`
1389	// Id identifies the event within its issue. Opaque. Events of different
1390	// issues can share an id: key them by (issue, id).
1391	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1392	// Kind is what happened.
1393	Kind IssueEventKind `protobuf:"varint,2,opt,name=kind,proto3,enum=ermite.IssueEventKind" json:"kind,omitempty"`
1394	// Issue is the number of the issue.
1395	Issue int64 `protobuf:"varint,3,opt,name=issue,proto3" json:"issue,omitempty"`
1396	// MergeRequest is the number of the merge request involved; 0 if none.
1397	MergeRequest int64 `protobuf:"varint,4,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1398	// MergeRequestTitle is the title of that merge request at read time; empty
1399	// if none.
1400	MergeRequestTitle string `protobuf:"bytes,5,opt,name=merge_request_title,json=mergeRequestTitle,proto3" json:"merge_request_title,omitempty"`
1401	// Closes says that the reference was a closing one. Only set for
1402	// ISSUE_EVENT_KIND_REFERENCED.
1403	Closes bool `protobuf:"varint,6,opt,name=closes,proto3" json:"closes,omitempty"`
1404	// Actor names who caused the event, like Issue.author: the label of the
1405	// token or session. For events triggered by a merge, the label of who
1406	// merged.
1407	Actor string `protobuf:"bytes,7,opt,name=actor,proto3" json:"actor,omitempty"`
1408	// CreatedAt is when the event happened.
1409	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
1410	unknownFields protoimpl.UnknownFields
1411	sizeCache     protoimpl.SizeCache
1412}
1413
1414func (x *IssueEvent) Reset() {
1415	*x = IssueEvent{}
1416	mi := &file_ermite_merge_request_proto_msgTypes[10]
1417	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1418	ms.StoreMessageInfo(mi)
1419}
1420
1421func (x *IssueEvent) String() string {
1422	return protoimpl.X.MessageStringOf(x)
1423}
1424
1425func (*IssueEvent) ProtoMessage() {}
1426
1427func (x *IssueEvent) ProtoReflect() protoreflect.Message {
1428	mi := &file_ermite_merge_request_proto_msgTypes[10]
1429	if x != nil {
1430		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1431		if ms.LoadMessageInfo() == nil {
1432			ms.StoreMessageInfo(mi)
1433		}
1434		return ms
1435	}
1436	return mi.MessageOf(x)
1437}
1438
1439// Deprecated: Use IssueEvent.ProtoReflect.Descriptor instead.
1440func (*IssueEvent) Descriptor() ([]byte, []int) {
1441	return file_ermite_merge_request_proto_rawDescGZIP(), []int{10}
1442}
1443
1444func (x *IssueEvent) GetId() string {
1445	if x != nil {
1446		return x.Id
1447	}
1448	return ""
1449}
1450
1451func (x *IssueEvent) GetKind() IssueEventKind {
1452	if x != nil {
1453		return x.Kind
1454	}
1455	return IssueEventKind_ISSUE_EVENT_KIND_UNSPECIFIED
1456}
1457
1458func (x *IssueEvent) GetIssue() int64 {
1459	if x != nil {
1460		return x.Issue
1461	}
1462	return 0
1463}
1464
1465func (x *IssueEvent) GetMergeRequest() int64 {
1466	if x != nil {
1467		return x.MergeRequest
1468	}
1469	return 0
1470}
1471
1472func (x *IssueEvent) GetMergeRequestTitle() string {
1473	if x != nil {
1474		return x.MergeRequestTitle
1475	}
1476	return ""
1477}
1478
1479func (x *IssueEvent) GetCloses() bool {
1480	if x != nil {
1481		return x.Closes
1482	}
1483	return false
1484}
1485
1486func (x *IssueEvent) GetActor() string {
1487	if x != nil {
1488		return x.Actor
1489	}
1490	return ""
1491}
1492
1493func (x *IssueEvent) GetCreatedAt() *timestamppb.Timestamp {
1494	if x != nil {
1495		return x.CreatedAt
1496	}
1497	return nil
1498}
1499
1500// GetMergeRequestRequest selects a merge request.
1501type GetMergeRequestRequest struct {
1502	state protoimpl.MessageState `protogen:"open.v1"`
1503	// Repo is the repository name.
1504	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1505	// Number is the merge request number.
1506	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1507	// SinceLastRead asks for the diff between the head recorded by MarkRead and
1508	// the current head instead of the diff against the target. It works after a
1509	// force-push as long as the recorded commit still exists in the repository.
1510	// When nothing was marked read, or the recorded commit is gone, the response
1511	// holds the diff against the target and says so in last_read_id and
1512	// last_read_lost.
1513	SinceLastRead bool `protobuf:"varint,3,opt,name=since_last_read,json=sinceLastRead,proto3" json:"since_last_read,omitempty"`
1514	unknownFields protoimpl.UnknownFields
1515	sizeCache     protoimpl.SizeCache
1516}
1517
1518func (x *GetMergeRequestRequest) Reset() {
1519	*x = GetMergeRequestRequest{}
1520	mi := &file_ermite_merge_request_proto_msgTypes[11]
1521	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1522	ms.StoreMessageInfo(mi)
1523}
1524
1525func (x *GetMergeRequestRequest) String() string {
1526	return protoimpl.X.MessageStringOf(x)
1527}
1528
1529func (*GetMergeRequestRequest) ProtoMessage() {}
1530
1531func (x *GetMergeRequestRequest) ProtoReflect() protoreflect.Message {
1532	mi := &file_ermite_merge_request_proto_msgTypes[11]
1533	if x != nil {
1534		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1535		if ms.LoadMessageInfo() == nil {
1536			ms.StoreMessageInfo(mi)
1537		}
1538		return ms
1539	}
1540	return mi.MessageOf(x)
1541}
1542
1543// Deprecated: Use GetMergeRequestRequest.ProtoReflect.Descriptor instead.
1544func (*GetMergeRequestRequest) Descriptor() ([]byte, []int) {
1545	return file_ermite_merge_request_proto_rawDescGZIP(), []int{11}
1546}
1547
1548func (x *GetMergeRequestRequest) GetRepo() string {
1549	if x != nil {
1550		return x.Repo
1551	}
1552	return ""
1553}
1554
1555func (x *GetMergeRequestRequest) GetNumber() int64 {
1556	if x != nil {
1557		return x.Number
1558	}
1559	return 0
1560}
1561
1562func (x *GetMergeRequestRequest) GetSinceLastRead() bool {
1563	if x != nil {
1564		return x.SinceLastRead
1565	}
1566	return false
1567}
1568
1569// GetMergeRequestResponse holds a merge request with its review data.
1570type GetMergeRequestResponse struct {
1571	state protoimpl.MessageState `protogen:"open.v1"`
1572	// MergeRequest is the merge request.
1573	MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
1574	// Commits are the commits of the head that are not in the target
1575	// ("target..head"), newest first. At most 100 are returned (a server limit
1576	// that may change; rely on commits_truncated, not on the number). Empty when
1577	// the source branch was deleted.
1578	Commits []*Commit `protobuf:"bytes,2,rep,name=commits,proto3" json:"commits,omitempty"`
1579	// CommitsTruncated is true when the branch has more commits than commits
1580	// holds.
1581	CommitsTruncated bool `protobuf:"varint,3,opt,name=commits_truncated,json=commitsTruncated,proto3" json:"commits_truncated,omitempty"`
1582	// DiffBaseId is the id of the commit the diff compares from: the merge base
1583	// of the target and the head, or the last read head when since_last_read
1584	// applied. Empty when the source branch was deleted; diff is then empty.
1585	DiffBaseId string `protobuf:"bytes,4,opt,name=diff_base_id,json=diffBaseId,proto3" json:"diff_base_id,omitempty"`
1586	// Stats are the totals of the diff, including files that it omits or
1587	// truncates.
1588	Stats *DiffStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
1589	// Diff is the structured diff from diff_base_id to the head, with the same
1590	// limits and truncated flags as GetCommitResponse.diff.
1591	Diff *Diff `protobuf:"bytes,6,opt,name=diff,proto3" json:"diff,omitempty"`
1592	// Comments are every comment of the merge request, oldest first.
1593	Comments []*Comment `protobuf:"bytes,7,rep,name=comments,proto3" json:"comments,omitempty"`
1594	// LastReadId is the head recorded by MarkRead, whether or not
1595	// since_last_read was set. Empty when nothing was marked read.
1596	LastReadId string `protobuf:"bytes,8,opt,name=last_read_id,json=lastReadId,proto3" json:"last_read_id,omitempty"`
1597	// LastReadLost is true when since_last_read was set, a head was recorded,
1598	// but that commit no longer exists in the repository: the diff is then the
1599	// diff against the target. A client should tell the reader to review the
1600	// whole change again.
1601	LastReadLost bool `protobuf:"varint,9,opt,name=last_read_lost,json=lastReadLost,proto3" json:"last_read_lost,omitempty"`
1602	// Verdicts are the current verdicts, one per author who gave one, ordered
1603	// by the comment that carries them, oldest first.
1604	Verdicts []*AuthorVerdict `protobuf:"bytes,10,rep,name=verdicts,proto3" json:"verdicts,omitempty"`
1605	// Issues are the issues of the same repository that the merge request names,
1606	// ascending by number, at most 100. Empty when issues are off.
1607	Issues []*MergeRequestIssue `protobuf:"bytes,11,rep,name=issues,proto3" json:"issues,omitempty"`
1608	// IssueEvents are the history entries that involve this merge request: the
1609	// REFERENCED and RESOLVED events of the issues it names or once named,
1610	// oldest first, at most 500. An event can name an issue that is no longer
1611	// in issues. Empty when issues are off.
1612	IssueEvents   []*IssueEvent `protobuf:"bytes,12,rep,name=issue_events,json=issueEvents,proto3" json:"issue_events,omitempty"`
1613	unknownFields protoimpl.UnknownFields
1614	sizeCache     protoimpl.SizeCache
1615}
1616
1617func (x *GetMergeRequestResponse) Reset() {
1618	*x = GetMergeRequestResponse{}
1619	mi := &file_ermite_merge_request_proto_msgTypes[12]
1620	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1621	ms.StoreMessageInfo(mi)
1622}
1623
1624func (x *GetMergeRequestResponse) String() string {
1625	return protoimpl.X.MessageStringOf(x)
1626}
1627
1628func (*GetMergeRequestResponse) ProtoMessage() {}
1629
1630func (x *GetMergeRequestResponse) ProtoReflect() protoreflect.Message {
1631	mi := &file_ermite_merge_request_proto_msgTypes[12]
1632	if x != nil {
1633		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1634		if ms.LoadMessageInfo() == nil {
1635			ms.StoreMessageInfo(mi)
1636		}
1637		return ms
1638	}
1639	return mi.MessageOf(x)
1640}
1641
1642// Deprecated: Use GetMergeRequestResponse.ProtoReflect.Descriptor instead.
1643func (*GetMergeRequestResponse) Descriptor() ([]byte, []int) {
1644	return file_ermite_merge_request_proto_rawDescGZIP(), []int{12}
1645}
1646
1647func (x *GetMergeRequestResponse) GetMergeRequest() *MergeRequest {
1648	if x != nil {
1649		return x.MergeRequest
1650	}
1651	return nil
1652}
1653
1654func (x *GetMergeRequestResponse) GetCommits() []*Commit {
1655	if x != nil {
1656		return x.Commits
1657	}
1658	return nil
1659}
1660
1661func (x *GetMergeRequestResponse) GetCommitsTruncated() bool {
1662	if x != nil {
1663		return x.CommitsTruncated
1664	}
1665	return false
1666}
1667
1668func (x *GetMergeRequestResponse) GetDiffBaseId() string {
1669	if x != nil {
1670		return x.DiffBaseId
1671	}
1672	return ""
1673}
1674
1675func (x *GetMergeRequestResponse) GetStats() *DiffStats {
1676	if x != nil {
1677		return x.Stats
1678	}
1679	return nil
1680}
1681
1682func (x *GetMergeRequestResponse) GetDiff() *Diff {
1683	if x != nil {
1684		return x.Diff
1685	}
1686	return nil
1687}
1688
1689func (x *GetMergeRequestResponse) GetComments() []*Comment {
1690	if x != nil {
1691		return x.Comments
1692	}
1693	return nil
1694}
1695
1696func (x *GetMergeRequestResponse) GetLastReadId() string {
1697	if x != nil {
1698		return x.LastReadId
1699	}
1700	return ""
1701}
1702
1703func (x *GetMergeRequestResponse) GetLastReadLost() bool {
1704	if x != nil {
1705		return x.LastReadLost
1706	}
1707	return false
1708}
1709
1710func (x *GetMergeRequestResponse) GetVerdicts() []*AuthorVerdict {
1711	if x != nil {
1712		return x.Verdicts
1713	}
1714	return nil
1715}
1716
1717func (x *GetMergeRequestResponse) GetIssues() []*MergeRequestIssue {
1718	if x != nil {
1719		return x.Issues
1720	}
1721	return nil
1722}
1723
1724func (x *GetMergeRequestResponse) GetIssueEvents() []*IssueEvent {
1725	if x != nil {
1726		return x.IssueEvents
1727	}
1728	return nil
1729}
1730
1731// AddCommentRequest describes the comment to add.
1732type AddCommentRequest struct {
1733	state protoimpl.MessageState `protogen:"open.v1"`
1734	// Repo is the repository name.
1735	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1736	// Number is the merge request number.
1737	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1738	// Path is the file the comment is attached to, as given by the diff of the
1739	// merge request: FileDiff.new_path, or old_path for a deleted file. Empty
1740	// for a general comment; then line must be 0 and side unspecified.
1741	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
1742	// Line is the 1-based line number on side. It must be the old_number or
1743	// new_number of a Line of a hunk of the file; a line outside the hunks is
1744	// invalid_argument. 0 for a general comment.
1745	Line int32 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
1746	// Side is the side line counts on. Required when path is set.
1747	Side DiffSide `protobuf:"varint,5,opt,name=side,proto3,enum=ermite.DiffSide" json:"side,omitempty"`
1748	// Text is the Markdown source. Required, except when verdict is set.
1749	Text string `protobuf:"bytes,6,opt,name=text,proto3" json:"text,omitempty"`
1750	// ReplyTo is the id of the root comment to reply to. Empty for a new root
1751	// comment. A reply takes the anchor of its root: path, line, start_line,
1752	// side and verdict must then be unset.
1753	ReplyTo string `protobuf:"bytes,7,opt,name=reply_to,json=replyTo,proto3" json:"reply_to,omitempty"`
1754	// StartLine is the 1-based first line of a range ending at line. 0 for a
1755	// single line. Needs path; it must be lower than line, and both ends must
1756	// be lines of the diff on side.
1757	StartLine int32 `protobuf:"varint,8,opt,name=start_line,json=startLine,proto3" json:"start_line,omitempty"`
1758	// Verdict is the judgement to give. Needs the mr:review scope and a root
1759	// comment. VERDICT_UNSPECIFIED for a plain comment.
1760	Verdict       Verdict `protobuf:"varint,9,opt,name=verdict,proto3,enum=ermite.Verdict" json:"verdict,omitempty"`
1761	unknownFields protoimpl.UnknownFields
1762	sizeCache     protoimpl.SizeCache
1763}
1764
1765func (x *AddCommentRequest) Reset() {
1766	*x = AddCommentRequest{}
1767	mi := &file_ermite_merge_request_proto_msgTypes[13]
1768	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1769	ms.StoreMessageInfo(mi)
1770}
1771
1772func (x *AddCommentRequest) String() string {
1773	return protoimpl.X.MessageStringOf(x)
1774}
1775
1776func (*AddCommentRequest) ProtoMessage() {}
1777
1778func (x *AddCommentRequest) ProtoReflect() protoreflect.Message {
1779	mi := &file_ermite_merge_request_proto_msgTypes[13]
1780	if x != nil {
1781		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1782		if ms.LoadMessageInfo() == nil {
1783			ms.StoreMessageInfo(mi)
1784		}
1785		return ms
1786	}
1787	return mi.MessageOf(x)
1788}
1789
1790// Deprecated: Use AddCommentRequest.ProtoReflect.Descriptor instead.
1791func (*AddCommentRequest) Descriptor() ([]byte, []int) {
1792	return file_ermite_merge_request_proto_rawDescGZIP(), []int{13}
1793}
1794
1795func (x *AddCommentRequest) GetRepo() string {
1796	if x != nil {
1797		return x.Repo
1798	}
1799	return ""
1800}
1801
1802func (x *AddCommentRequest) GetNumber() int64 {
1803	if x != nil {
1804		return x.Number
1805	}
1806	return 0
1807}
1808
1809func (x *AddCommentRequest) GetPath() string {
1810	if x != nil {
1811		return x.Path
1812	}
1813	return ""
1814}
1815
1816func (x *AddCommentRequest) GetLine() int32 {
1817	if x != nil {
1818		return x.Line
1819	}
1820	return 0
1821}
1822
1823func (x *AddCommentRequest) GetSide() DiffSide {
1824	if x != nil {
1825		return x.Side
1826	}
1827	return DiffSide_DIFF_SIDE_UNSPECIFIED
1828}
1829
1830func (x *AddCommentRequest) GetText() string {
1831	if x != nil {
1832		return x.Text
1833	}
1834	return ""
1835}
1836
1837func (x *AddCommentRequest) GetReplyTo() string {
1838	if x != nil {
1839		return x.ReplyTo
1840	}
1841	return ""
1842}
1843
1844func (x *AddCommentRequest) GetStartLine() int32 {
1845	if x != nil {
1846		return x.StartLine
1847	}
1848	return 0
1849}
1850
1851func (x *AddCommentRequest) GetVerdict() Verdict {
1852	if x != nil {
1853		return x.Verdict
1854	}
1855	return Verdict_VERDICT_UNSPECIFIED
1856}
1857
1858// AddCommentResponse holds the new comment.
1859type AddCommentResponse struct {
1860	state protoimpl.MessageState `protogen:"open.v1"`
1861	// Comment is the created comment.
1862	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1863	unknownFields protoimpl.UnknownFields
1864	sizeCache     protoimpl.SizeCache
1865}
1866
1867func (x *AddCommentResponse) Reset() {
1868	*x = AddCommentResponse{}
1869	mi := &file_ermite_merge_request_proto_msgTypes[14]
1870	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1871	ms.StoreMessageInfo(mi)
1872}
1873
1874func (x *AddCommentResponse) String() string {
1875	return protoimpl.X.MessageStringOf(x)
1876}
1877
1878func (*AddCommentResponse) ProtoMessage() {}
1879
1880func (x *AddCommentResponse) ProtoReflect() protoreflect.Message {
1881	mi := &file_ermite_merge_request_proto_msgTypes[14]
1882	if x != nil {
1883		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1884		if ms.LoadMessageInfo() == nil {
1885			ms.StoreMessageInfo(mi)
1886		}
1887		return ms
1888	}
1889	return mi.MessageOf(x)
1890}
1891
1892// Deprecated: Use AddCommentResponse.ProtoReflect.Descriptor instead.
1893func (*AddCommentResponse) Descriptor() ([]byte, []int) {
1894	return file_ermite_merge_request_proto_rawDescGZIP(), []int{14}
1895}
1896
1897func (x *AddCommentResponse) GetComment() *Comment {
1898	if x != nil {
1899		return x.Comment
1900	}
1901	return nil
1902}
1903
1904// EditCommentRequest describes the new text of a comment.
1905type EditCommentRequest struct {
1906	state protoimpl.MessageState `protogen:"open.v1"`
1907	// Repo is the repository name.
1908	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1909	// Number is the merge request number.
1910	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1911	// CommentId is the Comment.id to edit.
1912	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
1913	// Text is the new Markdown source. Required, except for a comment that
1914	// carries a verdict.
1915	Text          string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"`
1916	unknownFields protoimpl.UnknownFields
1917	sizeCache     protoimpl.SizeCache
1918}
1919
1920func (x *EditCommentRequest) Reset() {
1921	*x = EditCommentRequest{}
1922	mi := &file_ermite_merge_request_proto_msgTypes[15]
1923	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1924	ms.StoreMessageInfo(mi)
1925}
1926
1927func (x *EditCommentRequest) String() string {
1928	return protoimpl.X.MessageStringOf(x)
1929}
1930
1931func (*EditCommentRequest) ProtoMessage() {}
1932
1933func (x *EditCommentRequest) ProtoReflect() protoreflect.Message {
1934	mi := &file_ermite_merge_request_proto_msgTypes[15]
1935	if x != nil {
1936		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1937		if ms.LoadMessageInfo() == nil {
1938			ms.StoreMessageInfo(mi)
1939		}
1940		return ms
1941	}
1942	return mi.MessageOf(x)
1943}
1944
1945// Deprecated: Use EditCommentRequest.ProtoReflect.Descriptor instead.
1946func (*EditCommentRequest) Descriptor() ([]byte, []int) {
1947	return file_ermite_merge_request_proto_rawDescGZIP(), []int{15}
1948}
1949
1950func (x *EditCommentRequest) GetRepo() string {
1951	if x != nil {
1952		return x.Repo
1953	}
1954	return ""
1955}
1956
1957func (x *EditCommentRequest) GetNumber() int64 {
1958	if x != nil {
1959		return x.Number
1960	}
1961	return 0
1962}
1963
1964func (x *EditCommentRequest) GetCommentId() string {
1965	if x != nil {
1966		return x.CommentId
1967	}
1968	return ""
1969}
1970
1971func (x *EditCommentRequest) GetText() string {
1972	if x != nil {
1973		return x.Text
1974	}
1975	return ""
1976}
1977
1978// EditCommentResponse holds the comment after the edit.
1979type EditCommentResponse struct {
1980	state protoimpl.MessageState `protogen:"open.v1"`
1981	// Comment is the updated comment.
1982	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
1983	unknownFields protoimpl.UnknownFields
1984	sizeCache     protoimpl.SizeCache
1985}
1986
1987func (x *EditCommentResponse) Reset() {
1988	*x = EditCommentResponse{}
1989	mi := &file_ermite_merge_request_proto_msgTypes[16]
1990	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1991	ms.StoreMessageInfo(mi)
1992}
1993
1994func (x *EditCommentResponse) String() string {
1995	return protoimpl.X.MessageStringOf(x)
1996}
1997
1998func (*EditCommentResponse) ProtoMessage() {}
1999
2000func (x *EditCommentResponse) ProtoReflect() protoreflect.Message {
2001	mi := &file_ermite_merge_request_proto_msgTypes[16]
2002	if x != nil {
2003		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2004		if ms.LoadMessageInfo() == nil {
2005			ms.StoreMessageInfo(mi)
2006		}
2007		return ms
2008	}
2009	return mi.MessageOf(x)
2010}
2011
2012// Deprecated: Use EditCommentResponse.ProtoReflect.Descriptor instead.
2013func (*EditCommentResponse) Descriptor() ([]byte, []int) {
2014	return file_ermite_merge_request_proto_rawDescGZIP(), []int{16}
2015}
2016
2017func (x *EditCommentResponse) GetComment() *Comment {
2018	if x != nil {
2019		return x.Comment
2020	}
2021	return nil
2022}
2023
2024// DeleteCommentRequest names the comment to delete.
2025type DeleteCommentRequest struct {
2026	state protoimpl.MessageState `protogen:"open.v1"`
2027	// Repo is the repository name.
2028	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2029	// Number is the merge request number.
2030	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2031	// CommentId is the Comment.id to delete.
2032	CommentId     string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
2033	unknownFields protoimpl.UnknownFields
2034	sizeCache     protoimpl.SizeCache
2035}
2036
2037func (x *DeleteCommentRequest) Reset() {
2038	*x = DeleteCommentRequest{}
2039	mi := &file_ermite_merge_request_proto_msgTypes[17]
2040	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2041	ms.StoreMessageInfo(mi)
2042}
2043
2044func (x *DeleteCommentRequest) String() string {
2045	return protoimpl.X.MessageStringOf(x)
2046}
2047
2048func (*DeleteCommentRequest) ProtoMessage() {}
2049
2050func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
2051	mi := &file_ermite_merge_request_proto_msgTypes[17]
2052	if x != nil {
2053		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2054		if ms.LoadMessageInfo() == nil {
2055			ms.StoreMessageInfo(mi)
2056		}
2057		return ms
2058	}
2059	return mi.MessageOf(x)
2060}
2061
2062// Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead.
2063func (*DeleteCommentRequest) Descriptor() ([]byte, []int) {
2064	return file_ermite_merge_request_proto_rawDescGZIP(), []int{17}
2065}
2066
2067func (x *DeleteCommentRequest) GetRepo() string {
2068	if x != nil {
2069		return x.Repo
2070	}
2071	return ""
2072}
2073
2074func (x *DeleteCommentRequest) GetNumber() int64 {
2075	if x != nil {
2076		return x.Number
2077	}
2078	return 0
2079}
2080
2081func (x *DeleteCommentRequest) GetCommentId() string {
2082	if x != nil {
2083		return x.CommentId
2084	}
2085	return ""
2086}
2087
2088// DeleteCommentResponse holds the comment after the deletion.
2089type DeleteCommentResponse struct {
2090	state protoimpl.MessageState `protogen:"open.v1"`
2091	// Comment is the deleted comment.
2092	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
2093	unknownFields protoimpl.UnknownFields
2094	sizeCache     protoimpl.SizeCache
2095}
2096
2097func (x *DeleteCommentResponse) Reset() {
2098	*x = DeleteCommentResponse{}
2099	mi := &file_ermite_merge_request_proto_msgTypes[18]
2100	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2101	ms.StoreMessageInfo(mi)
2102}
2103
2104func (x *DeleteCommentResponse) String() string {
2105	return protoimpl.X.MessageStringOf(x)
2106}
2107
2108func (*DeleteCommentResponse) ProtoMessage() {}
2109
2110func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
2111	mi := &file_ermite_merge_request_proto_msgTypes[18]
2112	if x != nil {
2113		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2114		if ms.LoadMessageInfo() == nil {
2115			ms.StoreMessageInfo(mi)
2116		}
2117		return ms
2118	}
2119	return mi.MessageOf(x)
2120}
2121
2122// Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead.
2123func (*DeleteCommentResponse) Descriptor() ([]byte, []int) {
2124	return file_ermite_merge_request_proto_rawDescGZIP(), []int{18}
2125}
2126
2127func (x *DeleteCommentResponse) GetComment() *Comment {
2128	if x != nil {
2129		return x.Comment
2130	}
2131	return nil
2132}
2133
2134// ResolveCommentRequest changes the resolved state of a comment.
2135type ResolveCommentRequest struct {
2136	state protoimpl.MessageState `protogen:"open.v1"`
2137	// Repo is the repository name.
2138	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2139	// Number is the merge request number.
2140	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2141	// CommentId is the Comment.id to change.
2142	CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"`
2143	// Resolved is the new state: true to resolve, false to unresolve.
2144	Resolved      bool `protobuf:"varint,4,opt,name=resolved,proto3" json:"resolved,omitempty"`
2145	unknownFields protoimpl.UnknownFields
2146	sizeCache     protoimpl.SizeCache
2147}
2148
2149func (x *ResolveCommentRequest) Reset() {
2150	*x = ResolveCommentRequest{}
2151	mi := &file_ermite_merge_request_proto_msgTypes[19]
2152	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2153	ms.StoreMessageInfo(mi)
2154}
2155
2156func (x *ResolveCommentRequest) String() string {
2157	return protoimpl.X.MessageStringOf(x)
2158}
2159
2160func (*ResolveCommentRequest) ProtoMessage() {}
2161
2162func (x *ResolveCommentRequest) ProtoReflect() protoreflect.Message {
2163	mi := &file_ermite_merge_request_proto_msgTypes[19]
2164	if x != nil {
2165		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2166		if ms.LoadMessageInfo() == nil {
2167			ms.StoreMessageInfo(mi)
2168		}
2169		return ms
2170	}
2171	return mi.MessageOf(x)
2172}
2173
2174// Deprecated: Use ResolveCommentRequest.ProtoReflect.Descriptor instead.
2175func (*ResolveCommentRequest) Descriptor() ([]byte, []int) {
2176	return file_ermite_merge_request_proto_rawDescGZIP(), []int{19}
2177}
2178
2179func (x *ResolveCommentRequest) GetRepo() string {
2180	if x != nil {
2181		return x.Repo
2182	}
2183	return ""
2184}
2185
2186func (x *ResolveCommentRequest) GetNumber() int64 {
2187	if x != nil {
2188		return x.Number
2189	}
2190	return 0
2191}
2192
2193func (x *ResolveCommentRequest) GetCommentId() string {
2194	if x != nil {
2195		return x.CommentId
2196	}
2197	return ""
2198}
2199
2200func (x *ResolveCommentRequest) GetResolved() bool {
2201	if x != nil {
2202		return x.Resolved
2203	}
2204	return false
2205}
2206
2207// ResolveCommentResponse holds the comment after the change.
2208type ResolveCommentResponse struct {
2209	state protoimpl.MessageState `protogen:"open.v1"`
2210	// Comment is the updated comment.
2211	Comment       *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
2212	unknownFields protoimpl.UnknownFields
2213	sizeCache     protoimpl.SizeCache
2214}
2215
2216func (x *ResolveCommentResponse) Reset() {
2217	*x = ResolveCommentResponse{}
2218	mi := &file_ermite_merge_request_proto_msgTypes[20]
2219	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2220	ms.StoreMessageInfo(mi)
2221}
2222
2223func (x *ResolveCommentResponse) String() string {
2224	return protoimpl.X.MessageStringOf(x)
2225}
2226
2227func (*ResolveCommentResponse) ProtoMessage() {}
2228
2229func (x *ResolveCommentResponse) ProtoReflect() protoreflect.Message {
2230	mi := &file_ermite_merge_request_proto_msgTypes[20]
2231	if x != nil {
2232		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2233		if ms.LoadMessageInfo() == nil {
2234			ms.StoreMessageInfo(mi)
2235		}
2236		return ms
2237	}
2238	return mi.MessageOf(x)
2239}
2240
2241// Deprecated: Use ResolveCommentResponse.ProtoReflect.Descriptor instead.
2242func (*ResolveCommentResponse) Descriptor() ([]byte, []int) {
2243	return file_ermite_merge_request_proto_rawDescGZIP(), []int{20}
2244}
2245
2246func (x *ResolveCommentResponse) GetComment() *Comment {
2247	if x != nil {
2248		return x.Comment
2249	}
2250	return nil
2251}
2252
2253// CloseMergeRequestRequest names the merge request to close.
2254type CloseMergeRequestRequest struct {
2255	state protoimpl.MessageState `protogen:"open.v1"`
2256	// Repo is the repository name.
2257	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2258	// Number is the merge request number.
2259	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2260	unknownFields protoimpl.UnknownFields
2261	sizeCache     protoimpl.SizeCache
2262}
2263
2264func (x *CloseMergeRequestRequest) Reset() {
2265	*x = CloseMergeRequestRequest{}
2266	mi := &file_ermite_merge_request_proto_msgTypes[21]
2267	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2268	ms.StoreMessageInfo(mi)
2269}
2270
2271func (x *CloseMergeRequestRequest) String() string {
2272	return protoimpl.X.MessageStringOf(x)
2273}
2274
2275func (*CloseMergeRequestRequest) ProtoMessage() {}
2276
2277func (x *CloseMergeRequestRequest) ProtoReflect() protoreflect.Message {
2278	mi := &file_ermite_merge_request_proto_msgTypes[21]
2279	if x != nil {
2280		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2281		if ms.LoadMessageInfo() == nil {
2282			ms.StoreMessageInfo(mi)
2283		}
2284		return ms
2285	}
2286	return mi.MessageOf(x)
2287}
2288
2289// Deprecated: Use CloseMergeRequestRequest.ProtoReflect.Descriptor instead.
2290func (*CloseMergeRequestRequest) Descriptor() ([]byte, []int) {
2291	return file_ermite_merge_request_proto_rawDescGZIP(), []int{21}
2292}
2293
2294func (x *CloseMergeRequestRequest) GetRepo() string {
2295	if x != nil {
2296		return x.Repo
2297	}
2298	return ""
2299}
2300
2301func (x *CloseMergeRequestRequest) GetNumber() int64 {
2302	if x != nil {
2303		return x.Number
2304	}
2305	return 0
2306}
2307
2308// CloseMergeRequestResponse holds the merge request after closing.
2309type CloseMergeRequestResponse struct {
2310	state protoimpl.MessageState `protogen:"open.v1"`
2311	// MergeRequest is the closed merge request.
2312	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2313	unknownFields protoimpl.UnknownFields
2314	sizeCache     protoimpl.SizeCache
2315}
2316
2317func (x *CloseMergeRequestResponse) Reset() {
2318	*x = CloseMergeRequestResponse{}
2319	mi := &file_ermite_merge_request_proto_msgTypes[22]
2320	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2321	ms.StoreMessageInfo(mi)
2322}
2323
2324func (x *CloseMergeRequestResponse) String() string {
2325	return protoimpl.X.MessageStringOf(x)
2326}
2327
2328func (*CloseMergeRequestResponse) ProtoMessage() {}
2329
2330func (x *CloseMergeRequestResponse) ProtoReflect() protoreflect.Message {
2331	mi := &file_ermite_merge_request_proto_msgTypes[22]
2332	if x != nil {
2333		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2334		if ms.LoadMessageInfo() == nil {
2335			ms.StoreMessageInfo(mi)
2336		}
2337		return ms
2338	}
2339	return mi.MessageOf(x)
2340}
2341
2342// Deprecated: Use CloseMergeRequestResponse.ProtoReflect.Descriptor instead.
2343func (*CloseMergeRequestResponse) Descriptor() ([]byte, []int) {
2344	return file_ermite_merge_request_proto_rawDescGZIP(), []int{22}
2345}
2346
2347func (x *CloseMergeRequestResponse) GetMergeRequest() *MergeRequest {
2348	if x != nil {
2349		return x.MergeRequest
2350	}
2351	return nil
2352}
2353
2354// MarkReadyRequest names the draft merge request to mark ready.
2355type MarkReadyRequest struct {
2356	state protoimpl.MessageState `protogen:"open.v1"`
2357	// Repo is the repository name.
2358	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2359	// Number is the merge request number.
2360	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2361	unknownFields protoimpl.UnknownFields
2362	sizeCache     protoimpl.SizeCache
2363}
2364
2365func (x *MarkReadyRequest) Reset() {
2366	*x = MarkReadyRequest{}
2367	mi := &file_ermite_merge_request_proto_msgTypes[23]
2368	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2369	ms.StoreMessageInfo(mi)
2370}
2371
2372func (x *MarkReadyRequest) String() string {
2373	return protoimpl.X.MessageStringOf(x)
2374}
2375
2376func (*MarkReadyRequest) ProtoMessage() {}
2377
2378func (x *MarkReadyRequest) ProtoReflect() protoreflect.Message {
2379	mi := &file_ermite_merge_request_proto_msgTypes[23]
2380	if x != nil {
2381		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2382		if ms.LoadMessageInfo() == nil {
2383			ms.StoreMessageInfo(mi)
2384		}
2385		return ms
2386	}
2387	return mi.MessageOf(x)
2388}
2389
2390// Deprecated: Use MarkReadyRequest.ProtoReflect.Descriptor instead.
2391func (*MarkReadyRequest) Descriptor() ([]byte, []int) {
2392	return file_ermite_merge_request_proto_rawDescGZIP(), []int{23}
2393}
2394
2395func (x *MarkReadyRequest) GetRepo() string {
2396	if x != nil {
2397		return x.Repo
2398	}
2399	return ""
2400}
2401
2402func (x *MarkReadyRequest) GetNumber() int64 {
2403	if x != nil {
2404		return x.Number
2405	}
2406	return 0
2407}
2408
2409// MarkReadyResponse holds the merge request after marking it ready.
2410type MarkReadyResponse struct {
2411	state protoimpl.MessageState `protogen:"open.v1"`
2412	// MergeRequest is the merge request with its title stripped of the draft
2413	// prefix.
2414	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2415	unknownFields protoimpl.UnknownFields
2416	sizeCache     protoimpl.SizeCache
2417}
2418
2419func (x *MarkReadyResponse) Reset() {
2420	*x = MarkReadyResponse{}
2421	mi := &file_ermite_merge_request_proto_msgTypes[24]
2422	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2423	ms.StoreMessageInfo(mi)
2424}
2425
2426func (x *MarkReadyResponse) String() string {
2427	return protoimpl.X.MessageStringOf(x)
2428}
2429
2430func (*MarkReadyResponse) ProtoMessage() {}
2431
2432func (x *MarkReadyResponse) ProtoReflect() protoreflect.Message {
2433	mi := &file_ermite_merge_request_proto_msgTypes[24]
2434	if x != nil {
2435		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2436		if ms.LoadMessageInfo() == nil {
2437			ms.StoreMessageInfo(mi)
2438		}
2439		return ms
2440	}
2441	return mi.MessageOf(x)
2442}
2443
2444// Deprecated: Use MarkReadyResponse.ProtoReflect.Descriptor instead.
2445func (*MarkReadyResponse) Descriptor() ([]byte, []int) {
2446	return file_ermite_merge_request_proto_rawDescGZIP(), []int{24}
2447}
2448
2449func (x *MarkReadyResponse) GetMergeRequest() *MergeRequest {
2450	if x != nil {
2451		return x.MergeRequest
2452	}
2453	return nil
2454}
2455
2456// MergeMergeRequestRequest describes the merge to perform.
2457type MergeMergeRequestRequest struct {
2458	state protoimpl.MessageState `protogen:"open.v1"`
2459	// Repo is the repository name.
2460	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2461	// Number is the merge request number.
2462	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2463	// Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
2464	// must be in RepoSettings.allowed_merge_modes of the repository.
2465	Mode MergeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
2466	// HeadId is the full id of the commit the caller reviewed, that is the
2467	// MergeRequest.head_id it was shown. Required. The merge happens only if the
2468	// source branch still points to it.
2469	HeadId string `protobuf:"bytes,4,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
2470	// DeleteSourceBranch deletes the source branch after the merge. The merge
2471	// is refused before anything changes when the source branch is the default
2472	// branch of the repository or the source or target of another open merge
2473	// request. Servers without the "merge_requests.delete_branch" feature ignore
2474	// it.
2475	DeleteSourceBranch bool `protobuf:"varint,5,opt,name=delete_source_branch,json=deleteSourceBranch,proto3" json:"delete_source_branch,omitempty"`
2476	// IgnoreChecks merges whatever the checks say. Needs the mr:force-merge
2477	// scope (permission_denied otherwise). Servers without the
2478	// "merge_requests.ignore_checks" feature ignore it: check the feature
2479	// before setting it.
2480	IgnoreChecks  bool `protobuf:"varint,6,opt,name=ignore_checks,json=ignoreChecks,proto3" json:"ignore_checks,omitempty"`
2481	unknownFields protoimpl.UnknownFields
2482	sizeCache     protoimpl.SizeCache
2483}
2484
2485func (x *MergeMergeRequestRequest) Reset() {
2486	*x = MergeMergeRequestRequest{}
2487	mi := &file_ermite_merge_request_proto_msgTypes[25]
2488	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2489	ms.StoreMessageInfo(mi)
2490}
2491
2492func (x *MergeMergeRequestRequest) String() string {
2493	return protoimpl.X.MessageStringOf(x)
2494}
2495
2496func (*MergeMergeRequestRequest) ProtoMessage() {}
2497
2498func (x *MergeMergeRequestRequest) ProtoReflect() protoreflect.Message {
2499	mi := &file_ermite_merge_request_proto_msgTypes[25]
2500	if x != nil {
2501		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2502		if ms.LoadMessageInfo() == nil {
2503			ms.StoreMessageInfo(mi)
2504		}
2505		return ms
2506	}
2507	return mi.MessageOf(x)
2508}
2509
2510// Deprecated: Use MergeMergeRequestRequest.ProtoReflect.Descriptor instead.
2511func (*MergeMergeRequestRequest) Descriptor() ([]byte, []int) {
2512	return file_ermite_merge_request_proto_rawDescGZIP(), []int{25}
2513}
2514
2515func (x *MergeMergeRequestRequest) GetRepo() string {
2516	if x != nil {
2517		return x.Repo
2518	}
2519	return ""
2520}
2521
2522func (x *MergeMergeRequestRequest) GetNumber() int64 {
2523	if x != nil {
2524		return x.Number
2525	}
2526	return 0
2527}
2528
2529func (x *MergeMergeRequestRequest) GetMode() MergeMode {
2530	if x != nil {
2531		return x.Mode
2532	}
2533	return MergeMode_MERGE_MODE_UNSPECIFIED
2534}
2535
2536func (x *MergeMergeRequestRequest) GetHeadId() string {
2537	if x != nil {
2538		return x.HeadId
2539	}
2540	return ""
2541}
2542
2543func (x *MergeMergeRequestRequest) GetDeleteSourceBranch() bool {
2544	if x != nil {
2545		return x.DeleteSourceBranch
2546	}
2547	return false
2548}
2549
2550func (x *MergeMergeRequestRequest) GetIgnoreChecks() bool {
2551	if x != nil {
2552		return x.IgnoreChecks
2553	}
2554	return false
2555}
2556
2557// MergeMergeRequestResponse holds the merged merge request.
2558type MergeMergeRequestResponse struct {
2559	state protoimpl.MessageState `protogen:"open.v1"`
2560	// MergeRequest is the merge request after the merge: state MERGED,
2561	// merged_commit_id set to the new tip of the target branch and merge_mode
2562	// set to the mode used.
2563	MergeRequest *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2564	// SourceBranchDeleted is true when delete_source_branch was set: the server
2565	// deletes the branch after answering. The deletion is skipped, and the
2566	// branch kept, if the branch moved or another open merge request uses it
2567	// by then; the merge stands either way. Watch reports the deletion with a
2568	// Pushed event for the source branch.
2569	SourceBranchDeleted bool `protobuf:"varint,2,opt,name=source_branch_deleted,json=sourceBranchDeleted,proto3" json:"source_branch_deleted,omitempty"`
2570	unknownFields       protoimpl.UnknownFields
2571	sizeCache           protoimpl.SizeCache
2572}
2573
2574func (x *MergeMergeRequestResponse) Reset() {
2575	*x = MergeMergeRequestResponse{}
2576	mi := &file_ermite_merge_request_proto_msgTypes[26]
2577	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2578	ms.StoreMessageInfo(mi)
2579}
2580
2581func (x *MergeMergeRequestResponse) String() string {
2582	return protoimpl.X.MessageStringOf(x)
2583}
2584
2585func (*MergeMergeRequestResponse) ProtoMessage() {}
2586
2587func (x *MergeMergeRequestResponse) ProtoReflect() protoreflect.Message {
2588	mi := &file_ermite_merge_request_proto_msgTypes[26]
2589	if x != nil {
2590		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2591		if ms.LoadMessageInfo() == nil {
2592			ms.StoreMessageInfo(mi)
2593		}
2594		return ms
2595	}
2596	return mi.MessageOf(x)
2597}
2598
2599// Deprecated: Use MergeMergeRequestResponse.ProtoReflect.Descriptor instead.
2600func (*MergeMergeRequestResponse) Descriptor() ([]byte, []int) {
2601	return file_ermite_merge_request_proto_rawDescGZIP(), []int{26}
2602}
2603
2604func (x *MergeMergeRequestResponse) GetMergeRequest() *MergeRequest {
2605	if x != nil {
2606		return x.MergeRequest
2607	}
2608	return nil
2609}
2610
2611func (x *MergeMergeRequestResponse) GetSourceBranchDeleted() bool {
2612	if x != nil {
2613		return x.SourceBranchDeleted
2614	}
2615	return false
2616}
2617
2618// EnableAutoMergeRequest describes the auto-merge to enable.
2619type EnableAutoMergeRequest struct {
2620	state protoimpl.MessageState `protogen:"open.v1"`
2621	// Repo is the repository name.
2622	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2623	// Number is the merge request number.
2624	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2625	// Mode is how to merge. MERGE_MODE_UNSPECIFIED means fast-forward. The mode
2626	// must be in RepoSettings.allowed_merge_modes of the repository.
2627	Mode MergeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=ermite.MergeMode" json:"mode,omitempty"`
2628	// HeadId is the full id of the commit the caller reviewed, that is the
2629	// MergeRequest.head_id it was shown. Required. The auto-merge is enabled
2630	// only if the source branch still points to it; failed_precondition (branch
2631	// moved) otherwise.
2632	HeadId        string `protobuf:"bytes,4,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
2633	unknownFields protoimpl.UnknownFields
2634	sizeCache     protoimpl.SizeCache
2635}
2636
2637func (x *EnableAutoMergeRequest) Reset() {
2638	*x = EnableAutoMergeRequest{}
2639	mi := &file_ermite_merge_request_proto_msgTypes[27]
2640	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2641	ms.StoreMessageInfo(mi)
2642}
2643
2644func (x *EnableAutoMergeRequest) String() string {
2645	return protoimpl.X.MessageStringOf(x)
2646}
2647
2648func (*EnableAutoMergeRequest) ProtoMessage() {}
2649
2650func (x *EnableAutoMergeRequest) ProtoReflect() protoreflect.Message {
2651	mi := &file_ermite_merge_request_proto_msgTypes[27]
2652	if x != nil {
2653		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2654		if ms.LoadMessageInfo() == nil {
2655			ms.StoreMessageInfo(mi)
2656		}
2657		return ms
2658	}
2659	return mi.MessageOf(x)
2660}
2661
2662// Deprecated: Use EnableAutoMergeRequest.ProtoReflect.Descriptor instead.
2663func (*EnableAutoMergeRequest) Descriptor() ([]byte, []int) {
2664	return file_ermite_merge_request_proto_rawDescGZIP(), []int{27}
2665}
2666
2667func (x *EnableAutoMergeRequest) GetRepo() string {
2668	if x != nil {
2669		return x.Repo
2670	}
2671	return ""
2672}
2673
2674func (x *EnableAutoMergeRequest) GetNumber() int64 {
2675	if x != nil {
2676		return x.Number
2677	}
2678	return 0
2679}
2680
2681func (x *EnableAutoMergeRequest) GetMode() MergeMode {
2682	if x != nil {
2683		return x.Mode
2684	}
2685	return MergeMode_MERGE_MODE_UNSPECIFIED
2686}
2687
2688func (x *EnableAutoMergeRequest) GetHeadId() string {
2689	if x != nil {
2690		return x.HeadId
2691	}
2692	return ""
2693}
2694
2695// EnableAutoMergeResponse holds the merge request with auto-merge enabled.
2696type EnableAutoMergeResponse struct {
2697	state protoimpl.MessageState `protogen:"open.v1"`
2698	// MergeRequest is the merge request, with auto_merge set.
2699	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2700	unknownFields protoimpl.UnknownFields
2701	sizeCache     protoimpl.SizeCache
2702}
2703
2704func (x *EnableAutoMergeResponse) Reset() {
2705	*x = EnableAutoMergeResponse{}
2706	mi := &file_ermite_merge_request_proto_msgTypes[28]
2707	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2708	ms.StoreMessageInfo(mi)
2709}
2710
2711func (x *EnableAutoMergeResponse) String() string {
2712	return protoimpl.X.MessageStringOf(x)
2713}
2714
2715func (*EnableAutoMergeResponse) ProtoMessage() {}
2716
2717func (x *EnableAutoMergeResponse) ProtoReflect() protoreflect.Message {
2718	mi := &file_ermite_merge_request_proto_msgTypes[28]
2719	if x != nil {
2720		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2721		if ms.LoadMessageInfo() == nil {
2722			ms.StoreMessageInfo(mi)
2723		}
2724		return ms
2725	}
2726	return mi.MessageOf(x)
2727}
2728
2729// Deprecated: Use EnableAutoMergeResponse.ProtoReflect.Descriptor instead.
2730func (*EnableAutoMergeResponse) Descriptor() ([]byte, []int) {
2731	return file_ermite_merge_request_proto_rawDescGZIP(), []int{28}
2732}
2733
2734func (x *EnableAutoMergeResponse) GetMergeRequest() *MergeRequest {
2735	if x != nil {
2736		return x.MergeRequest
2737	}
2738	return nil
2739}
2740
2741// CancelAutoMergeRequest names the merge request whose auto-merge to cancel.
2742type CancelAutoMergeRequest struct {
2743	state protoimpl.MessageState `protogen:"open.v1"`
2744	// Repo is the repository name.
2745	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2746	// Number is the merge request number.
2747	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2748	unknownFields protoimpl.UnknownFields
2749	sizeCache     protoimpl.SizeCache
2750}
2751
2752func (x *CancelAutoMergeRequest) Reset() {
2753	*x = CancelAutoMergeRequest{}
2754	mi := &file_ermite_merge_request_proto_msgTypes[29]
2755	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2756	ms.StoreMessageInfo(mi)
2757}
2758
2759func (x *CancelAutoMergeRequest) String() string {
2760	return protoimpl.X.MessageStringOf(x)
2761}
2762
2763func (*CancelAutoMergeRequest) ProtoMessage() {}
2764
2765func (x *CancelAutoMergeRequest) ProtoReflect() protoreflect.Message {
2766	mi := &file_ermite_merge_request_proto_msgTypes[29]
2767	if x != nil {
2768		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2769		if ms.LoadMessageInfo() == nil {
2770			ms.StoreMessageInfo(mi)
2771		}
2772		return ms
2773	}
2774	return mi.MessageOf(x)
2775}
2776
2777// Deprecated: Use CancelAutoMergeRequest.ProtoReflect.Descriptor instead.
2778func (*CancelAutoMergeRequest) Descriptor() ([]byte, []int) {
2779	return file_ermite_merge_request_proto_rawDescGZIP(), []int{29}
2780}
2781
2782func (x *CancelAutoMergeRequest) GetRepo() string {
2783	if x != nil {
2784		return x.Repo
2785	}
2786	return ""
2787}
2788
2789func (x *CancelAutoMergeRequest) GetNumber() int64 {
2790	if x != nil {
2791		return x.Number
2792	}
2793	return 0
2794}
2795
2796// CancelAutoMergeResponse holds the merge request after the cancellation.
2797type CancelAutoMergeResponse struct {
2798	state protoimpl.MessageState `protogen:"open.v1"`
2799	// MergeRequest is the merge request, with auto_merge unset.
2800	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
2801	unknownFields protoimpl.UnknownFields
2802	sizeCache     protoimpl.SizeCache
2803}
2804
2805func (x *CancelAutoMergeResponse) Reset() {
2806	*x = CancelAutoMergeResponse{}
2807	mi := &file_ermite_merge_request_proto_msgTypes[30]
2808	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2809	ms.StoreMessageInfo(mi)
2810}
2811
2812func (x *CancelAutoMergeResponse) String() string {
2813	return protoimpl.X.MessageStringOf(x)
2814}
2815
2816func (*CancelAutoMergeResponse) ProtoMessage() {}
2817
2818func (x *CancelAutoMergeResponse) ProtoReflect() protoreflect.Message {
2819	mi := &file_ermite_merge_request_proto_msgTypes[30]
2820	if x != nil {
2821		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2822		if ms.LoadMessageInfo() == nil {
2823			ms.StoreMessageInfo(mi)
2824		}
2825		return ms
2826	}
2827	return mi.MessageOf(x)
2828}
2829
2830// Deprecated: Use CancelAutoMergeResponse.ProtoReflect.Descriptor instead.
2831func (*CancelAutoMergeResponse) Descriptor() ([]byte, []int) {
2832	return file_ermite_merge_request_proto_rawDescGZIP(), []int{30}
2833}
2834
2835func (x *CancelAutoMergeResponse) GetMergeRequest() *MergeRequest {
2836	if x != nil {
2837		return x.MergeRequest
2838	}
2839	return nil
2840}
2841
2842// MarkReadRequest records a read position.
2843type MarkReadRequest struct {
2844	state protoimpl.MessageState `protogen:"open.v1"`
2845	// Repo is the repository name.
2846	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2847	// Number is the merge request number.
2848	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
2849	// HeadId is the full id of the commit the caller has reviewed, usually the
2850	// MergeRequest.head_id it was shown. Empty means the current head of the
2851	// source branch.
2852	HeadId        string `protobuf:"bytes,3,opt,name=head_id,json=headId,proto3" json:"head_id,omitempty"`
2853	unknownFields protoimpl.UnknownFields
2854	sizeCache     protoimpl.SizeCache
2855}
2856
2857func (x *MarkReadRequest) Reset() {
2858	*x = MarkReadRequest{}
2859	mi := &file_ermite_merge_request_proto_msgTypes[31]
2860	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2861	ms.StoreMessageInfo(mi)
2862}
2863
2864func (x *MarkReadRequest) String() string {
2865	return protoimpl.X.MessageStringOf(x)
2866}
2867
2868func (*MarkReadRequest) ProtoMessage() {}
2869
2870func (x *MarkReadRequest) ProtoReflect() protoreflect.Message {
2871	mi := &file_ermite_merge_request_proto_msgTypes[31]
2872	if x != nil {
2873		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2874		if ms.LoadMessageInfo() == nil {
2875			ms.StoreMessageInfo(mi)
2876		}
2877		return ms
2878	}
2879	return mi.MessageOf(x)
2880}
2881
2882// Deprecated: Use MarkReadRequest.ProtoReflect.Descriptor instead.
2883func (*MarkReadRequest) Descriptor() ([]byte, []int) {
2884	return file_ermite_merge_request_proto_rawDescGZIP(), []int{31}
2885}
2886
2887func (x *MarkReadRequest) GetRepo() string {
2888	if x != nil {
2889		return x.Repo
2890	}
2891	return ""
2892}
2893
2894func (x *MarkReadRequest) GetNumber() int64 {
2895	if x != nil {
2896		return x.Number
2897	}
2898	return 0
2899}
2900
2901func (x *MarkReadRequest) GetHeadId() string {
2902	if x != nil {
2903		return x.HeadId
2904	}
2905	return ""
2906}
2907
2908// MarkReadResponse is empty.
2909type MarkReadResponse struct {
2910	state         protoimpl.MessageState `protogen:"open.v1"`
2911	unknownFields protoimpl.UnknownFields
2912	sizeCache     protoimpl.SizeCache
2913}
2914
2915func (x *MarkReadResponse) Reset() {
2916	*x = MarkReadResponse{}
2917	mi := &file_ermite_merge_request_proto_msgTypes[32]
2918	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2919	ms.StoreMessageInfo(mi)
2920}
2921
2922func (x *MarkReadResponse) String() string {
2923	return protoimpl.X.MessageStringOf(x)
2924}
2925
2926func (*MarkReadResponse) ProtoMessage() {}
2927
2928func (x *MarkReadResponse) ProtoReflect() protoreflect.Message {
2929	mi := &file_ermite_merge_request_proto_msgTypes[32]
2930	if x != nil {
2931		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2932		if ms.LoadMessageInfo() == nil {
2933			ms.StoreMessageInfo(mi)
2934		}
2935		return ms
2936	}
2937	return mi.MessageOf(x)
2938}
2939
2940// Deprecated: Use MarkReadResponse.ProtoReflect.Descriptor instead.
2941func (*MarkReadResponse) Descriptor() ([]byte, []int) {
2942	return file_ermite_merge_request_proto_rawDescGZIP(), []int{32}
2943}
2944
2945var File_ermite_merge_request_proto protoreflect.FileDescriptor
2946
2947const file_ermite_merge_request_proto_rawDesc = "" +
2948	"\n" +
2949	"\x1aermite/merge_request.proto\x12\x06ermite\x1a\x10ermite/git.proto\x1a\x12ermite/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xce\x02\n" +
2950	"\fMergeability\x12/\n" +
2951	"\x05state\x18\x01 \x01(\x0e2\x19.ermite.MergeabilityStateR\x05state\x12\x1b\n" +
2952	"\ttarget_id\x18\x02 \x01(\tR\btargetId\x12\x17\n" +
2953	"\ahead_id\x18\x03 \x01(\tR\x06headId\x12\x16\n" +
2954	"\x06behind\x18\x04 \x01(\x05R\x06behind\x12#\n" +
2955	"\rbehind_capped\x18\x05 \x01(\bR\fbehindCapped\x12%\n" +
2956	"\x0econflict_paths\x18\x06 \x03(\tR\rconflictPaths\x128\n" +
2957	"\x18conflict_paths_truncated\x18\a \x01(\bR\x16conflictPathsTruncated\x129\n" +
2958	"\n" +
2959	"checked_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcheckedAt\"\xa5\x01\n" +
2960	"\tAutoMerge\x12%\n" +
2961	"\x04mode\x18\x01 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
2962	"\ahead_id\x18\x02 \x01(\tR\x06headId\x12\x1d\n" +
2963	"\n" +
2964	"enabled_by\x18\x03 \x01(\tR\tenabledBy\x129\n" +
2965	"\n" +
2966	"enabled_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tenabledAt\"\xfd\x04\n" +
2967	"\fMergeRequest\x12\x12\n" +
2968	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
2969	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +
2970	"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
2971	"\vdescription\x18\x04 \x01(\tR\vdescription\x12#\n" +
2972	"\rsource_branch\x18\x05 \x01(\tR\fsourceBranch\x12#\n" +
2973	"\rtarget_branch\x18\x06 \x01(\tR\ftargetBranch\x12/\n" +
2974	"\x05state\x18\a \x01(\x0e2\x19.ermite.MergeRequestStateR\x05state\x12\x16\n" +
2975	"\x06author\x18\b \x01(\tR\x06author\x129\n" +
2976	"\n" +
2977	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
2978	"\n" +
2979	"updated_at\x18\n" +
2980	" \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x17\n" +
2981	"\ahead_id\x18\v \x01(\tR\x06headId\x12(\n" +
2982	"\x10merged_commit_id\x18\f \x01(\tR\x0emergedCommitId\x120\n" +
2983	"\n" +
2984	"merge_mode\x18\r \x01(\x0e2\x11.ermite.MergeModeR\tmergeMode\x128\n" +
2985	"\fmergeability\x18\x0e \x01(\v2\x14.ermite.MergeabilityR\fmergeability\x120\n" +
2986	"\n" +
2987	"auto_merge\x18\x0f \x01(\v2\x11.ermite.AutoMergeR\tautoMerge\x12\x1f\n" +
2988	"\vauto_merged\x18\x10 \x01(\bR\n" +
2989	"autoMerged\"\xbf\x03\n" +
2990	"\aComment\x12\x0e\n" +
2991	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
2992	"\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +
2993	"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
2994	"\x04line\x18\x04 \x01(\x05R\x04line\x12$\n" +
2995	"\x04side\x18\x05 \x01(\x0e2\x10.ermite.DiffSideR\x04side\x12\x1b\n" +
2996	"\tcommit_id\x18\x06 \x01(\tR\bcommitId\x12\x12\n" +
2997	"\x04text\x18\a \x01(\tR\x04text\x12\x1a\n" +
2998	"\bresolved\x18\b \x01(\bR\bresolved\x129\n" +
2999	"\n" +
3000	"created_at\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x19\n" +
3001	"\breply_to\x18\n" +
3002	" \x01(\tR\areplyTo\x12\x1d\n" +
3003	"\n" +
3004	"start_line\x18\v \x01(\x05R\tstartLine\x12)\n" +
3005	"\averdict\x18\f \x01(\x0e2\x0f.ermite.VerdictR\averdict\x127\n" +
3006	"\tedited_at\x18\r \x01(\v2\x1a.google.protobuf.TimestampR\beditedAt\x12\x18\n" +
3007	"\adeleted\x18\x0e \x01(\bR\adeleted\"\xdf\x01\n" +
3008	"\rAuthorVerdict\x12\x16\n" +
3009	"\x06author\x18\x01 \x01(\tR\x06author\x12)\n" +
3010	"\averdict\x18\x02 \x01(\x0e2\x0f.ermite.VerdictR\averdict\x12\x1d\n" +
3011	"\n" +
3012	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x1b\n" +
3013	"\tcommit_id\x18\x04 \x01(\tR\bcommitId\x129\n" +
3014	"\n" +
3015	"created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x14\n" +
3016	"\x05stale\x18\x06 \x01(\bR\x05stale\"\xb1\x01\n" +
3017	"\x19CreateMergeRequestRequest\x12\x12\n" +
3018	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x14\n" +
3019	"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
3020	"\vdescription\x18\x03 \x01(\tR\vdescription\x12#\n" +
3021	"\rsource_branch\x18\x04 \x01(\tR\fsourceBranch\x12#\n" +
3022	"\rtarget_branch\x18\x05 \x01(\tR\ftargetBranch\"W\n" +
3023	"\x1aCreateMergeRequestResponse\x129\n" +
3024	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\x9b\x01\n" +
3025	"\x18ListMergeRequestsRequest\x12\x12\n" +
3026	"\x04repo\x18\x01 \x01(\tR\x04repo\x12/\n" +
3027	"\x05state\x18\x02 \x01(\x0e2\x19.ermite.MergeRequestStateR\x05state\x12\x1b\n" +
3028	"\tpage_size\x18\x03 \x01(\x05R\bpageSize\x12\x1d\n" +
3029	"\n" +
3030	"page_token\x18\x04 \x01(\tR\tpageToken\"\x80\x01\n" +
3031	"\x19ListMergeRequestsResponse\x12;\n" +
3032	"\x0emerge_requests\x18\x01 \x03(\v2\x14.ermite.MergeRequestR\rmergeRequests\x12&\n" +
3033	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\x8f\x01\n" +
3034	"\x11MergeRequestIssue\x12\x16\n" +
3035	"\x06number\x18\x01 \x01(\x03R\x06number\x12\x14\n" +
3036	"\x05title\x18\x02 \x01(\tR\x05title\x124\n" +
3037	"\x05state\x18\x03 \x01(\x0e2\x1e.ermite.MergeRequestIssueStateR\x05state\x12\x16\n" +
3038	"\x06closes\x18\x04 \x01(\bR\x06closes\"\x9c\x02\n" +
3039	"\n" +
3040	"IssueEvent\x12\x0e\n" +
3041	"\x02id\x18\x01 \x01(\tR\x02id\x12*\n" +
3042	"\x04kind\x18\x02 \x01(\x0e2\x16.ermite.IssueEventKindR\x04kind\x12\x14\n" +
3043	"\x05issue\x18\x03 \x01(\x03R\x05issue\x12#\n" +
3044	"\rmerge_request\x18\x04 \x01(\x03R\fmergeRequest\x12.\n" +
3045	"\x13merge_request_title\x18\x05 \x01(\tR\x11mergeRequestTitle\x12\x16\n" +
3046	"\x06closes\x18\x06 \x01(\bR\x06closes\x12\x14\n" +
3047	"\x05actor\x18\a \x01(\tR\x05actor\x129\n" +
3048	"\n" +
3049	"created_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"l\n" +
3050	"\x16GetMergeRequestRequest\x12\x12\n" +
3051	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3052	"\x06number\x18\x02 \x01(\x03R\x06number\x12&\n" +
3053	"\x0fsince_last_read\x18\x03 \x01(\bR\rsinceLastRead\"\xaa\x04\n" +
3054	"\x17GetMergeRequestResponse\x129\n" +
3055	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x12(\n" +
3056	"\acommits\x18\x02 \x03(\v2\x0e.ermite.CommitR\acommits\x12+\n" +
3057	"\x11commits_truncated\x18\x03 \x01(\bR\x10commitsTruncated\x12 \n" +
3058	"\fdiff_base_id\x18\x04 \x01(\tR\n" +
3059	"diffBaseId\x12'\n" +
3060	"\x05stats\x18\x05 \x01(\v2\x11.ermite.DiffStatsR\x05stats\x12 \n" +
3061	"\x04diff\x18\x06 \x01(\v2\f.ermite.DiffR\x04diff\x12+\n" +
3062	"\bcomments\x18\a \x03(\v2\x0f.ermite.CommentR\bcomments\x12 \n" +
3063	"\flast_read_id\x18\b \x01(\tR\n" +
3064	"lastReadId\x12$\n" +
3065	"\x0elast_read_lost\x18\t \x01(\bR\flastReadLost\x121\n" +
3066	"\bverdicts\x18\n" +
3067	" \x03(\v2\x15.ermite.AuthorVerdictR\bverdicts\x121\n" +
3068	"\x06issues\x18\v \x03(\v2\x19.ermite.MergeRequestIssueR\x06issues\x125\n" +
3069	"\fissue_events\x18\f \x03(\v2\x12.ermite.IssueEventR\vissueEvents\"\x86\x02\n" +
3070	"\x11AddCommentRequest\x12\x12\n" +
3071	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3072	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x12\n" +
3073	"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
3074	"\x04line\x18\x04 \x01(\x05R\x04line\x12$\n" +
3075	"\x04side\x18\x05 \x01(\x0e2\x10.ermite.DiffSideR\x04side\x12\x12\n" +
3076	"\x04text\x18\x06 \x01(\tR\x04text\x12\x19\n" +
3077	"\breply_to\x18\a \x01(\tR\areplyTo\x12\x1d\n" +
3078	"\n" +
3079	"start_line\x18\b \x01(\x05R\tstartLine\x12)\n" +
3080	"\averdict\x18\t \x01(\x0e2\x0f.ermite.VerdictR\averdict\"?\n" +
3081	"\x12AddCommentResponse\x12)\n" +
3082	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"s\n" +
3083	"\x12EditCommentRequest\x12\x12\n" +
3084	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3085	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
3086	"\n" +
3087	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x12\n" +
3088	"\x04text\x18\x04 \x01(\tR\x04text\"@\n" +
3089	"\x13EditCommentResponse\x12)\n" +
3090	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"a\n" +
3091	"\x14DeleteCommentRequest\x12\x12\n" +
3092	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3093	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
3094	"\n" +
3095	"comment_id\x18\x03 \x01(\tR\tcommentId\"B\n" +
3096	"\x15DeleteCommentResponse\x12)\n" +
3097	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"~\n" +
3098	"\x15ResolveCommentRequest\x12\x12\n" +
3099	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3100	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x1d\n" +
3101	"\n" +
3102	"comment_id\x18\x03 \x01(\tR\tcommentId\x12\x1a\n" +
3103	"\bresolved\x18\x04 \x01(\bR\bresolved\"C\n" +
3104	"\x16ResolveCommentResponse\x12)\n" +
3105	"\acomment\x18\x01 \x01(\v2\x0f.ermite.CommentR\acomment\"F\n" +
3106	"\x18CloseMergeRequestRequest\x12\x12\n" +
3107	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3108	"\x06number\x18\x02 \x01(\x03R\x06number\"V\n" +
3109	"\x19CloseMergeRequestResponse\x129\n" +
3110	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\">\n" +
3111	"\x10MarkReadyRequest\x12\x12\n" +
3112	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3113	"\x06number\x18\x02 \x01(\x03R\x06number\"N\n" +
3114	"\x11MarkReadyResponse\x129\n" +
3115	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\xdd\x01\n" +
3116	"\x18MergeMergeRequestRequest\x12\x12\n" +
3117	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3118	"\x06number\x18\x02 \x01(\x03R\x06number\x12%\n" +
3119	"\x04mode\x18\x03 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
3120	"\ahead_id\x18\x04 \x01(\tR\x06headId\x120\n" +
3121	"\x14delete_source_branch\x18\x05 \x01(\bR\x12deleteSourceBranch\x12#\n" +
3122	"\rignore_checks\x18\x06 \x01(\bR\fignoreChecks\"\x8a\x01\n" +
3123	"\x19MergeMergeRequestResponse\x129\n" +
3124	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\x122\n" +
3125	"\x15source_branch_deleted\x18\x02 \x01(\bR\x13sourceBranchDeleted\"\x84\x01\n" +
3126	"\x16EnableAutoMergeRequest\x12\x12\n" +
3127	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3128	"\x06number\x18\x02 \x01(\x03R\x06number\x12%\n" +
3129	"\x04mode\x18\x03 \x01(\x0e2\x11.ermite.MergeModeR\x04mode\x12\x17\n" +
3130	"\ahead_id\x18\x04 \x01(\tR\x06headId\"T\n" +
3131	"\x17EnableAutoMergeResponse\x129\n" +
3132	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"D\n" +
3133	"\x16CancelAutoMergeRequest\x12\x12\n" +
3134	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3135	"\x06number\x18\x02 \x01(\x03R\x06number\"T\n" +
3136	"\x17CancelAutoMergeResponse\x129\n" +
3137	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"V\n" +
3138	"\x0fMarkReadRequest\x12\x12\n" +
3139	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
3140	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x17\n" +
3141	"\ahead_id\x18\x03 \x01(\tR\x06headId\"\x12\n" +
3142	"\x10MarkReadResponse*\x96\x01\n" +
3143	"\x11MergeRequestState\x12#\n" +
3144	"\x1fMERGE_REQUEST_STATE_UNSPECIFIED\x10\x00\x12\x1c\n" +
3145	"\x18MERGE_REQUEST_STATE_OPEN\x10\x01\x12\x1e\n" +
3146	"\x1aMERGE_REQUEST_STATE_MERGED\x10\x02\x12\x1e\n" +
3147	"\x1aMERGE_REQUEST_STATE_CLOSED\x10\x03*K\n" +
3148	"\bDiffSide\x12\x19\n" +
3149	"\x15DIFF_SIDE_UNSPECIFIED\x10\x00\x12\x11\n" +
3150	"\rDIFF_SIDE_OLD\x10\x01\x12\x11\n" +
3151	"\rDIFF_SIDE_NEW\x10\x02*V\n" +
3152	"\aVerdict\x12\x17\n" +
3153	"\x13VERDICT_UNSPECIFIED\x10\x00\x12\x13\n" +
3154	"\x0fVERDICT_APPROVE\x10\x01\x12\x1d\n" +
3155	"\x19VERDICT_CHANGES_REQUESTED\x10\x02*\xbb\x01\n" +
3156	"\x11MergeabilityState\x12\"\n" +
3157	"\x1eMERGEABILITY_STATE_UNSPECIFIED\x10\x00\x12\x1f\n" +
3158	"\x1bMERGEABILITY_STATE_CHECKING\x10\x01\x12!\n" +
3159	"\x1dMERGEABILITY_STATE_UP_TO_DATE\x10\x02\x12\x1d\n" +
3160	"\x19MERGEABILITY_STATE_BEHIND\x10\x03\x12\x1f\n" +
3161	"\x1bMERGEABILITY_STATE_CONFLICT\x10\x04*\xb5\x01\n" +
3162	"\x16MergeRequestIssueState\x12)\n" +
3163	"%MERGE_REQUEST_ISSUE_STATE_UNSPECIFIED\x10\x00\x12\"\n" +
3164	"\x1eMERGE_REQUEST_ISSUE_STATE_OPEN\x10\x01\x12$\n" +
3165	" MERGE_REQUEST_ISSUE_STATE_CLOSED\x10\x02\x12&\n" +
3166	"\"MERGE_REQUEST_ISSUE_STATE_RESOLVED\x10\x04*\xae\x01\n" +
3167	"\x0eIssueEventKind\x12 \n" +
3168	"\x1cISSUE_EVENT_KIND_UNSPECIFIED\x10\x00\x12\x1f\n" +
3169	"\x1bISSUE_EVENT_KIND_REFERENCED\x10\x01\x12\x1b\n" +
3170	"\x17ISSUE_EVENT_KIND_CLOSED\x10\x02\x12\x1d\n" +
3171	"\x19ISSUE_EVENT_KIND_REOPENED\x10\x03\x12\x1d\n" +
3172	"\x19ISSUE_EVENT_KIND_RESOLVED\x10\x042\xa9\b\n" +
3173	"\x13MergeRequestService\x12[\n" +
3174	"\x12CreateMergeRequest\x12!.ermite.CreateMergeRequestRequest\x1a\".ermite.CreateMergeRequestResponse\x12X\n" +
3175	"\x11ListMergeRequests\x12 .ermite.ListMergeRequestsRequest\x1a!.ermite.ListMergeRequestsResponse\x12R\n" +
3176	"\x0fGetMergeRequest\x12\x1e.ermite.GetMergeRequestRequest\x1a\x1f.ermite.GetMergeRequestResponse\x12C\n" +
3177	"\n" +
3178	"AddComment\x12\x19.ermite.AddCommentRequest\x1a\x1a.ermite.AddCommentResponse\x12F\n" +
3179	"\vEditComment\x12\x1a.ermite.EditCommentRequest\x1a\x1b.ermite.EditCommentResponse\x12L\n" +
3180	"\rDeleteComment\x12\x1c.ermite.DeleteCommentRequest\x1a\x1d.ermite.DeleteCommentResponse\x12O\n" +
3181	"\x0eResolveComment\x12\x1d.ermite.ResolveCommentRequest\x1a\x1e.ermite.ResolveCommentResponse\x12X\n" +
3182	"\x11CloseMergeRequest\x12 .ermite.CloseMergeRequestRequest\x1a!.ermite.CloseMergeRequestResponse\x12@\n" +
3183	"\tMarkReady\x12\x18.ermite.MarkReadyRequest\x1a\x19.ermite.MarkReadyResponse\x12X\n" +
3184	"\x11MergeMergeRequest\x12 .ermite.MergeMergeRequestRequest\x1a!.ermite.MergeMergeRequestResponse\x12R\n" +
3185	"\x0fEnableAutoMerge\x12\x1e.ermite.EnableAutoMergeRequest\x1a\x1f.ermite.EnableAutoMergeResponse\x12R\n" +
3186	"\x0fCancelAutoMerge\x12\x1e.ermite.CancelAutoMergeRequest\x1a\x1f.ermite.CancelAutoMergeResponse\x12=\n" +
3187	"\bMarkRead\x12\x17.ermite.MarkReadRequest\x1a\x18.ermite.MarkReadResponseBx\n" +
3188	"\n" +
3189	"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"
3190
3191var (
3192	file_ermite_merge_request_proto_rawDescOnce sync.Once
3193	file_ermite_merge_request_proto_rawDescData []byte
3194)
3195
3196func file_ermite_merge_request_proto_rawDescGZIP() []byte {
3197	file_ermite_merge_request_proto_rawDescOnce.Do(func() {
3198		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)))
3199	})
3200	return file_ermite_merge_request_proto_rawDescData
3201}
3202
3203var file_ermite_merge_request_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
3204var file_ermite_merge_request_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
3205var file_ermite_merge_request_proto_goTypes = []any{
3206	(MergeRequestState)(0),             // 0: ermite.MergeRequestState
3207	(DiffSide)(0),                      // 1: ermite.DiffSide
3208	(Verdict)(0),                       // 2: ermite.Verdict
3209	(MergeabilityState)(0),             // 3: ermite.MergeabilityState
3210	(MergeRequestIssueState)(0),        // 4: ermite.MergeRequestIssueState
3211	(IssueEventKind)(0),                // 5: ermite.IssueEventKind
3212	(*Mergeability)(nil),               // 6: ermite.Mergeability
3213	(*AutoMerge)(nil),                  // 7: ermite.AutoMerge
3214	(*MergeRequest)(nil),               // 8: ermite.MergeRequest
3215	(*Comment)(nil),                    // 9: ermite.Comment
3216	(*AuthorVerdict)(nil),              // 10: ermite.AuthorVerdict
3217	(*CreateMergeRequestRequest)(nil),  // 11: ermite.CreateMergeRequestRequest
3218	(*CreateMergeRequestResponse)(nil), // 12: ermite.CreateMergeRequestResponse
3219	(*ListMergeRequestsRequest)(nil),   // 13: ermite.ListMergeRequestsRequest
3220	(*ListMergeRequestsResponse)(nil),  // 14: ermite.ListMergeRequestsResponse
3221	(*MergeRequestIssue)(nil),          // 15: ermite.MergeRequestIssue
3222	(*IssueEvent)(nil),                 // 16: ermite.IssueEvent
3223	(*GetMergeRequestRequest)(nil),     // 17: ermite.GetMergeRequestRequest
3224	(*GetMergeRequestResponse)(nil),    // 18: ermite.GetMergeRequestResponse
3225	(*AddCommentRequest)(nil),          // 19: ermite.AddCommentRequest
3226	(*AddCommentResponse)(nil),         // 20: ermite.AddCommentResponse
3227	(*EditCommentRequest)(nil),         // 21: ermite.EditCommentRequest
3228	(*EditCommentResponse)(nil),        // 22: ermite.EditCommentResponse
3229	(*DeleteCommentRequest)(nil),       // 23: ermite.DeleteCommentRequest
3230	(*DeleteCommentResponse)(nil),      // 24: ermite.DeleteCommentResponse
3231	(*ResolveCommentRequest)(nil),      // 25: ermite.ResolveCommentRequest
3232	(*ResolveCommentResponse)(nil),     // 26: ermite.ResolveCommentResponse
3233	(*CloseMergeRequestRequest)(nil),   // 27: ermite.CloseMergeRequestRequest
3234	(*CloseMergeRequestResponse)(nil),  // 28: ermite.CloseMergeRequestResponse
3235	(*MarkReadyRequest)(nil),           // 29: ermite.MarkReadyRequest
3236	(*MarkReadyResponse)(nil),          // 30: ermite.MarkReadyResponse
3237	(*MergeMergeRequestRequest)(nil),   // 31: ermite.MergeMergeRequestRequest
3238	(*MergeMergeRequestResponse)(nil),  // 32: ermite.MergeMergeRequestResponse
3239	(*EnableAutoMergeRequest)(nil),     // 33: ermite.EnableAutoMergeRequest
3240	(*EnableAutoMergeResponse)(nil),    // 34: ermite.EnableAutoMergeResponse
3241	(*CancelAutoMergeRequest)(nil),     // 35: ermite.CancelAutoMergeRequest
3242	(*CancelAutoMergeResponse)(nil),    // 36: ermite.CancelAutoMergeResponse
3243	(*MarkReadRequest)(nil),            // 37: ermite.MarkReadRequest
3244	(*MarkReadResponse)(nil),           // 38: ermite.MarkReadResponse
3245	(*timestamppb.Timestamp)(nil),      // 39: google.protobuf.Timestamp
3246	(MergeMode)(0),                     // 40: ermite.MergeMode
3247	(*Commit)(nil),                     // 41: ermite.Commit
3248	(*DiffStats)(nil),                  // 42: ermite.DiffStats
3249	(*Diff)(nil),                       // 43: ermite.Diff
3250}
3251var file_ermite_merge_request_proto_depIdxs = []int32{
3252	3,  // 0: ermite.Mergeability.state:type_name -> ermite.MergeabilityState
3253	39, // 1: ermite.Mergeability.checked_at:type_name -> google.protobuf.Timestamp
3254	40, // 2: ermite.AutoMerge.mode:type_name -> ermite.MergeMode
3255	39, // 3: ermite.AutoMerge.enabled_at:type_name -> google.protobuf.Timestamp
3256	0,  // 4: ermite.MergeRequest.state:type_name -> ermite.MergeRequestState
3257	39, // 5: ermite.MergeRequest.created_at:type_name -> google.protobuf.Timestamp
3258	39, // 6: ermite.MergeRequest.updated_at:type_name -> google.protobuf.Timestamp
3259	40, // 7: ermite.MergeRequest.merge_mode:type_name -> ermite.MergeMode
3260	6,  // 8: ermite.MergeRequest.mergeability:type_name -> ermite.Mergeability
3261	7,  // 9: ermite.MergeRequest.auto_merge:type_name -> ermite.AutoMerge
3262	1,  // 10: ermite.Comment.side:type_name -> ermite.DiffSide
3263	39, // 11: ermite.Comment.created_at:type_name -> google.protobuf.Timestamp
3264	2,  // 12: ermite.Comment.verdict:type_name -> ermite.Verdict
3265	39, // 13: ermite.Comment.edited_at:type_name -> google.protobuf.Timestamp
3266	2,  // 14: ermite.AuthorVerdict.verdict:type_name -> ermite.Verdict
3267	39, // 15: ermite.AuthorVerdict.created_at:type_name -> google.protobuf.Timestamp
3268	8,  // 16: ermite.CreateMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
3269	0,  // 17: ermite.ListMergeRequestsRequest.state:type_name -> ermite.MergeRequestState
3270	8,  // 18: ermite.ListMergeRequestsResponse.merge_requests:type_name -> ermite.MergeRequest
3271	4,  // 19: ermite.MergeRequestIssue.state:type_name -> ermite.MergeRequestIssueState
3272	5,  // 20: ermite.IssueEvent.kind:type_name -> ermite.IssueEventKind
3273	39, // 21: ermite.IssueEvent.created_at:type_name -> google.protobuf.Timestamp
3274	8,  // 22: ermite.GetMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
3275	41, // 23: ermite.GetMergeRequestResponse.commits:type_name -> ermite.Commit
3276	42, // 24: ermite.GetMergeRequestResponse.stats:type_name -> ermite.DiffStats
3277	43, // 25: ermite.GetMergeRequestResponse.diff:type_name -> ermite.Diff
3278	9,  // 26: ermite.GetMergeRequestResponse.comments:type_name -> ermite.Comment
3279	10, // 27: ermite.GetMergeRequestResponse.verdicts:type_name -> ermite.AuthorVerdict
3280	15, // 28: ermite.GetMergeRequestResponse.issues:type_name -> ermite.MergeRequestIssue
3281	16, // 29: ermite.GetMergeRequestResponse.issue_events:type_name -> ermite.IssueEvent
3282	1,  // 30: ermite.AddCommentRequest.side:type_name -> ermite.DiffSide
3283	2,  // 31: ermite.AddCommentRequest.verdict:type_name -> ermite.Verdict
3284	9,  // 32: ermite.AddCommentResponse.comment:type_name -> ermite.Comment
3285	9,  // 33: ermite.EditCommentResponse.comment:type_name -> ermite.Comment
3286	9,  // 34: ermite.DeleteCommentResponse.comment:type_name -> ermite.Comment
3287	9,  // 35: ermite.ResolveCommentResponse.comment:type_name -> ermite.Comment
3288	8,  // 36: ermite.CloseMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
3289	8,  // 37: ermite.MarkReadyResponse.merge_request:type_name -> ermite.MergeRequest
3290	40, // 38: ermite.MergeMergeRequestRequest.mode:type_name -> ermite.MergeMode
3291	8,  // 39: ermite.MergeMergeRequestResponse.merge_request:type_name -> ermite.MergeRequest
3292	40, // 40: ermite.EnableAutoMergeRequest.mode:type_name -> ermite.MergeMode
3293	8,  // 41: ermite.EnableAutoMergeResponse.merge_request:type_name -> ermite.MergeRequest
3294	8,  // 42: ermite.CancelAutoMergeResponse.merge_request:type_name -> ermite.MergeRequest
3295	11, // 43: ermite.MergeRequestService.CreateMergeRequest:input_type -> ermite.CreateMergeRequestRequest
3296	13, // 44: ermite.MergeRequestService.ListMergeRequests:input_type -> ermite.ListMergeRequestsRequest
3297	17, // 45: ermite.MergeRequestService.GetMergeRequest:input_type -> ermite.GetMergeRequestRequest
3298	19, // 46: ermite.MergeRequestService.AddComment:input_type -> ermite.AddCommentRequest
3299	21, // 47: ermite.MergeRequestService.EditComment:input_type -> ermite.EditCommentRequest
3300	23, // 48: ermite.MergeRequestService.DeleteComment:input_type -> ermite.DeleteCommentRequest
3301	25, // 49: ermite.MergeRequestService.ResolveComment:input_type -> ermite.ResolveCommentRequest
3302	27, // 50: ermite.MergeRequestService.CloseMergeRequest:input_type -> ermite.CloseMergeRequestRequest
3303	29, // 51: ermite.MergeRequestService.MarkReady:input_type -> ermite.MarkReadyRequest
3304	31, // 52: ermite.MergeRequestService.MergeMergeRequest:input_type -> ermite.MergeMergeRequestRequest
3305	33, // 53: ermite.MergeRequestService.EnableAutoMerge:input_type -> ermite.EnableAutoMergeRequest
3306	35, // 54: ermite.MergeRequestService.CancelAutoMerge:input_type -> ermite.CancelAutoMergeRequest
3307	37, // 55: ermite.MergeRequestService.MarkRead:input_type -> ermite.MarkReadRequest
3308	12, // 56: ermite.MergeRequestService.CreateMergeRequest:output_type -> ermite.CreateMergeRequestResponse
3309	14, // 57: ermite.MergeRequestService.ListMergeRequests:output_type -> ermite.ListMergeRequestsResponse
3310	18, // 58: ermite.MergeRequestService.GetMergeRequest:output_type -> ermite.GetMergeRequestResponse
3311	20, // 59: ermite.MergeRequestService.AddComment:output_type -> ermite.AddCommentResponse
3312	22, // 60: ermite.MergeRequestService.EditComment:output_type -> ermite.EditCommentResponse
3313	24, // 61: ermite.MergeRequestService.DeleteComment:output_type -> ermite.DeleteCommentResponse
3314	26, // 62: ermite.MergeRequestService.ResolveComment:output_type -> ermite.ResolveCommentResponse
3315	28, // 63: ermite.MergeRequestService.CloseMergeRequest:output_type -> ermite.CloseMergeRequestResponse
3316	30, // 64: ermite.MergeRequestService.MarkReady:output_type -> ermite.MarkReadyResponse
3317	32, // 65: ermite.MergeRequestService.MergeMergeRequest:output_type -> ermite.MergeMergeRequestResponse
3318	34, // 66: ermite.MergeRequestService.EnableAutoMerge:output_type -> ermite.EnableAutoMergeResponse
3319	36, // 67: ermite.MergeRequestService.CancelAutoMerge:output_type -> ermite.CancelAutoMergeResponse
3320	38, // 68: ermite.MergeRequestService.MarkRead:output_type -> ermite.MarkReadResponse
3321	56, // [56:69] is the sub-list for method output_type
3322	43, // [43:56] is the sub-list for method input_type
3323	43, // [43:43] is the sub-list for extension type_name
3324	43, // [43:43] is the sub-list for extension extendee
3325	0,  // [0:43] is the sub-list for field type_name
3326}
3327
3328func init() { file_ermite_merge_request_proto_init() }
3329func file_ermite_merge_request_proto_init() {
3330	if File_ermite_merge_request_proto != nil {
3331		return
3332	}
3333	file_ermite_git_proto_init()
3334	file_ermite_types_proto_init()
3335	type x struct{}
3336	out := protoimpl.TypeBuilder{
3337		File: protoimpl.DescBuilder{
3338			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
3339			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_merge_request_proto_rawDesc), len(file_ermite_merge_request_proto_rawDesc)),
3340			NumEnums:      6,
3341			NumMessages:   33,
3342			NumExtensions: 0,
3343			NumServices:   1,
3344		},
3345		GoTypes:           file_ermite_merge_request_proto_goTypes,
3346		DependencyIndexes: file_ermite_merge_request_proto_depIdxs,
3347		EnumInfos:         file_ermite_merge_request_proto_enumTypes,
3348		MessageInfos:      file_ermite_merge_request_proto_msgTypes,
3349	}.Build()
3350	File_ermite_merge_request_proto = out.File
3351	file_ermite_merge_request_proto_goTypes = nil
3352	file_ermite_merge_request_proto_depIdxs = nil
3353}

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