v0.13.0 b97dc86

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

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