v0.11.0 94ffd87

issue.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/issue.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// IssueState is where an issue is in its life.
28type IssueState int32
29
30const (
31	// Not set. In ListIssuesRequest.state it means every state. Never returned
32	// by the server.
33	IssueState_ISSUE_STATE_UNSPECIFIED IssueState = 0
34	// The issue is open.
35	IssueState_ISSUE_STATE_OPEN IssueState = 1
36	// The issue is closed.
37	IssueState_ISSUE_STATE_CLOSED IssueState = 2
38	// Reserved for later use: awaiting moderation, owner-only.
39	IssueState_ISSUE_STATE_PENDING IssueState = 3
40)
41
42// Enum value maps for IssueState.
43var (
44	IssueState_name = map[int32]string{
45		0: "ISSUE_STATE_UNSPECIFIED",
46		1: "ISSUE_STATE_OPEN",
47		2: "ISSUE_STATE_CLOSED",
48		3: "ISSUE_STATE_PENDING",
49	}
50	IssueState_value = map[string]int32{
51		"ISSUE_STATE_UNSPECIFIED": 0,
52		"ISSUE_STATE_OPEN":        1,
53		"ISSUE_STATE_CLOSED":      2,
54		"ISSUE_STATE_PENDING":     3,
55	}
56)
57
58func (x IssueState) Enum() *IssueState {
59	p := new(IssueState)
60	*p = x
61	return p
62}
63
64func (x IssueState) String() string {
65	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
66}
67
68func (IssueState) Descriptor() protoreflect.EnumDescriptor {
69	return file_ermite_issue_proto_enumTypes[0].Descriptor()
70}
71
72func (IssueState) Type() protoreflect.EnumType {
73	return &file_ermite_issue_proto_enumTypes[0]
74}
75
76func (x IssueState) Number() protoreflect.EnumNumber {
77	return protoreflect.EnumNumber(x)
78}
79
80// Deprecated: Use IssueState.Descriptor instead.
81func (IssueState) EnumDescriptor() ([]byte, []int) {
82	return file_ermite_issue_proto_rawDescGZIP(), []int{0}
83}
84
85// Issue is a discussion in a repository.
86type Issue struct {
87	state protoimpl.MessageState `protogen:"open.v1"`
88	// Repo is the name of the repository.
89	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
90	// Number identifies the issue within its repository.
91	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
92	// Title is the one-line title.
93	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
94	// Body is the content of the issue. It may be empty.
95	Body string `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"`
96	// State is where the issue is in its life.
97	State IssueState `protobuf:"varint,5,opt,name=state,proto3,enum=ermite.IssueState" json:"state,omitempty"`
98	// Author names who created the issue: the label of the token or session
99	// that was used ("root" for the root token, "owner" for a web session), or,
100	// for an issue approved from the public form, the unverified display name
101	// the visitor typed (or "anonymous"). It is informational and never proves
102	// identity: labels are not unique, the token may be gone, and a visitor can
103	// type "owner".
104	Author string `protobuf:"bytes,6,opt,name=author,proto3" json:"author,omitempty"`
105	// CreatedAt is when the issue was created.
106	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
107	// UpdatedAt is when the issue last changed.
108	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
109	// CommentCount is the number of comments on the issue.
110	CommentCount  int32 `protobuf:"varint,9,opt,name=comment_count,json=commentCount,proto3" json:"comment_count,omitempty"`
111	unknownFields protoimpl.UnknownFields
112	sizeCache     protoimpl.SizeCache
113}
114
115func (x *Issue) Reset() {
116	*x = Issue{}
117	mi := &file_ermite_issue_proto_msgTypes[0]
118	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
119	ms.StoreMessageInfo(mi)
120}
121
122func (x *Issue) String() string {
123	return protoimpl.X.MessageStringOf(x)
124}
125
126func (*Issue) ProtoMessage() {}
127
128func (x *Issue) ProtoReflect() protoreflect.Message {
129	mi := &file_ermite_issue_proto_msgTypes[0]
130	if x != nil {
131		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
132		if ms.LoadMessageInfo() == nil {
133			ms.StoreMessageInfo(mi)
134		}
135		return ms
136	}
137	return mi.MessageOf(x)
138}
139
140// Deprecated: Use Issue.ProtoReflect.Descriptor instead.
141func (*Issue) Descriptor() ([]byte, []int) {
142	return file_ermite_issue_proto_rawDescGZIP(), []int{0}
143}
144
145func (x *Issue) GetRepo() string {
146	if x != nil {
147		return x.Repo
148	}
149	return ""
150}
151
152func (x *Issue) GetNumber() int64 {
153	if x != nil {
154		return x.Number
155	}
156	return 0
157}
158
159func (x *Issue) GetTitle() string {
160	if x != nil {
161		return x.Title
162	}
163	return ""
164}
165
166func (x *Issue) GetBody() string {
167	if x != nil {
168		return x.Body
169	}
170	return ""
171}
172
173func (x *Issue) GetState() IssueState {
174	if x != nil {
175		return x.State
176	}
177	return IssueState_ISSUE_STATE_UNSPECIFIED
178}
179
180func (x *Issue) GetAuthor() string {
181	if x != nil {
182		return x.Author
183	}
184	return ""
185}
186
187func (x *Issue) GetCreatedAt() *timestamppb.Timestamp {
188	if x != nil {
189		return x.CreatedAt
190	}
191	return nil
192}
193
194func (x *Issue) GetUpdatedAt() *timestamppb.Timestamp {
195	if x != nil {
196		return x.UpdatedAt
197	}
198	return nil
199}
200
201func (x *Issue) GetCommentCount() int32 {
202	if x != nil {
203		return x.CommentCount
204	}
205	return 0
206}
207
208// IssueComment is a note on an issue.
209type IssueComment struct {
210	state protoimpl.MessageState `protogen:"open.v1"`
211	// Id identifies the comment within its issue. Opaque.
212	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
213	// Author names who wrote the comment, like Issue.author.
214	Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
215	// Text is the content of the comment.
216	Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
217	// CreatedAt is when the comment was written.
218	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
219	unknownFields protoimpl.UnknownFields
220	sizeCache     protoimpl.SizeCache
221}
222
223func (x *IssueComment) Reset() {
224	*x = IssueComment{}
225	mi := &file_ermite_issue_proto_msgTypes[1]
226	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
227	ms.StoreMessageInfo(mi)
228}
229
230func (x *IssueComment) String() string {
231	return protoimpl.X.MessageStringOf(x)
232}
233
234func (*IssueComment) ProtoMessage() {}
235
236func (x *IssueComment) ProtoReflect() protoreflect.Message {
237	mi := &file_ermite_issue_proto_msgTypes[1]
238	if x != nil {
239		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
240		if ms.LoadMessageInfo() == nil {
241			ms.StoreMessageInfo(mi)
242		}
243		return ms
244	}
245	return mi.MessageOf(x)
246}
247
248// Deprecated: Use IssueComment.ProtoReflect.Descriptor instead.
249func (*IssueComment) Descriptor() ([]byte, []int) {
250	return file_ermite_issue_proto_rawDescGZIP(), []int{1}
251}
252
253func (x *IssueComment) GetId() string {
254	if x != nil {
255		return x.Id
256	}
257	return ""
258}
259
260func (x *IssueComment) GetAuthor() string {
261	if x != nil {
262		return x.Author
263	}
264	return ""
265}
266
267func (x *IssueComment) GetText() string {
268	if x != nil {
269		return x.Text
270	}
271	return ""
272}
273
274func (x *IssueComment) GetCreatedAt() *timestamppb.Timestamp {
275	if x != nil {
276		return x.CreatedAt
277	}
278	return nil
279}
280
281// CreateIssueRequest describes the issue to open.
282type CreateIssueRequest struct {
283	state protoimpl.MessageState `protogen:"open.v1"`
284	// Repo is the repository name.
285	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
286	// Title is the one-line title. Required.
287	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
288	// Body is the optional content.
289	Body          string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
290	unknownFields protoimpl.UnknownFields
291	sizeCache     protoimpl.SizeCache
292}
293
294func (x *CreateIssueRequest) Reset() {
295	*x = CreateIssueRequest{}
296	mi := &file_ermite_issue_proto_msgTypes[2]
297	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
298	ms.StoreMessageInfo(mi)
299}
300
301func (x *CreateIssueRequest) String() string {
302	return protoimpl.X.MessageStringOf(x)
303}
304
305func (*CreateIssueRequest) ProtoMessage() {}
306
307func (x *CreateIssueRequest) ProtoReflect() protoreflect.Message {
308	mi := &file_ermite_issue_proto_msgTypes[2]
309	if x != nil {
310		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
311		if ms.LoadMessageInfo() == nil {
312			ms.StoreMessageInfo(mi)
313		}
314		return ms
315	}
316	return mi.MessageOf(x)
317}
318
319// Deprecated: Use CreateIssueRequest.ProtoReflect.Descriptor instead.
320func (*CreateIssueRequest) Descriptor() ([]byte, []int) {
321	return file_ermite_issue_proto_rawDescGZIP(), []int{2}
322}
323
324func (x *CreateIssueRequest) GetRepo() string {
325	if x != nil {
326		return x.Repo
327	}
328	return ""
329}
330
331func (x *CreateIssueRequest) GetTitle() string {
332	if x != nil {
333		return x.Title
334	}
335	return ""
336}
337
338func (x *CreateIssueRequest) GetBody() string {
339	if x != nil {
340		return x.Body
341	}
342	return ""
343}
344
345// CreateIssueResponse holds the new issue.
346type CreateIssueResponse struct {
347	state protoimpl.MessageState `protogen:"open.v1"`
348	// Issue is the created issue.
349	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
350	unknownFields protoimpl.UnknownFields
351	sizeCache     protoimpl.SizeCache
352}
353
354func (x *CreateIssueResponse) Reset() {
355	*x = CreateIssueResponse{}
356	mi := &file_ermite_issue_proto_msgTypes[3]
357	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
358	ms.StoreMessageInfo(mi)
359}
360
361func (x *CreateIssueResponse) String() string {
362	return protoimpl.X.MessageStringOf(x)
363}
364
365func (*CreateIssueResponse) ProtoMessage() {}
366
367func (x *CreateIssueResponse) ProtoReflect() protoreflect.Message {
368	mi := &file_ermite_issue_proto_msgTypes[3]
369	if x != nil {
370		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
371		if ms.LoadMessageInfo() == nil {
372			ms.StoreMessageInfo(mi)
373		}
374		return ms
375	}
376	return mi.MessageOf(x)
377}
378
379// Deprecated: Use CreateIssueResponse.ProtoReflect.Descriptor instead.
380func (*CreateIssueResponse) Descriptor() ([]byte, []int) {
381	return file_ermite_issue_proto_rawDescGZIP(), []int{3}
382}
383
384func (x *CreateIssueResponse) GetIssue() *Issue {
385	if x != nil {
386		return x.Issue
387	}
388	return nil
389}
390
391// ListIssuesRequest selects a page of issues.
392type ListIssuesRequest struct {
393	state protoimpl.MessageState `protogen:"open.v1"`
394	// Repo is the repository name.
395	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
396	// State restricts the result to one state. ISSUE_STATE_UNSPECIFIED means
397	// every state.
398	State IssueState `protobuf:"varint,2,opt,name=state,proto3,enum=ermite.IssueState" json:"state,omitempty"`
399	// PageSize is the maximum number of issues to return. 0 means the server
400	// default; values above the server maximum are lowered to it.
401	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
402	// PageToken is the next_page_token of a previous response, to continue the
403	// same listing. Empty for the first page. Other fields must be unchanged.
404	PageToken     string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
405	unknownFields protoimpl.UnknownFields
406	sizeCache     protoimpl.SizeCache
407}
408
409func (x *ListIssuesRequest) Reset() {
410	*x = ListIssuesRequest{}
411	mi := &file_ermite_issue_proto_msgTypes[4]
412	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
413	ms.StoreMessageInfo(mi)
414}
415
416func (x *ListIssuesRequest) String() string {
417	return protoimpl.X.MessageStringOf(x)
418}
419
420func (*ListIssuesRequest) ProtoMessage() {}
421
422func (x *ListIssuesRequest) ProtoReflect() protoreflect.Message {
423	mi := &file_ermite_issue_proto_msgTypes[4]
424	if x != nil {
425		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
426		if ms.LoadMessageInfo() == nil {
427			ms.StoreMessageInfo(mi)
428		}
429		return ms
430	}
431	return mi.MessageOf(x)
432}
433
434// Deprecated: Use ListIssuesRequest.ProtoReflect.Descriptor instead.
435func (*ListIssuesRequest) Descriptor() ([]byte, []int) {
436	return file_ermite_issue_proto_rawDescGZIP(), []int{4}
437}
438
439func (x *ListIssuesRequest) GetRepo() string {
440	if x != nil {
441		return x.Repo
442	}
443	return ""
444}
445
446func (x *ListIssuesRequest) GetState() IssueState {
447	if x != nil {
448		return x.State
449	}
450	return IssueState_ISSUE_STATE_UNSPECIFIED
451}
452
453func (x *ListIssuesRequest) GetPageSize() int32 {
454	if x != nil {
455		return x.PageSize
456	}
457	return 0
458}
459
460func (x *ListIssuesRequest) GetPageToken() string {
461	if x != nil {
462		return x.PageToken
463	}
464	return ""
465}
466
467// ListIssuesResponse is one page of issues.
468type ListIssuesResponse struct {
469	state protoimpl.MessageState `protogen:"open.v1"`
470	// Issues are the issues of this page, highest number first.
471	Issues []*Issue `protobuf:"bytes,1,rep,name=issues,proto3" json:"issues,omitempty"`
472	// NextPageToken is passed as page_token to get the next page. Empty when
473	// there is no next page.
474	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
475	unknownFields protoimpl.UnknownFields
476	sizeCache     protoimpl.SizeCache
477}
478
479func (x *ListIssuesResponse) Reset() {
480	*x = ListIssuesResponse{}
481	mi := &file_ermite_issue_proto_msgTypes[5]
482	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
483	ms.StoreMessageInfo(mi)
484}
485
486func (x *ListIssuesResponse) String() string {
487	return protoimpl.X.MessageStringOf(x)
488}
489
490func (*ListIssuesResponse) ProtoMessage() {}
491
492func (x *ListIssuesResponse) ProtoReflect() protoreflect.Message {
493	mi := &file_ermite_issue_proto_msgTypes[5]
494	if x != nil {
495		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
496		if ms.LoadMessageInfo() == nil {
497			ms.StoreMessageInfo(mi)
498		}
499		return ms
500	}
501	return mi.MessageOf(x)
502}
503
504// Deprecated: Use ListIssuesResponse.ProtoReflect.Descriptor instead.
505func (*ListIssuesResponse) Descriptor() ([]byte, []int) {
506	return file_ermite_issue_proto_rawDescGZIP(), []int{5}
507}
508
509func (x *ListIssuesResponse) GetIssues() []*Issue {
510	if x != nil {
511		return x.Issues
512	}
513	return nil
514}
515
516func (x *ListIssuesResponse) GetNextPageToken() string {
517	if x != nil {
518		return x.NextPageToken
519	}
520	return ""
521}
522
523// GetIssueRequest selects an issue.
524type GetIssueRequest struct {
525	state protoimpl.MessageState `protogen:"open.v1"`
526	// Repo is the repository name.
527	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
528	// Number is the issue number.
529	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
530	unknownFields protoimpl.UnknownFields
531	sizeCache     protoimpl.SizeCache
532}
533
534func (x *GetIssueRequest) Reset() {
535	*x = GetIssueRequest{}
536	mi := &file_ermite_issue_proto_msgTypes[6]
537	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
538	ms.StoreMessageInfo(mi)
539}
540
541func (x *GetIssueRequest) String() string {
542	return protoimpl.X.MessageStringOf(x)
543}
544
545func (*GetIssueRequest) ProtoMessage() {}
546
547func (x *GetIssueRequest) ProtoReflect() protoreflect.Message {
548	mi := &file_ermite_issue_proto_msgTypes[6]
549	if x != nil {
550		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
551		if ms.LoadMessageInfo() == nil {
552			ms.StoreMessageInfo(mi)
553		}
554		return ms
555	}
556	return mi.MessageOf(x)
557}
558
559// Deprecated: Use GetIssueRequest.ProtoReflect.Descriptor instead.
560func (*GetIssueRequest) Descriptor() ([]byte, []int) {
561	return file_ermite_issue_proto_rawDescGZIP(), []int{6}
562}
563
564func (x *GetIssueRequest) GetRepo() string {
565	if x != nil {
566		return x.Repo
567	}
568	return ""
569}
570
571func (x *GetIssueRequest) GetNumber() int64 {
572	if x != nil {
573		return x.Number
574	}
575	return 0
576}
577
578// GetIssueResponse holds an issue with its comments.
579type GetIssueResponse struct {
580	state protoimpl.MessageState `protogen:"open.v1"`
581	// Issue is the issue.
582	Issue *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
583	// Comments are every comment of the issue, oldest first.
584	Comments      []*IssueComment `protobuf:"bytes,2,rep,name=comments,proto3" json:"comments,omitempty"`
585	unknownFields protoimpl.UnknownFields
586	sizeCache     protoimpl.SizeCache
587}
588
589func (x *GetIssueResponse) Reset() {
590	*x = GetIssueResponse{}
591	mi := &file_ermite_issue_proto_msgTypes[7]
592	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
593	ms.StoreMessageInfo(mi)
594}
595
596func (x *GetIssueResponse) String() string {
597	return protoimpl.X.MessageStringOf(x)
598}
599
600func (*GetIssueResponse) ProtoMessage() {}
601
602func (x *GetIssueResponse) ProtoReflect() protoreflect.Message {
603	mi := &file_ermite_issue_proto_msgTypes[7]
604	if x != nil {
605		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
606		if ms.LoadMessageInfo() == nil {
607			ms.StoreMessageInfo(mi)
608		}
609		return ms
610	}
611	return mi.MessageOf(x)
612}
613
614// Deprecated: Use GetIssueResponse.ProtoReflect.Descriptor instead.
615func (*GetIssueResponse) Descriptor() ([]byte, []int) {
616	return file_ermite_issue_proto_rawDescGZIP(), []int{7}
617}
618
619func (x *GetIssueResponse) GetIssue() *Issue {
620	if x != nil {
621		return x.Issue
622	}
623	return nil
624}
625
626func (x *GetIssueResponse) GetComments() []*IssueComment {
627	if x != nil {
628		return x.Comments
629	}
630	return nil
631}
632
633// AddIssueCommentRequest describes the comment to add.
634type AddIssueCommentRequest struct {
635	state protoimpl.MessageState `protogen:"open.v1"`
636	// Repo is the repository name.
637	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
638	// Number is the issue number.
639	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
640	// Text is the content. Required.
641	Text          string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
642	unknownFields protoimpl.UnknownFields
643	sizeCache     protoimpl.SizeCache
644}
645
646func (x *AddIssueCommentRequest) Reset() {
647	*x = AddIssueCommentRequest{}
648	mi := &file_ermite_issue_proto_msgTypes[8]
649	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
650	ms.StoreMessageInfo(mi)
651}
652
653func (x *AddIssueCommentRequest) String() string {
654	return protoimpl.X.MessageStringOf(x)
655}
656
657func (*AddIssueCommentRequest) ProtoMessage() {}
658
659func (x *AddIssueCommentRequest) ProtoReflect() protoreflect.Message {
660	mi := &file_ermite_issue_proto_msgTypes[8]
661	if x != nil {
662		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
663		if ms.LoadMessageInfo() == nil {
664			ms.StoreMessageInfo(mi)
665		}
666		return ms
667	}
668	return mi.MessageOf(x)
669}
670
671// Deprecated: Use AddIssueCommentRequest.ProtoReflect.Descriptor instead.
672func (*AddIssueCommentRequest) Descriptor() ([]byte, []int) {
673	return file_ermite_issue_proto_rawDescGZIP(), []int{8}
674}
675
676func (x *AddIssueCommentRequest) GetRepo() string {
677	if x != nil {
678		return x.Repo
679	}
680	return ""
681}
682
683func (x *AddIssueCommentRequest) GetNumber() int64 {
684	if x != nil {
685		return x.Number
686	}
687	return 0
688}
689
690func (x *AddIssueCommentRequest) GetText() string {
691	if x != nil {
692		return x.Text
693	}
694	return ""
695}
696
697// AddIssueCommentResponse holds the new comment.
698type AddIssueCommentResponse struct {
699	state protoimpl.MessageState `protogen:"open.v1"`
700	// Comment is the created comment.
701	Comment       *IssueComment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
702	unknownFields protoimpl.UnknownFields
703	sizeCache     protoimpl.SizeCache
704}
705
706func (x *AddIssueCommentResponse) Reset() {
707	*x = AddIssueCommentResponse{}
708	mi := &file_ermite_issue_proto_msgTypes[9]
709	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
710	ms.StoreMessageInfo(mi)
711}
712
713func (x *AddIssueCommentResponse) String() string {
714	return protoimpl.X.MessageStringOf(x)
715}
716
717func (*AddIssueCommentResponse) ProtoMessage() {}
718
719func (x *AddIssueCommentResponse) ProtoReflect() protoreflect.Message {
720	mi := &file_ermite_issue_proto_msgTypes[9]
721	if x != nil {
722		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
723		if ms.LoadMessageInfo() == nil {
724			ms.StoreMessageInfo(mi)
725		}
726		return ms
727	}
728	return mi.MessageOf(x)
729}
730
731// Deprecated: Use AddIssueCommentResponse.ProtoReflect.Descriptor instead.
732func (*AddIssueCommentResponse) Descriptor() ([]byte, []int) {
733	return file_ermite_issue_proto_rawDescGZIP(), []int{9}
734}
735
736func (x *AddIssueCommentResponse) GetComment() *IssueComment {
737	if x != nil {
738		return x.Comment
739	}
740	return nil
741}
742
743// CloseIssueRequest names the issue to close.
744type CloseIssueRequest struct {
745	state protoimpl.MessageState `protogen:"open.v1"`
746	// Repo is the repository name.
747	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
748	// Number is the issue number.
749	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
750	unknownFields protoimpl.UnknownFields
751	sizeCache     protoimpl.SizeCache
752}
753
754func (x *CloseIssueRequest) Reset() {
755	*x = CloseIssueRequest{}
756	mi := &file_ermite_issue_proto_msgTypes[10]
757	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
758	ms.StoreMessageInfo(mi)
759}
760
761func (x *CloseIssueRequest) String() string {
762	return protoimpl.X.MessageStringOf(x)
763}
764
765func (*CloseIssueRequest) ProtoMessage() {}
766
767func (x *CloseIssueRequest) ProtoReflect() protoreflect.Message {
768	mi := &file_ermite_issue_proto_msgTypes[10]
769	if x != nil {
770		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
771		if ms.LoadMessageInfo() == nil {
772			ms.StoreMessageInfo(mi)
773		}
774		return ms
775	}
776	return mi.MessageOf(x)
777}
778
779// Deprecated: Use CloseIssueRequest.ProtoReflect.Descriptor instead.
780func (*CloseIssueRequest) Descriptor() ([]byte, []int) {
781	return file_ermite_issue_proto_rawDescGZIP(), []int{10}
782}
783
784func (x *CloseIssueRequest) GetRepo() string {
785	if x != nil {
786		return x.Repo
787	}
788	return ""
789}
790
791func (x *CloseIssueRequest) GetNumber() int64 {
792	if x != nil {
793		return x.Number
794	}
795	return 0
796}
797
798// CloseIssueResponse holds the issue after closing.
799type CloseIssueResponse struct {
800	state protoimpl.MessageState `protogen:"open.v1"`
801	// Issue is the closed issue.
802	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
803	unknownFields protoimpl.UnknownFields
804	sizeCache     protoimpl.SizeCache
805}
806
807func (x *CloseIssueResponse) Reset() {
808	*x = CloseIssueResponse{}
809	mi := &file_ermite_issue_proto_msgTypes[11]
810	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
811	ms.StoreMessageInfo(mi)
812}
813
814func (x *CloseIssueResponse) String() string {
815	return protoimpl.X.MessageStringOf(x)
816}
817
818func (*CloseIssueResponse) ProtoMessage() {}
819
820func (x *CloseIssueResponse) ProtoReflect() protoreflect.Message {
821	mi := &file_ermite_issue_proto_msgTypes[11]
822	if x != nil {
823		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
824		if ms.LoadMessageInfo() == nil {
825			ms.StoreMessageInfo(mi)
826		}
827		return ms
828	}
829	return mi.MessageOf(x)
830}
831
832// Deprecated: Use CloseIssueResponse.ProtoReflect.Descriptor instead.
833func (*CloseIssueResponse) Descriptor() ([]byte, []int) {
834	return file_ermite_issue_proto_rawDescGZIP(), []int{11}
835}
836
837func (x *CloseIssueResponse) GetIssue() *Issue {
838	if x != nil {
839		return x.Issue
840	}
841	return nil
842}
843
844// ReopenIssueRequest names the issue to reopen.
845type ReopenIssueRequest struct {
846	state protoimpl.MessageState `protogen:"open.v1"`
847	// Repo is the repository name.
848	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
849	// Number is the issue number.
850	Number        int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
851	unknownFields protoimpl.UnknownFields
852	sizeCache     protoimpl.SizeCache
853}
854
855func (x *ReopenIssueRequest) Reset() {
856	*x = ReopenIssueRequest{}
857	mi := &file_ermite_issue_proto_msgTypes[12]
858	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
859	ms.StoreMessageInfo(mi)
860}
861
862func (x *ReopenIssueRequest) String() string {
863	return protoimpl.X.MessageStringOf(x)
864}
865
866func (*ReopenIssueRequest) ProtoMessage() {}
867
868func (x *ReopenIssueRequest) ProtoReflect() protoreflect.Message {
869	mi := &file_ermite_issue_proto_msgTypes[12]
870	if x != nil {
871		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
872		if ms.LoadMessageInfo() == nil {
873			ms.StoreMessageInfo(mi)
874		}
875		return ms
876	}
877	return mi.MessageOf(x)
878}
879
880// Deprecated: Use ReopenIssueRequest.ProtoReflect.Descriptor instead.
881func (*ReopenIssueRequest) Descriptor() ([]byte, []int) {
882	return file_ermite_issue_proto_rawDescGZIP(), []int{12}
883}
884
885func (x *ReopenIssueRequest) GetRepo() string {
886	if x != nil {
887		return x.Repo
888	}
889	return ""
890}
891
892func (x *ReopenIssueRequest) GetNumber() int64 {
893	if x != nil {
894		return x.Number
895	}
896	return 0
897}
898
899// ReopenIssueResponse holds the issue after reopening.
900type ReopenIssueResponse struct {
901	state protoimpl.MessageState `protogen:"open.v1"`
902	// Issue is the reopened issue.
903	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
904	unknownFields protoimpl.UnknownFields
905	sizeCache     protoimpl.SizeCache
906}
907
908func (x *ReopenIssueResponse) Reset() {
909	*x = ReopenIssueResponse{}
910	mi := &file_ermite_issue_proto_msgTypes[13]
911	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
912	ms.StoreMessageInfo(mi)
913}
914
915func (x *ReopenIssueResponse) String() string {
916	return protoimpl.X.MessageStringOf(x)
917}
918
919func (*ReopenIssueResponse) ProtoMessage() {}
920
921func (x *ReopenIssueResponse) ProtoReflect() protoreflect.Message {
922	mi := &file_ermite_issue_proto_msgTypes[13]
923	if x != nil {
924		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
925		if ms.LoadMessageInfo() == nil {
926			ms.StoreMessageInfo(mi)
927		}
928		return ms
929	}
930	return mi.MessageOf(x)
931}
932
933// Deprecated: Use ReopenIssueResponse.ProtoReflect.Descriptor instead.
934func (*ReopenIssueResponse) Descriptor() ([]byte, []int) {
935	return file_ermite_issue_proto_rawDescGZIP(), []int{13}
936}
937
938func (x *ReopenIssueResponse) GetIssue() *Issue {
939	if x != nil {
940		return x.Issue
941	}
942	return nil
943}
944
945// PendingIssue is an issue awaiting moderation. It has no number yet.
946type PendingIssue struct {
947	state protoimpl.MessageState `protogen:"open.v1"`
948	// Id identifies the pending issue. Opaque internal id, not a number.
949	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
950	// Repo is the name of the repository.
951	Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"`
952	// Title is the one-line title.
953	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
954	// Body is the content. It may be empty.
955	Body string `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"`
956	// Author is the optional display name given by the anonymous submitter. It
957	// may be empty or "anonymous", and is not verified: it never proves
958	// identity (a visitor can type "owner"). It becomes Issue.author on approval.
959	Author string `protobuf:"bytes,5,opt,name=author,proto3" json:"author,omitempty"`
960	// CreatedAt is when the issue was submitted.
961	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
962	unknownFields protoimpl.UnknownFields
963	sizeCache     protoimpl.SizeCache
964}
965
966func (x *PendingIssue) Reset() {
967	*x = PendingIssue{}
968	mi := &file_ermite_issue_proto_msgTypes[14]
969	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
970	ms.StoreMessageInfo(mi)
971}
972
973func (x *PendingIssue) String() string {
974	return protoimpl.X.MessageStringOf(x)
975}
976
977func (*PendingIssue) ProtoMessage() {}
978
979func (x *PendingIssue) ProtoReflect() protoreflect.Message {
980	mi := &file_ermite_issue_proto_msgTypes[14]
981	if x != nil {
982		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
983		if ms.LoadMessageInfo() == nil {
984			ms.StoreMessageInfo(mi)
985		}
986		return ms
987	}
988	return mi.MessageOf(x)
989}
990
991// Deprecated: Use PendingIssue.ProtoReflect.Descriptor instead.
992func (*PendingIssue) Descriptor() ([]byte, []int) {
993	return file_ermite_issue_proto_rawDescGZIP(), []int{14}
994}
995
996func (x *PendingIssue) GetId() string {
997	if x != nil {
998		return x.Id
999	}
1000	return ""
1001}
1002
1003func (x *PendingIssue) GetRepo() string {
1004	if x != nil {
1005		return x.Repo
1006	}
1007	return ""
1008}
1009
1010func (x *PendingIssue) GetTitle() string {
1011	if x != nil {
1012		return x.Title
1013	}
1014	return ""
1015}
1016
1017func (x *PendingIssue) GetBody() string {
1018	if x != nil {
1019		return x.Body
1020	}
1021	return ""
1022}
1023
1024func (x *PendingIssue) GetAuthor() string {
1025	if x != nil {
1026		return x.Author
1027	}
1028	return ""
1029}
1030
1031func (x *PendingIssue) GetCreatedAt() *timestamppb.Timestamp {
1032	if x != nil {
1033		return x.CreatedAt
1034	}
1035	return nil
1036}
1037
1038// ListPendingIssuesRequest selects a page of pending issues.
1039type ListPendingIssuesRequest struct {
1040	state protoimpl.MessageState `protogen:"open.v1"`
1041	// Repo is the repository name. Empty means every repository.
1042	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1043	// PageSize is the maximum number of issues to return. 0 means the server
1044	// default; values above the server maximum are lowered to it.
1045	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1046	// PageToken is the next_page_token of a previous response, to continue the
1047	// same listing. Empty for the first page. Other fields must be unchanged.
1048	PageToken     string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1049	unknownFields protoimpl.UnknownFields
1050	sizeCache     protoimpl.SizeCache
1051}
1052
1053func (x *ListPendingIssuesRequest) Reset() {
1054	*x = ListPendingIssuesRequest{}
1055	mi := &file_ermite_issue_proto_msgTypes[15]
1056	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1057	ms.StoreMessageInfo(mi)
1058}
1059
1060func (x *ListPendingIssuesRequest) String() string {
1061	return protoimpl.X.MessageStringOf(x)
1062}
1063
1064func (*ListPendingIssuesRequest) ProtoMessage() {}
1065
1066func (x *ListPendingIssuesRequest) ProtoReflect() protoreflect.Message {
1067	mi := &file_ermite_issue_proto_msgTypes[15]
1068	if x != nil {
1069		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1070		if ms.LoadMessageInfo() == nil {
1071			ms.StoreMessageInfo(mi)
1072		}
1073		return ms
1074	}
1075	return mi.MessageOf(x)
1076}
1077
1078// Deprecated: Use ListPendingIssuesRequest.ProtoReflect.Descriptor instead.
1079func (*ListPendingIssuesRequest) Descriptor() ([]byte, []int) {
1080	return file_ermite_issue_proto_rawDescGZIP(), []int{15}
1081}
1082
1083func (x *ListPendingIssuesRequest) GetRepo() string {
1084	if x != nil {
1085		return x.Repo
1086	}
1087	return ""
1088}
1089
1090func (x *ListPendingIssuesRequest) GetPageSize() int32 {
1091	if x != nil {
1092		return x.PageSize
1093	}
1094	return 0
1095}
1096
1097func (x *ListPendingIssuesRequest) GetPageToken() string {
1098	if x != nil {
1099		return x.PageToken
1100	}
1101	return ""
1102}
1103
1104// ListPendingIssuesResponse is one page of pending issues.
1105type ListPendingIssuesResponse struct {
1106	state protoimpl.MessageState `protogen:"open.v1"`
1107	// Issues are the pending issues of this page, oldest first.
1108	Issues []*PendingIssue `protobuf:"bytes,1,rep,name=issues,proto3" json:"issues,omitempty"`
1109	// NextPageToken is passed as page_token to get the next page. Empty when
1110	// there is no next page.
1111	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1112	unknownFields protoimpl.UnknownFields
1113	sizeCache     protoimpl.SizeCache
1114}
1115
1116func (x *ListPendingIssuesResponse) Reset() {
1117	*x = ListPendingIssuesResponse{}
1118	mi := &file_ermite_issue_proto_msgTypes[16]
1119	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1120	ms.StoreMessageInfo(mi)
1121}
1122
1123func (x *ListPendingIssuesResponse) String() string {
1124	return protoimpl.X.MessageStringOf(x)
1125}
1126
1127func (*ListPendingIssuesResponse) ProtoMessage() {}
1128
1129func (x *ListPendingIssuesResponse) ProtoReflect() protoreflect.Message {
1130	mi := &file_ermite_issue_proto_msgTypes[16]
1131	if x != nil {
1132		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1133		if ms.LoadMessageInfo() == nil {
1134			ms.StoreMessageInfo(mi)
1135		}
1136		return ms
1137	}
1138	return mi.MessageOf(x)
1139}
1140
1141// Deprecated: Use ListPendingIssuesResponse.ProtoReflect.Descriptor instead.
1142func (*ListPendingIssuesResponse) Descriptor() ([]byte, []int) {
1143	return file_ermite_issue_proto_rawDescGZIP(), []int{16}
1144}
1145
1146func (x *ListPendingIssuesResponse) GetIssues() []*PendingIssue {
1147	if x != nil {
1148		return x.Issues
1149	}
1150	return nil
1151}
1152
1153func (x *ListPendingIssuesResponse) GetNextPageToken() string {
1154	if x != nil {
1155		return x.NextPageToken
1156	}
1157	return ""
1158}
1159
1160// ApproveIssueRequest names the pending issue to approve.
1161type ApproveIssueRequest struct {
1162	state protoimpl.MessageState `protogen:"open.v1"`
1163	// Repo is the repository name.
1164	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1165	// Id is the PendingIssue.id.
1166	Id            string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
1167	unknownFields protoimpl.UnknownFields
1168	sizeCache     protoimpl.SizeCache
1169}
1170
1171func (x *ApproveIssueRequest) Reset() {
1172	*x = ApproveIssueRequest{}
1173	mi := &file_ermite_issue_proto_msgTypes[17]
1174	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1175	ms.StoreMessageInfo(mi)
1176}
1177
1178func (x *ApproveIssueRequest) String() string {
1179	return protoimpl.X.MessageStringOf(x)
1180}
1181
1182func (*ApproveIssueRequest) ProtoMessage() {}
1183
1184func (x *ApproveIssueRequest) ProtoReflect() protoreflect.Message {
1185	mi := &file_ermite_issue_proto_msgTypes[17]
1186	if x != nil {
1187		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1188		if ms.LoadMessageInfo() == nil {
1189			ms.StoreMessageInfo(mi)
1190		}
1191		return ms
1192	}
1193	return mi.MessageOf(x)
1194}
1195
1196// Deprecated: Use ApproveIssueRequest.ProtoReflect.Descriptor instead.
1197func (*ApproveIssueRequest) Descriptor() ([]byte, []int) {
1198	return file_ermite_issue_proto_rawDescGZIP(), []int{17}
1199}
1200
1201func (x *ApproveIssueRequest) GetRepo() string {
1202	if x != nil {
1203		return x.Repo
1204	}
1205	return ""
1206}
1207
1208func (x *ApproveIssueRequest) GetId() string {
1209	if x != nil {
1210		return x.Id
1211	}
1212	return ""
1213}
1214
1215// ApproveIssueResponse holds the approved issue.
1216type ApproveIssueResponse struct {
1217	state protoimpl.MessageState `protogen:"open.v1"`
1218	// Issue is the approved issue, with its new number and state
1219	// ISSUE_STATE_OPEN.
1220	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
1221	unknownFields protoimpl.UnknownFields
1222	sizeCache     protoimpl.SizeCache
1223}
1224
1225func (x *ApproveIssueResponse) Reset() {
1226	*x = ApproveIssueResponse{}
1227	mi := &file_ermite_issue_proto_msgTypes[18]
1228	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1229	ms.StoreMessageInfo(mi)
1230}
1231
1232func (x *ApproveIssueResponse) String() string {
1233	return protoimpl.X.MessageStringOf(x)
1234}
1235
1236func (*ApproveIssueResponse) ProtoMessage() {}
1237
1238func (x *ApproveIssueResponse) ProtoReflect() protoreflect.Message {
1239	mi := &file_ermite_issue_proto_msgTypes[18]
1240	if x != nil {
1241		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1242		if ms.LoadMessageInfo() == nil {
1243			ms.StoreMessageInfo(mi)
1244		}
1245		return ms
1246	}
1247	return mi.MessageOf(x)
1248}
1249
1250// Deprecated: Use ApproveIssueResponse.ProtoReflect.Descriptor instead.
1251func (*ApproveIssueResponse) Descriptor() ([]byte, []int) {
1252	return file_ermite_issue_proto_rawDescGZIP(), []int{18}
1253}
1254
1255func (x *ApproveIssueResponse) GetIssue() *Issue {
1256	if x != nil {
1257		return x.Issue
1258	}
1259	return nil
1260}
1261
1262// RejectIssueRequest names the pending issue to reject.
1263type RejectIssueRequest struct {
1264	state protoimpl.MessageState `protogen:"open.v1"`
1265	// Repo is the repository name.
1266	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1267	// Id is the PendingIssue.id.
1268	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
1269	// Ban also bans the submitter for a while.
1270	Ban           bool `protobuf:"varint,3,opt,name=ban,proto3" json:"ban,omitempty"`
1271	unknownFields protoimpl.UnknownFields
1272	sizeCache     protoimpl.SizeCache
1273}
1274
1275func (x *RejectIssueRequest) Reset() {
1276	*x = RejectIssueRequest{}
1277	mi := &file_ermite_issue_proto_msgTypes[19]
1278	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1279	ms.StoreMessageInfo(mi)
1280}
1281
1282func (x *RejectIssueRequest) String() string {
1283	return protoimpl.X.MessageStringOf(x)
1284}
1285
1286func (*RejectIssueRequest) ProtoMessage() {}
1287
1288func (x *RejectIssueRequest) ProtoReflect() protoreflect.Message {
1289	mi := &file_ermite_issue_proto_msgTypes[19]
1290	if x != nil {
1291		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1292		if ms.LoadMessageInfo() == nil {
1293			ms.StoreMessageInfo(mi)
1294		}
1295		return ms
1296	}
1297	return mi.MessageOf(x)
1298}
1299
1300// Deprecated: Use RejectIssueRequest.ProtoReflect.Descriptor instead.
1301func (*RejectIssueRequest) Descriptor() ([]byte, []int) {
1302	return file_ermite_issue_proto_rawDescGZIP(), []int{19}
1303}
1304
1305func (x *RejectIssueRequest) GetRepo() string {
1306	if x != nil {
1307		return x.Repo
1308	}
1309	return ""
1310}
1311
1312func (x *RejectIssueRequest) GetId() string {
1313	if x != nil {
1314		return x.Id
1315	}
1316	return ""
1317}
1318
1319func (x *RejectIssueRequest) GetBan() bool {
1320	if x != nil {
1321		return x.Ban
1322	}
1323	return false
1324}
1325
1326// RejectIssueResponse is empty: the pending issue is gone.
1327type RejectIssueResponse struct {
1328	state         protoimpl.MessageState `protogen:"open.v1"`
1329	unknownFields protoimpl.UnknownFields
1330	sizeCache     protoimpl.SizeCache
1331}
1332
1333func (x *RejectIssueResponse) Reset() {
1334	*x = RejectIssueResponse{}
1335	mi := &file_ermite_issue_proto_msgTypes[20]
1336	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1337	ms.StoreMessageInfo(mi)
1338}
1339
1340func (x *RejectIssueResponse) String() string {
1341	return protoimpl.X.MessageStringOf(x)
1342}
1343
1344func (*RejectIssueResponse) ProtoMessage() {}
1345
1346func (x *RejectIssueResponse) ProtoReflect() protoreflect.Message {
1347	mi := &file_ermite_issue_proto_msgTypes[20]
1348	if x != nil {
1349		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1350		if ms.LoadMessageInfo() == nil {
1351			ms.StoreMessageInfo(mi)
1352		}
1353		return ms
1354	}
1355	return mi.MessageOf(x)
1356}
1357
1358// Deprecated: Use RejectIssueResponse.ProtoReflect.Descriptor instead.
1359func (*RejectIssueResponse) Descriptor() ([]byte, []int) {
1360	return file_ermite_issue_proto_rawDescGZIP(), []int{20}
1361}
1362
1363var File_ermite_issue_proto protoreflect.FileDescriptor
1364
1365const file_ermite_issue_proto_rawDesc = "" +
1366	"\n" +
1367	"\x12ermite/issue.proto\x12\x06ermite\x1a\x1fgoogle/protobuf/timestamp.proto\"\xba\x02\n" +
1368	"\x05Issue\x12\x12\n" +
1369	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1370	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x14\n" +
1371	"\x05title\x18\x03 \x01(\tR\x05title\x12\x12\n" +
1372	"\x04body\x18\x04 \x01(\tR\x04body\x12(\n" +
1373	"\x05state\x18\x05 \x01(\x0e2\x12.ermite.IssueStateR\x05state\x12\x16\n" +
1374	"\x06author\x18\x06 \x01(\tR\x06author\x129\n" +
1375	"\n" +
1376	"created_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
1377	"\n" +
1378	"updated_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12#\n" +
1379	"\rcomment_count\x18\t \x01(\x05R\fcommentCount\"\x85\x01\n" +
1380	"\fIssueComment\x12\x0e\n" +
1381	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
1382	"\x06author\x18\x02 \x01(\tR\x06author\x12\x12\n" +
1383	"\x04text\x18\x03 \x01(\tR\x04text\x129\n" +
1384	"\n" +
1385	"created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"R\n" +
1386	"\x12CreateIssueRequest\x12\x12\n" +
1387	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x14\n" +
1388	"\x05title\x18\x02 \x01(\tR\x05title\x12\x12\n" +
1389	"\x04body\x18\x03 \x01(\tR\x04body\":\n" +
1390	"\x13CreateIssueResponse\x12#\n" +
1391	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"\x8d\x01\n" +
1392	"\x11ListIssuesRequest\x12\x12\n" +
1393	"\x04repo\x18\x01 \x01(\tR\x04repo\x12(\n" +
1394	"\x05state\x18\x02 \x01(\x0e2\x12.ermite.IssueStateR\x05state\x12\x1b\n" +
1395	"\tpage_size\x18\x03 \x01(\x05R\bpageSize\x12\x1d\n" +
1396	"\n" +
1397	"page_token\x18\x04 \x01(\tR\tpageToken\"c\n" +
1398	"\x12ListIssuesResponse\x12%\n" +
1399	"\x06issues\x18\x01 \x03(\v2\r.ermite.IssueR\x06issues\x12&\n" +
1400	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"=\n" +
1401	"\x0fGetIssueRequest\x12\x12\n" +
1402	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1403	"\x06number\x18\x02 \x01(\x03R\x06number\"i\n" +
1404	"\x10GetIssueResponse\x12#\n" +
1405	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\x120\n" +
1406	"\bcomments\x18\x02 \x03(\v2\x14.ermite.IssueCommentR\bcomments\"X\n" +
1407	"\x16AddIssueCommentRequest\x12\x12\n" +
1408	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1409	"\x06number\x18\x02 \x01(\x03R\x06number\x12\x12\n" +
1410	"\x04text\x18\x03 \x01(\tR\x04text\"I\n" +
1411	"\x17AddIssueCommentResponse\x12.\n" +
1412	"\acomment\x18\x01 \x01(\v2\x14.ermite.IssueCommentR\acomment\"?\n" +
1413	"\x11CloseIssueRequest\x12\x12\n" +
1414	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1415	"\x06number\x18\x02 \x01(\x03R\x06number\"9\n" +
1416	"\x12CloseIssueResponse\x12#\n" +
1417	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"@\n" +
1418	"\x12ReopenIssueRequest\x12\x12\n" +
1419	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1420	"\x06number\x18\x02 \x01(\x03R\x06number\":\n" +
1421	"\x13ReopenIssueResponse\x12#\n" +
1422	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"\xaf\x01\n" +
1423	"\fPendingIssue\x12\x0e\n" +
1424	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
1425	"\x04repo\x18\x02 \x01(\tR\x04repo\x12\x14\n" +
1426	"\x05title\x18\x03 \x01(\tR\x05title\x12\x12\n" +
1427	"\x04body\x18\x04 \x01(\tR\x04body\x12\x16\n" +
1428	"\x06author\x18\x05 \x01(\tR\x06author\x129\n" +
1429	"\n" +
1430	"created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"j\n" +
1431	"\x18ListPendingIssuesRequest\x12\x12\n" +
1432	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1b\n" +
1433	"\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" +
1434	"\n" +
1435	"page_token\x18\x03 \x01(\tR\tpageToken\"q\n" +
1436	"\x19ListPendingIssuesResponse\x12,\n" +
1437	"\x06issues\x18\x01 \x03(\v2\x14.ermite.PendingIssueR\x06issues\x12&\n" +
1438	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"9\n" +
1439	"\x13ApproveIssueRequest\x12\x12\n" +
1440	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x0e\n" +
1441	"\x02id\x18\x02 \x01(\tR\x02id\";\n" +
1442	"\x14ApproveIssueResponse\x12#\n" +
1443	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"J\n" +
1444	"\x12RejectIssueRequest\x12\x12\n" +
1445	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x0e\n" +
1446	"\x02id\x18\x02 \x01(\tR\x02id\x12\x10\n" +
1447	"\x03ban\x18\x03 \x01(\bR\x03ban\"\x15\n" +
1448	"\x13RejectIssueResponse*p\n" +
1449	"\n" +
1450	"IssueState\x12\x1b\n" +
1451	"\x17ISSUE_STATE_UNSPECIFIED\x10\x00\x12\x14\n" +
1452	"\x10ISSUE_STATE_OPEN\x10\x01\x12\x16\n" +
1453	"\x12ISSUE_STATE_CLOSED\x10\x02\x12\x17\n" +
1454	"\x13ISSUE_STATE_PENDING\x10\x032\xa8\x05\n" +
1455	"\fIssueService\x12F\n" +
1456	"\vCreateIssue\x12\x1a.ermite.CreateIssueRequest\x1a\x1b.ermite.CreateIssueResponse\x12C\n" +
1457	"\n" +
1458	"ListIssues\x12\x19.ermite.ListIssuesRequest\x1a\x1a.ermite.ListIssuesResponse\x12=\n" +
1459	"\bGetIssue\x12\x17.ermite.GetIssueRequest\x1a\x18.ermite.GetIssueResponse\x12R\n" +
1460	"\x0fAddIssueComment\x12\x1e.ermite.AddIssueCommentRequest\x1a\x1f.ermite.AddIssueCommentResponse\x12C\n" +
1461	"\n" +
1462	"CloseIssue\x12\x19.ermite.CloseIssueRequest\x1a\x1a.ermite.CloseIssueResponse\x12F\n" +
1463	"\vReopenIssue\x12\x1a.ermite.ReopenIssueRequest\x1a\x1b.ermite.ReopenIssueResponse\x12X\n" +
1464	"\x11ListPendingIssues\x12 .ermite.ListPendingIssuesRequest\x1a!.ermite.ListPendingIssuesResponse\x12I\n" +
1465	"\fApproveIssue\x12\x1b.ermite.ApproveIssueRequest\x1a\x1c.ermite.ApproveIssueResponse\x12F\n" +
1466	"\vRejectIssue\x12\x1a.ermite.RejectIssueRequest\x1a\x1b.ermite.RejectIssueResponseBq\n" +
1467	"\n" +
1468	"com.ermiteB\n" +
1469	"IssueProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
1470
1471var (
1472	file_ermite_issue_proto_rawDescOnce sync.Once
1473	file_ermite_issue_proto_rawDescData []byte
1474)
1475
1476func file_ermite_issue_proto_rawDescGZIP() []byte {
1477	file_ermite_issue_proto_rawDescOnce.Do(func() {
1478		file_ermite_issue_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_issue_proto_rawDesc), len(file_ermite_issue_proto_rawDesc)))
1479	})
1480	return file_ermite_issue_proto_rawDescData
1481}
1482
1483var file_ermite_issue_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
1484var file_ermite_issue_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
1485var file_ermite_issue_proto_goTypes = []any{
1486	(IssueState)(0),                   // 0: ermite.IssueState
1487	(*Issue)(nil),                     // 1: ermite.Issue
1488	(*IssueComment)(nil),              // 2: ermite.IssueComment
1489	(*CreateIssueRequest)(nil),        // 3: ermite.CreateIssueRequest
1490	(*CreateIssueResponse)(nil),       // 4: ermite.CreateIssueResponse
1491	(*ListIssuesRequest)(nil),         // 5: ermite.ListIssuesRequest
1492	(*ListIssuesResponse)(nil),        // 6: ermite.ListIssuesResponse
1493	(*GetIssueRequest)(nil),           // 7: ermite.GetIssueRequest
1494	(*GetIssueResponse)(nil),          // 8: ermite.GetIssueResponse
1495	(*AddIssueCommentRequest)(nil),    // 9: ermite.AddIssueCommentRequest
1496	(*AddIssueCommentResponse)(nil),   // 10: ermite.AddIssueCommentResponse
1497	(*CloseIssueRequest)(nil),         // 11: ermite.CloseIssueRequest
1498	(*CloseIssueResponse)(nil),        // 12: ermite.CloseIssueResponse
1499	(*ReopenIssueRequest)(nil),        // 13: ermite.ReopenIssueRequest
1500	(*ReopenIssueResponse)(nil),       // 14: ermite.ReopenIssueResponse
1501	(*PendingIssue)(nil),              // 15: ermite.PendingIssue
1502	(*ListPendingIssuesRequest)(nil),  // 16: ermite.ListPendingIssuesRequest
1503	(*ListPendingIssuesResponse)(nil), // 17: ermite.ListPendingIssuesResponse
1504	(*ApproveIssueRequest)(nil),       // 18: ermite.ApproveIssueRequest
1505	(*ApproveIssueResponse)(nil),      // 19: ermite.ApproveIssueResponse
1506	(*RejectIssueRequest)(nil),        // 20: ermite.RejectIssueRequest
1507	(*RejectIssueResponse)(nil),       // 21: ermite.RejectIssueResponse
1508	(*timestamppb.Timestamp)(nil),     // 22: google.protobuf.Timestamp
1509}
1510var file_ermite_issue_proto_depIdxs = []int32{
1511	0,  // 0: ermite.Issue.state:type_name -> ermite.IssueState
1512	22, // 1: ermite.Issue.created_at:type_name -> google.protobuf.Timestamp
1513	22, // 2: ermite.Issue.updated_at:type_name -> google.protobuf.Timestamp
1514	22, // 3: ermite.IssueComment.created_at:type_name -> google.protobuf.Timestamp
1515	1,  // 4: ermite.CreateIssueResponse.issue:type_name -> ermite.Issue
1516	0,  // 5: ermite.ListIssuesRequest.state:type_name -> ermite.IssueState
1517	1,  // 6: ermite.ListIssuesResponse.issues:type_name -> ermite.Issue
1518	1,  // 7: ermite.GetIssueResponse.issue:type_name -> ermite.Issue
1519	2,  // 8: ermite.GetIssueResponse.comments:type_name -> ermite.IssueComment
1520	2,  // 9: ermite.AddIssueCommentResponse.comment:type_name -> ermite.IssueComment
1521	1,  // 10: ermite.CloseIssueResponse.issue:type_name -> ermite.Issue
1522	1,  // 11: ermite.ReopenIssueResponse.issue:type_name -> ermite.Issue
1523	22, // 12: ermite.PendingIssue.created_at:type_name -> google.protobuf.Timestamp
1524	15, // 13: ermite.ListPendingIssuesResponse.issues:type_name -> ermite.PendingIssue
1525	1,  // 14: ermite.ApproveIssueResponse.issue:type_name -> ermite.Issue
1526	3,  // 15: ermite.IssueService.CreateIssue:input_type -> ermite.CreateIssueRequest
1527	5,  // 16: ermite.IssueService.ListIssues:input_type -> ermite.ListIssuesRequest
1528	7,  // 17: ermite.IssueService.GetIssue:input_type -> ermite.GetIssueRequest
1529	9,  // 18: ermite.IssueService.AddIssueComment:input_type -> ermite.AddIssueCommentRequest
1530	11, // 19: ermite.IssueService.CloseIssue:input_type -> ermite.CloseIssueRequest
1531	13, // 20: ermite.IssueService.ReopenIssue:input_type -> ermite.ReopenIssueRequest
1532	16, // 21: ermite.IssueService.ListPendingIssues:input_type -> ermite.ListPendingIssuesRequest
1533	18, // 22: ermite.IssueService.ApproveIssue:input_type -> ermite.ApproveIssueRequest
1534	20, // 23: ermite.IssueService.RejectIssue:input_type -> ermite.RejectIssueRequest
1535	4,  // 24: ermite.IssueService.CreateIssue:output_type -> ermite.CreateIssueResponse
1536	6,  // 25: ermite.IssueService.ListIssues:output_type -> ermite.ListIssuesResponse
1537	8,  // 26: ermite.IssueService.GetIssue:output_type -> ermite.GetIssueResponse
1538	10, // 27: ermite.IssueService.AddIssueComment:output_type -> ermite.AddIssueCommentResponse
1539	12, // 28: ermite.IssueService.CloseIssue:output_type -> ermite.CloseIssueResponse
1540	14, // 29: ermite.IssueService.ReopenIssue:output_type -> ermite.ReopenIssueResponse
1541	17, // 30: ermite.IssueService.ListPendingIssues:output_type -> ermite.ListPendingIssuesResponse
1542	19, // 31: ermite.IssueService.ApproveIssue:output_type -> ermite.ApproveIssueResponse
1543	21, // 32: ermite.IssueService.RejectIssue:output_type -> ermite.RejectIssueResponse
1544	24, // [24:33] is the sub-list for method output_type
1545	15, // [15:24] is the sub-list for method input_type
1546	15, // [15:15] is the sub-list for extension type_name
1547	15, // [15:15] is the sub-list for extension extendee
1548	0,  // [0:15] is the sub-list for field type_name
1549}
1550
1551func init() { file_ermite_issue_proto_init() }
1552func file_ermite_issue_proto_init() {
1553	if File_ermite_issue_proto != nil {
1554		return
1555	}
1556	type x struct{}
1557	out := protoimpl.TypeBuilder{
1558		File: protoimpl.DescBuilder{
1559			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1560			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_issue_proto_rawDesc), len(file_ermite_issue_proto_rawDesc)),
1561			NumEnums:      1,
1562			NumMessages:   21,
1563			NumExtensions: 0,
1564			NumServices:   1,
1565		},
1566		GoTypes:           file_ermite_issue_proto_goTypes,
1567		DependencyIndexes: file_ermite_issue_proto_depIdxs,
1568		EnumInfos:         file_ermite_issue_proto_enumTypes,
1569		MessageInfos:      file_ermite_issue_proto_msgTypes,
1570	}.Build()
1571	File_ermite_issue_proto = out.File
1572	file_ermite_issue_proto_goTypes = nil
1573	file_ermite_issue_proto_depIdxs = nil
1574}

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