v0.10.0 5e05d65

event.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/event.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// WatchRequest selects the events to receive.
28type WatchRequest struct {
29	state protoimpl.MessageState `protogen:"open.v1"`
30	// Topics are the subjects to follow: "home" for every repository visible to
31	// the caller, "repo:<name>" for one repository, or "owner". Empty means
32	// "home". Unknown topics are invalid_argument. A "repo:<name>" topic for a
33	// repository that does not exist or is not visible is not_found.
34	//
35	// The "owner" topic needs owner rights: root, an owner session, or a token
36	// that holds every scope with no repository or branch limit. Anyone else
37	// gets the same invalid_argument as for an unknown topic, so the topic is
38	// not revealed. It carries the merge request and issue events of every
39	// repository (merge_request_opened, merge_request_merged,
40	// merge_request_closed, comment_added, and the issue events), repo_updated
41	// and repo_deleted, plus issue_submitted, which is delivered nowhere else.
42	Topics []string `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"`
43	// ResumeAfter is the Event.id of the last event the client has seen. Empty
44	// to receive only new events.
45	ResumeAfter   string `protobuf:"bytes,2,opt,name=resume_after,json=resumeAfter,proto3" json:"resume_after,omitempty"`
46	unknownFields protoimpl.UnknownFields
47	sizeCache     protoimpl.SizeCache
48}
49
50func (x *WatchRequest) Reset() {
51	*x = WatchRequest{}
52	mi := &file_ermite_event_proto_msgTypes[0]
53	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
54	ms.StoreMessageInfo(mi)
55}
56
57func (x *WatchRequest) String() string {
58	return protoimpl.X.MessageStringOf(x)
59}
60
61func (*WatchRequest) ProtoMessage() {}
62
63func (x *WatchRequest) ProtoReflect() protoreflect.Message {
64	mi := &file_ermite_event_proto_msgTypes[0]
65	if x != nil {
66		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
67		if ms.LoadMessageInfo() == nil {
68			ms.StoreMessageInfo(mi)
69		}
70		return ms
71	}
72	return mi.MessageOf(x)
73}
74
75// Deprecated: Use WatchRequest.ProtoReflect.Descriptor instead.
76func (*WatchRequest) Descriptor() ([]byte, []int) {
77	return file_ermite_event_proto_rawDescGZIP(), []int{0}
78}
79
80func (x *WatchRequest) GetTopics() []string {
81	if x != nil {
82		return x.Topics
83	}
84	return nil
85}
86
87func (x *WatchRequest) GetResumeAfter() string {
88	if x != nil {
89		return x.ResumeAfter
90	}
91	return ""
92}
93
94// WatchResponse carries one event of the stream.
95type WatchResponse struct {
96	state protoimpl.MessageState `protogen:"open.v1"`
97	// Event is the event.
98	Event         *Event `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"`
99	unknownFields protoimpl.UnknownFields
100	sizeCache     protoimpl.SizeCache
101}
102
103func (x *WatchResponse) Reset() {
104	*x = WatchResponse{}
105	mi := &file_ermite_event_proto_msgTypes[1]
106	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
107	ms.StoreMessageInfo(mi)
108}
109
110func (x *WatchResponse) String() string {
111	return protoimpl.X.MessageStringOf(x)
112}
113
114func (*WatchResponse) ProtoMessage() {}
115
116func (x *WatchResponse) ProtoReflect() protoreflect.Message {
117	mi := &file_ermite_event_proto_msgTypes[1]
118	if x != nil {
119		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
120		if ms.LoadMessageInfo() == nil {
121			ms.StoreMessageInfo(mi)
122		}
123		return ms
124	}
125	return mi.MessageOf(x)
126}
127
128// Deprecated: Use WatchResponse.ProtoReflect.Descriptor instead.
129func (*WatchResponse) Descriptor() ([]byte, []int) {
130	return file_ermite_event_proto_rawDescGZIP(), []int{1}
131}
132
133func (x *WatchResponse) GetEvent() *Event {
134	if x != nil {
135		return x.Event
136	}
137	return nil
138}
139
140// Event is something that happened on the forge.
141type Event struct {
142	state protoimpl.MessageState `protogen:"open.v1"`
143	// Id identifies the event and is passed as resume_after to resume a stream.
144	// It is opaque and only comparable for equality; clients must not parse it.
145	// Empty on a Gap event.
146	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
147	// Time is when the event happened.
148	Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"`
149	// Kind is the type and payload of the event. New kinds may be added; clients
150	// must ignore kinds they do not know.
151	//
152	// Types that are valid to be assigned to Kind:
153	//
154	//	*Event_RepoCreated
155	//	*Event_RepoUpdated
156	//	*Event_RepoDeleted
157	//	*Event_Pushed
158	//	*Event_Gap
159	//	*Event_MergeRequestOpened
160	//	*Event_MergeRequestMerged
161	//	*Event_MergeRequestClosed
162	//	*Event_CommentAdded
163	//	*Event_RunUpdated
164	//	*Event_JobUpdated
165	//	*Event_CommentEdited
166	//	*Event_CommentDeleted
167	//	*Event_CommentResolved
168	//	*Event_IssueOpened
169	//	*Event_IssueClosed
170	//	*Event_IssueReopened
171	//	*Event_IssueCommented
172	//	*Event_IssueSubmitted
173	//	*Event_MergeRequestMergeability
174	Kind          isEvent_Kind `protobuf_oneof:"kind"`
175	unknownFields protoimpl.UnknownFields
176	sizeCache     protoimpl.SizeCache
177}
178
179func (x *Event) Reset() {
180	*x = Event{}
181	mi := &file_ermite_event_proto_msgTypes[2]
182	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
183	ms.StoreMessageInfo(mi)
184}
185
186func (x *Event) String() string {
187	return protoimpl.X.MessageStringOf(x)
188}
189
190func (*Event) ProtoMessage() {}
191
192func (x *Event) ProtoReflect() protoreflect.Message {
193	mi := &file_ermite_event_proto_msgTypes[2]
194	if x != nil {
195		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
196		if ms.LoadMessageInfo() == nil {
197			ms.StoreMessageInfo(mi)
198		}
199		return ms
200	}
201	return mi.MessageOf(x)
202}
203
204// Deprecated: Use Event.ProtoReflect.Descriptor instead.
205func (*Event) Descriptor() ([]byte, []int) {
206	return file_ermite_event_proto_rawDescGZIP(), []int{2}
207}
208
209func (x *Event) GetId() string {
210	if x != nil {
211		return x.Id
212	}
213	return ""
214}
215
216func (x *Event) GetTime() *timestamppb.Timestamp {
217	if x != nil {
218		return x.Time
219	}
220	return nil
221}
222
223func (x *Event) GetKind() isEvent_Kind {
224	if x != nil {
225		return x.Kind
226	}
227	return nil
228}
229
230func (x *Event) GetRepoCreated() *RepoCreated {
231	if x != nil {
232		if x, ok := x.Kind.(*Event_RepoCreated); ok {
233			return x.RepoCreated
234		}
235	}
236	return nil
237}
238
239func (x *Event) GetRepoUpdated() *RepoUpdated {
240	if x != nil {
241		if x, ok := x.Kind.(*Event_RepoUpdated); ok {
242			return x.RepoUpdated
243		}
244	}
245	return nil
246}
247
248func (x *Event) GetRepoDeleted() *RepoDeleted {
249	if x != nil {
250		if x, ok := x.Kind.(*Event_RepoDeleted); ok {
251			return x.RepoDeleted
252		}
253	}
254	return nil
255}
256
257func (x *Event) GetPushed() *Pushed {
258	if x != nil {
259		if x, ok := x.Kind.(*Event_Pushed); ok {
260			return x.Pushed
261		}
262	}
263	return nil
264}
265
266func (x *Event) GetGap() *Gap {
267	if x != nil {
268		if x, ok := x.Kind.(*Event_Gap); ok {
269			return x.Gap
270		}
271	}
272	return nil
273}
274
275func (x *Event) GetMergeRequestOpened() *MergeRequestOpened {
276	if x != nil {
277		if x, ok := x.Kind.(*Event_MergeRequestOpened); ok {
278			return x.MergeRequestOpened
279		}
280	}
281	return nil
282}
283
284func (x *Event) GetMergeRequestMerged() *MergeRequestMerged {
285	if x != nil {
286		if x, ok := x.Kind.(*Event_MergeRequestMerged); ok {
287			return x.MergeRequestMerged
288		}
289	}
290	return nil
291}
292
293func (x *Event) GetMergeRequestClosed() *MergeRequestClosed {
294	if x != nil {
295		if x, ok := x.Kind.(*Event_MergeRequestClosed); ok {
296			return x.MergeRequestClosed
297		}
298	}
299	return nil
300}
301
302func (x *Event) GetCommentAdded() *CommentAdded {
303	if x != nil {
304		if x, ok := x.Kind.(*Event_CommentAdded); ok {
305			return x.CommentAdded
306		}
307	}
308	return nil
309}
310
311func (x *Event) GetRunUpdated() *RunUpdated {
312	if x != nil {
313		if x, ok := x.Kind.(*Event_RunUpdated); ok {
314			return x.RunUpdated
315		}
316	}
317	return nil
318}
319
320func (x *Event) GetJobUpdated() *JobUpdated {
321	if x != nil {
322		if x, ok := x.Kind.(*Event_JobUpdated); ok {
323			return x.JobUpdated
324		}
325	}
326	return nil
327}
328
329func (x *Event) GetCommentEdited() *CommentEdited {
330	if x != nil {
331		if x, ok := x.Kind.(*Event_CommentEdited); ok {
332			return x.CommentEdited
333		}
334	}
335	return nil
336}
337
338func (x *Event) GetCommentDeleted() *CommentDeleted {
339	if x != nil {
340		if x, ok := x.Kind.(*Event_CommentDeleted); ok {
341			return x.CommentDeleted
342		}
343	}
344	return nil
345}
346
347func (x *Event) GetCommentResolved() *CommentResolved {
348	if x != nil {
349		if x, ok := x.Kind.(*Event_CommentResolved); ok {
350			return x.CommentResolved
351		}
352	}
353	return nil
354}
355
356func (x *Event) GetIssueOpened() *IssueOpened {
357	if x != nil {
358		if x, ok := x.Kind.(*Event_IssueOpened); ok {
359			return x.IssueOpened
360		}
361	}
362	return nil
363}
364
365func (x *Event) GetIssueClosed() *IssueClosed {
366	if x != nil {
367		if x, ok := x.Kind.(*Event_IssueClosed); ok {
368			return x.IssueClosed
369		}
370	}
371	return nil
372}
373
374func (x *Event) GetIssueReopened() *IssueReopened {
375	if x != nil {
376		if x, ok := x.Kind.(*Event_IssueReopened); ok {
377			return x.IssueReopened
378		}
379	}
380	return nil
381}
382
383func (x *Event) GetIssueCommented() *IssueCommented {
384	if x != nil {
385		if x, ok := x.Kind.(*Event_IssueCommented); ok {
386			return x.IssueCommented
387		}
388	}
389	return nil
390}
391
392func (x *Event) GetIssueSubmitted() *IssueSubmitted {
393	if x != nil {
394		if x, ok := x.Kind.(*Event_IssueSubmitted); ok {
395			return x.IssueSubmitted
396		}
397	}
398	return nil
399}
400
401func (x *Event) GetMergeRequestMergeability() *MergeRequestMergeability {
402	if x != nil {
403		if x, ok := x.Kind.(*Event_MergeRequestMergeability); ok {
404			return x.MergeRequestMergeability
405		}
406	}
407	return nil
408}
409
410type isEvent_Kind interface {
411	isEvent_Kind()
412}
413
414type Event_RepoCreated struct {
415	// RepoCreated: a repository was created.
416	RepoCreated *RepoCreated `protobuf:"bytes,3,opt,name=repo_created,json=repoCreated,proto3,oneof"`
417}
418
419type Event_RepoUpdated struct {
420	// RepoUpdated: repository metadata changed.
421	RepoUpdated *RepoUpdated `protobuf:"bytes,4,opt,name=repo_updated,json=repoUpdated,proto3,oneof"`
422}
423
424type Event_RepoDeleted struct {
425	// RepoDeleted: a repository was deleted.
426	RepoDeleted *RepoDeleted `protobuf:"bytes,5,opt,name=repo_deleted,json=repoDeleted,proto3,oneof"`
427}
428
429type Event_Pushed struct {
430	// Pushed: refs of a repository were updated by a push.
431	Pushed *Pushed `protobuf:"bytes,6,opt,name=pushed,proto3,oneof"`
432}
433
434type Event_Gap struct {
435	// Gap: events were lost, reload state.
436	Gap *Gap `protobuf:"bytes,7,opt,name=gap,proto3,oneof"`
437}
438
439type Event_MergeRequestOpened struct {
440	// MergeRequestOpened: a merge request was opened.
441	MergeRequestOpened *MergeRequestOpened `protobuf:"bytes,8,opt,name=merge_request_opened,json=mergeRequestOpened,proto3,oneof"`
442}
443
444type Event_MergeRequestMerged struct {
445	// MergeRequestMerged: a merge request was merged.
446	MergeRequestMerged *MergeRequestMerged `protobuf:"bytes,9,opt,name=merge_request_merged,json=mergeRequestMerged,proto3,oneof"`
447}
448
449type Event_MergeRequestClosed struct {
450	// MergeRequestClosed: a merge request was closed without merging.
451	MergeRequestClosed *MergeRequestClosed `protobuf:"bytes,10,opt,name=merge_request_closed,json=mergeRequestClosed,proto3,oneof"`
452}
453
454type Event_CommentAdded struct {
455	// CommentAdded: a comment was added to a merge request.
456	CommentAdded *CommentAdded `protobuf:"bytes,11,opt,name=comment_added,json=commentAdded,proto3,oneof"`
457}
458
459type Event_RunUpdated struct {
460	// RunUpdated: a CI run was created or changed.
461	RunUpdated *RunUpdated `protobuf:"bytes,12,opt,name=run_updated,json=runUpdated,proto3,oneof"`
462}
463
464type Event_JobUpdated struct {
465	// JobUpdated: a CI job was created or changed.
466	JobUpdated *JobUpdated `protobuf:"bytes,13,opt,name=job_updated,json=jobUpdated,proto3,oneof"`
467}
468
469type Event_CommentEdited struct {
470	// CommentEdited: the text of a merge request comment was changed.
471	CommentEdited *CommentEdited `protobuf:"bytes,14,opt,name=comment_edited,json=commentEdited,proto3,oneof"`
472}
473
474type Event_CommentDeleted struct {
475	// CommentDeleted: a merge request comment was deleted.
476	CommentDeleted *CommentDeleted `protobuf:"bytes,15,opt,name=comment_deleted,json=commentDeleted,proto3,oneof"`
477}
478
479type Event_CommentResolved struct {
480	// CommentResolved: a merge request comment was resolved or unresolved.
481	CommentResolved *CommentResolved `protobuf:"bytes,16,opt,name=comment_resolved,json=commentResolved,proto3,oneof"`
482}
483
484type Event_IssueOpened struct {
485	// IssueOpened: an issue was opened.
486	IssueOpened *IssueOpened `protobuf:"bytes,17,opt,name=issue_opened,json=issueOpened,proto3,oneof"`
487}
488
489type Event_IssueClosed struct {
490	// IssueClosed: an issue was closed.
491	IssueClosed *IssueClosed `protobuf:"bytes,18,opt,name=issue_closed,json=issueClosed,proto3,oneof"`
492}
493
494type Event_IssueReopened struct {
495	// IssueReopened: an issue was reopened.
496	IssueReopened *IssueReopened `protobuf:"bytes,19,opt,name=issue_reopened,json=issueReopened,proto3,oneof"`
497}
498
499type Event_IssueCommented struct {
500	// IssueCommented: a comment was added to an issue.
501	IssueCommented *IssueCommented `protobuf:"bytes,20,opt,name=issue_commented,json=issueCommented,proto3,oneof"`
502}
503
504type Event_IssueSubmitted struct {
505	// IssueSubmitted: an issue is awaiting moderation. Delivered only on the
506	// "owner" topic, never on "home" or "repo:<name>", and carries no content.
507	IssueSubmitted *IssueSubmitted `protobuf:"bytes,21,opt,name=issue_submitted,json=issueSubmitted,proto3,oneof"`
508}
509
510type Event_MergeRequestMergeability struct {
511	// MergeRequestMergeability: the mergeability of an open merge request
512	// changed.
513	MergeRequestMergeability *MergeRequestMergeability `protobuf:"bytes,22,opt,name=merge_request_mergeability,json=mergeRequestMergeability,proto3,oneof"`
514}
515
516func (*Event_RepoCreated) isEvent_Kind() {}
517
518func (*Event_RepoUpdated) isEvent_Kind() {}
519
520func (*Event_RepoDeleted) isEvent_Kind() {}
521
522func (*Event_Pushed) isEvent_Kind() {}
523
524func (*Event_Gap) isEvent_Kind() {}
525
526func (*Event_MergeRequestOpened) isEvent_Kind() {}
527
528func (*Event_MergeRequestMerged) isEvent_Kind() {}
529
530func (*Event_MergeRequestClosed) isEvent_Kind() {}
531
532func (*Event_CommentAdded) isEvent_Kind() {}
533
534func (*Event_RunUpdated) isEvent_Kind() {}
535
536func (*Event_JobUpdated) isEvent_Kind() {}
537
538func (*Event_CommentEdited) isEvent_Kind() {}
539
540func (*Event_CommentDeleted) isEvent_Kind() {}
541
542func (*Event_CommentResolved) isEvent_Kind() {}
543
544func (*Event_IssueOpened) isEvent_Kind() {}
545
546func (*Event_IssueClosed) isEvent_Kind() {}
547
548func (*Event_IssueReopened) isEvent_Kind() {}
549
550func (*Event_IssueCommented) isEvent_Kind() {}
551
552func (*Event_IssueSubmitted) isEvent_Kind() {}
553
554func (*Event_MergeRequestMergeability) isEvent_Kind() {}
555
556// RepoCreated reports a new repository.
557type RepoCreated struct {
558	state protoimpl.MessageState `protogen:"open.v1"`
559	// Repo is the new repository.
560	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
561	unknownFields protoimpl.UnknownFields
562	sizeCache     protoimpl.SizeCache
563}
564
565func (x *RepoCreated) Reset() {
566	*x = RepoCreated{}
567	mi := &file_ermite_event_proto_msgTypes[3]
568	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
569	ms.StoreMessageInfo(mi)
570}
571
572func (x *RepoCreated) String() string {
573	return protoimpl.X.MessageStringOf(x)
574}
575
576func (*RepoCreated) ProtoMessage() {}
577
578func (x *RepoCreated) ProtoReflect() protoreflect.Message {
579	mi := &file_ermite_event_proto_msgTypes[3]
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 RepoCreated.ProtoReflect.Descriptor instead.
591func (*RepoCreated) Descriptor() ([]byte, []int) {
592	return file_ermite_event_proto_rawDescGZIP(), []int{3}
593}
594
595func (x *RepoCreated) GetRepo() *Repo {
596	if x != nil {
597		return x.Repo
598	}
599	return nil
600}
601
602// RepoUpdated reports a metadata change.
603type RepoUpdated struct {
604	state protoimpl.MessageState `protogen:"open.v1"`
605	// Repo is the repository after the change.
606	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
607	unknownFields protoimpl.UnknownFields
608	sizeCache     protoimpl.SizeCache
609}
610
611func (x *RepoUpdated) Reset() {
612	*x = RepoUpdated{}
613	mi := &file_ermite_event_proto_msgTypes[4]
614	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
615	ms.StoreMessageInfo(mi)
616}
617
618func (x *RepoUpdated) String() string {
619	return protoimpl.X.MessageStringOf(x)
620}
621
622func (*RepoUpdated) ProtoMessage() {}
623
624func (x *RepoUpdated) ProtoReflect() protoreflect.Message {
625	mi := &file_ermite_event_proto_msgTypes[4]
626	if x != nil {
627		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
628		if ms.LoadMessageInfo() == nil {
629			ms.StoreMessageInfo(mi)
630		}
631		return ms
632	}
633	return mi.MessageOf(x)
634}
635
636// Deprecated: Use RepoUpdated.ProtoReflect.Descriptor instead.
637func (*RepoUpdated) Descriptor() ([]byte, []int) {
638	return file_ermite_event_proto_rawDescGZIP(), []int{4}
639}
640
641func (x *RepoUpdated) GetRepo() *Repo {
642	if x != nil {
643		return x.Repo
644	}
645	return nil
646}
647
648// RepoDeleted reports a deleted repository.
649type RepoDeleted struct {
650	state protoimpl.MessageState `protogen:"open.v1"`
651	// Repo is the name of the deleted repository.
652	Repo          string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
653	unknownFields protoimpl.UnknownFields
654	sizeCache     protoimpl.SizeCache
655}
656
657func (x *RepoDeleted) Reset() {
658	*x = RepoDeleted{}
659	mi := &file_ermite_event_proto_msgTypes[5]
660	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
661	ms.StoreMessageInfo(mi)
662}
663
664func (x *RepoDeleted) String() string {
665	return protoimpl.X.MessageStringOf(x)
666}
667
668func (*RepoDeleted) ProtoMessage() {}
669
670func (x *RepoDeleted) ProtoReflect() protoreflect.Message {
671	mi := &file_ermite_event_proto_msgTypes[5]
672	if x != nil {
673		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
674		if ms.LoadMessageInfo() == nil {
675			ms.StoreMessageInfo(mi)
676		}
677		return ms
678	}
679	return mi.MessageOf(x)
680}
681
682// Deprecated: Use RepoDeleted.ProtoReflect.Descriptor instead.
683func (*RepoDeleted) Descriptor() ([]byte, []int) {
684	return file_ermite_event_proto_rawDescGZIP(), []int{5}
685}
686
687func (x *RepoDeleted) GetRepo() string {
688	if x != nil {
689		return x.Repo
690	}
691	return ""
692}
693
694// Pushed reports the ref updates of one push.
695type Pushed struct {
696	state protoimpl.MessageState `protogen:"open.v1"`
697	// Repo is the name of the repository.
698	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
699	// RefUpdates are the refs changed by the push.
700	RefUpdates    []*RefUpdate `protobuf:"bytes,2,rep,name=ref_updates,json=refUpdates,proto3" json:"ref_updates,omitempty"`
701	unknownFields protoimpl.UnknownFields
702	sizeCache     protoimpl.SizeCache
703}
704
705func (x *Pushed) Reset() {
706	*x = Pushed{}
707	mi := &file_ermite_event_proto_msgTypes[6]
708	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
709	ms.StoreMessageInfo(mi)
710}
711
712func (x *Pushed) String() string {
713	return protoimpl.X.MessageStringOf(x)
714}
715
716func (*Pushed) ProtoMessage() {}
717
718func (x *Pushed) ProtoReflect() protoreflect.Message {
719	mi := &file_ermite_event_proto_msgTypes[6]
720	if x != nil {
721		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
722		if ms.LoadMessageInfo() == nil {
723			ms.StoreMessageInfo(mi)
724		}
725		return ms
726	}
727	return mi.MessageOf(x)
728}
729
730// Deprecated: Use Pushed.ProtoReflect.Descriptor instead.
731func (*Pushed) Descriptor() ([]byte, []int) {
732	return file_ermite_event_proto_rawDescGZIP(), []int{6}
733}
734
735func (x *Pushed) GetRepo() string {
736	if x != nil {
737		return x.Repo
738	}
739	return ""
740}
741
742func (x *Pushed) GetRefUpdates() []*RefUpdate {
743	if x != nil {
744		return x.RefUpdates
745	}
746	return nil
747}
748
749// RefUpdate is the change of one ref.
750type RefUpdate struct {
751	state protoimpl.MessageState `protogen:"open.v1"`
752	// Ref is the full ref name, for example "refs/heads/main".
753	Ref string `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"`
754	// OldId is the object id before the update. Empty when the ref was created.
755	OldId string `protobuf:"bytes,2,opt,name=old_id,json=oldId,proto3" json:"old_id,omitempty"`
756	// NewId is the object id after the update. Empty when the ref was deleted.
757	NewId         string `protobuf:"bytes,3,opt,name=new_id,json=newId,proto3" json:"new_id,omitempty"`
758	unknownFields protoimpl.UnknownFields
759	sizeCache     protoimpl.SizeCache
760}
761
762func (x *RefUpdate) Reset() {
763	*x = RefUpdate{}
764	mi := &file_ermite_event_proto_msgTypes[7]
765	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
766	ms.StoreMessageInfo(mi)
767}
768
769func (x *RefUpdate) String() string {
770	return protoimpl.X.MessageStringOf(x)
771}
772
773func (*RefUpdate) ProtoMessage() {}
774
775func (x *RefUpdate) ProtoReflect() protoreflect.Message {
776	mi := &file_ermite_event_proto_msgTypes[7]
777	if x != nil {
778		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
779		if ms.LoadMessageInfo() == nil {
780			ms.StoreMessageInfo(mi)
781		}
782		return ms
783	}
784	return mi.MessageOf(x)
785}
786
787// Deprecated: Use RefUpdate.ProtoReflect.Descriptor instead.
788func (*RefUpdate) Descriptor() ([]byte, []int) {
789	return file_ermite_event_proto_rawDescGZIP(), []int{7}
790}
791
792func (x *RefUpdate) GetRef() string {
793	if x != nil {
794		return x.Ref
795	}
796	return ""
797}
798
799func (x *RefUpdate) GetOldId() string {
800	if x != nil {
801		return x.OldId
802	}
803	return ""
804}
805
806func (x *RefUpdate) GetNewId() string {
807	if x != nil {
808		return x.NewId
809	}
810	return ""
811}
812
813// MergeRequestOpened reports a new merge request.
814type MergeRequestOpened struct {
815	state protoimpl.MessageState `protogen:"open.v1"`
816	// MergeRequest is the new merge request.
817	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
818	unknownFields protoimpl.UnknownFields
819	sizeCache     protoimpl.SizeCache
820}
821
822func (x *MergeRequestOpened) Reset() {
823	*x = MergeRequestOpened{}
824	mi := &file_ermite_event_proto_msgTypes[8]
825	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
826	ms.StoreMessageInfo(mi)
827}
828
829func (x *MergeRequestOpened) String() string {
830	return protoimpl.X.MessageStringOf(x)
831}
832
833func (*MergeRequestOpened) ProtoMessage() {}
834
835func (x *MergeRequestOpened) ProtoReflect() protoreflect.Message {
836	mi := &file_ermite_event_proto_msgTypes[8]
837	if x != nil {
838		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
839		if ms.LoadMessageInfo() == nil {
840			ms.StoreMessageInfo(mi)
841		}
842		return ms
843	}
844	return mi.MessageOf(x)
845}
846
847// Deprecated: Use MergeRequestOpened.ProtoReflect.Descriptor instead.
848func (*MergeRequestOpened) Descriptor() ([]byte, []int) {
849	return file_ermite_event_proto_rawDescGZIP(), []int{8}
850}
851
852func (x *MergeRequestOpened) GetMergeRequest() *MergeRequest {
853	if x != nil {
854		return x.MergeRequest
855	}
856	return nil
857}
858
859// MergeRequestMerged reports a merged merge request. It is published before
860// the Pushed event of the target branch.
861type MergeRequestMerged struct {
862	state protoimpl.MessageState `protogen:"open.v1"`
863	// MergeRequest is the merge request after the merge.
864	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
865	unknownFields protoimpl.UnknownFields
866	sizeCache     protoimpl.SizeCache
867}
868
869func (x *MergeRequestMerged) Reset() {
870	*x = MergeRequestMerged{}
871	mi := &file_ermite_event_proto_msgTypes[9]
872	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
873	ms.StoreMessageInfo(mi)
874}
875
876func (x *MergeRequestMerged) String() string {
877	return protoimpl.X.MessageStringOf(x)
878}
879
880func (*MergeRequestMerged) ProtoMessage() {}
881
882func (x *MergeRequestMerged) ProtoReflect() protoreflect.Message {
883	mi := &file_ermite_event_proto_msgTypes[9]
884	if x != nil {
885		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
886		if ms.LoadMessageInfo() == nil {
887			ms.StoreMessageInfo(mi)
888		}
889		return ms
890	}
891	return mi.MessageOf(x)
892}
893
894// Deprecated: Use MergeRequestMerged.ProtoReflect.Descriptor instead.
895func (*MergeRequestMerged) Descriptor() ([]byte, []int) {
896	return file_ermite_event_proto_rawDescGZIP(), []int{9}
897}
898
899func (x *MergeRequestMerged) GetMergeRequest() *MergeRequest {
900	if x != nil {
901		return x.MergeRequest
902	}
903	return nil
904}
905
906// MergeRequestMergeability reports the mergeability of an open merge request.
907// It is published each time the server settles a result for new tips of the
908// source or target branch, so the state may be the same as the previous
909// event's. A push that moves neither branch publishes nothing.
910type MergeRequestMergeability struct {
911	state protoimpl.MessageState `protogen:"open.v1"`
912	// Repo is the name of the repository.
913	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
914	// Number is the number of the merge request.
915	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
916	// Mergeability is the new result.
917	Mergeability  *Mergeability `protobuf:"bytes,3,opt,name=mergeability,proto3" json:"mergeability,omitempty"`
918	unknownFields protoimpl.UnknownFields
919	sizeCache     protoimpl.SizeCache
920}
921
922func (x *MergeRequestMergeability) Reset() {
923	*x = MergeRequestMergeability{}
924	mi := &file_ermite_event_proto_msgTypes[10]
925	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
926	ms.StoreMessageInfo(mi)
927}
928
929func (x *MergeRequestMergeability) String() string {
930	return protoimpl.X.MessageStringOf(x)
931}
932
933func (*MergeRequestMergeability) ProtoMessage() {}
934
935func (x *MergeRequestMergeability) ProtoReflect() protoreflect.Message {
936	mi := &file_ermite_event_proto_msgTypes[10]
937	if x != nil {
938		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
939		if ms.LoadMessageInfo() == nil {
940			ms.StoreMessageInfo(mi)
941		}
942		return ms
943	}
944	return mi.MessageOf(x)
945}
946
947// Deprecated: Use MergeRequestMergeability.ProtoReflect.Descriptor instead.
948func (*MergeRequestMergeability) Descriptor() ([]byte, []int) {
949	return file_ermite_event_proto_rawDescGZIP(), []int{10}
950}
951
952func (x *MergeRequestMergeability) GetRepo() string {
953	if x != nil {
954		return x.Repo
955	}
956	return ""
957}
958
959func (x *MergeRequestMergeability) GetNumber() int64 {
960	if x != nil {
961		return x.Number
962	}
963	return 0
964}
965
966func (x *MergeRequestMergeability) GetMergeability() *Mergeability {
967	if x != nil {
968		return x.Mergeability
969	}
970	return nil
971}
972
973// MergeRequestClosed reports a merge request closed without merging.
974type MergeRequestClosed struct {
975	state protoimpl.MessageState `protogen:"open.v1"`
976	// MergeRequest is the merge request after closing.
977	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
978	unknownFields protoimpl.UnknownFields
979	sizeCache     protoimpl.SizeCache
980}
981
982func (x *MergeRequestClosed) Reset() {
983	*x = MergeRequestClosed{}
984	mi := &file_ermite_event_proto_msgTypes[11]
985	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
986	ms.StoreMessageInfo(mi)
987}
988
989func (x *MergeRequestClosed) String() string {
990	return protoimpl.X.MessageStringOf(x)
991}
992
993func (*MergeRequestClosed) ProtoMessage() {}
994
995func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message {
996	mi := &file_ermite_event_proto_msgTypes[11]
997	if x != nil {
998		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
999		if ms.LoadMessageInfo() == nil {
1000			ms.StoreMessageInfo(mi)
1001		}
1002		return ms
1003	}
1004	return mi.MessageOf(x)
1005}
1006
1007// Deprecated: Use MergeRequestClosed.ProtoReflect.Descriptor instead.
1008func (*MergeRequestClosed) Descriptor() ([]byte, []int) {
1009	return file_ermite_event_proto_rawDescGZIP(), []int{11}
1010}
1011
1012func (x *MergeRequestClosed) GetMergeRequest() *MergeRequest {
1013	if x != nil {
1014		return x.MergeRequest
1015	}
1016	return nil
1017}
1018
1019// CommentAdded reports a new comment on a merge request.
1020type CommentAdded struct {
1021	state protoimpl.MessageState `protogen:"open.v1"`
1022	// Repo is the name of the repository.
1023	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1024	// Number is the number of the merge request.
1025	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1026	// Comment is the new comment.
1027	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
1028	unknownFields protoimpl.UnknownFields
1029	sizeCache     protoimpl.SizeCache
1030}
1031
1032func (x *CommentAdded) Reset() {
1033	*x = CommentAdded{}
1034	mi := &file_ermite_event_proto_msgTypes[12]
1035	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1036	ms.StoreMessageInfo(mi)
1037}
1038
1039func (x *CommentAdded) String() string {
1040	return protoimpl.X.MessageStringOf(x)
1041}
1042
1043func (*CommentAdded) ProtoMessage() {}
1044
1045func (x *CommentAdded) ProtoReflect() protoreflect.Message {
1046	mi := &file_ermite_event_proto_msgTypes[12]
1047	if x != nil {
1048		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1049		if ms.LoadMessageInfo() == nil {
1050			ms.StoreMessageInfo(mi)
1051		}
1052		return ms
1053	}
1054	return mi.MessageOf(x)
1055}
1056
1057// Deprecated: Use CommentAdded.ProtoReflect.Descriptor instead.
1058func (*CommentAdded) Descriptor() ([]byte, []int) {
1059	return file_ermite_event_proto_rawDescGZIP(), []int{12}
1060}
1061
1062func (x *CommentAdded) GetRepo() string {
1063	if x != nil {
1064		return x.Repo
1065	}
1066	return ""
1067}
1068
1069func (x *CommentAdded) GetNumber() int64 {
1070	if x != nil {
1071		return x.Number
1072	}
1073	return 0
1074}
1075
1076func (x *CommentAdded) GetComment() *Comment {
1077	if x != nil {
1078		return x.Comment
1079	}
1080	return nil
1081}
1082
1083// CommentEdited reports a comment of a merge request whose text was changed.
1084type CommentEdited struct {
1085	state protoimpl.MessageState `protogen:"open.v1"`
1086	// Repo is the name of the repository.
1087	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1088	// Number is the number of the merge request.
1089	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1090	// Comment is the comment after the edit.
1091	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
1092	unknownFields protoimpl.UnknownFields
1093	sizeCache     protoimpl.SizeCache
1094}
1095
1096func (x *CommentEdited) Reset() {
1097	*x = CommentEdited{}
1098	mi := &file_ermite_event_proto_msgTypes[13]
1099	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1100	ms.StoreMessageInfo(mi)
1101}
1102
1103func (x *CommentEdited) String() string {
1104	return protoimpl.X.MessageStringOf(x)
1105}
1106
1107func (*CommentEdited) ProtoMessage() {}
1108
1109func (x *CommentEdited) ProtoReflect() protoreflect.Message {
1110	mi := &file_ermite_event_proto_msgTypes[13]
1111	if x != nil {
1112		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1113		if ms.LoadMessageInfo() == nil {
1114			ms.StoreMessageInfo(mi)
1115		}
1116		return ms
1117	}
1118	return mi.MessageOf(x)
1119}
1120
1121// Deprecated: Use CommentEdited.ProtoReflect.Descriptor instead.
1122func (*CommentEdited) Descriptor() ([]byte, []int) {
1123	return file_ermite_event_proto_rawDescGZIP(), []int{13}
1124}
1125
1126func (x *CommentEdited) GetRepo() string {
1127	if x != nil {
1128		return x.Repo
1129	}
1130	return ""
1131}
1132
1133func (x *CommentEdited) GetNumber() int64 {
1134	if x != nil {
1135		return x.Number
1136	}
1137	return 0
1138}
1139
1140func (x *CommentEdited) GetComment() *Comment {
1141	if x != nil {
1142		return x.Comment
1143	}
1144	return nil
1145}
1146
1147// CommentDeleted reports a comment of a merge request that was deleted. The
1148// comment stays in the thread with deleted set and an empty text.
1149type CommentDeleted struct {
1150	state protoimpl.MessageState `protogen:"open.v1"`
1151	// Repo is the name of the repository.
1152	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1153	// Number is the number of the merge request.
1154	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1155	// Comment is the comment after the deletion.
1156	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
1157	unknownFields protoimpl.UnknownFields
1158	sizeCache     protoimpl.SizeCache
1159}
1160
1161func (x *CommentDeleted) Reset() {
1162	*x = CommentDeleted{}
1163	mi := &file_ermite_event_proto_msgTypes[14]
1164	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1165	ms.StoreMessageInfo(mi)
1166}
1167
1168func (x *CommentDeleted) String() string {
1169	return protoimpl.X.MessageStringOf(x)
1170}
1171
1172func (*CommentDeleted) ProtoMessage() {}
1173
1174func (x *CommentDeleted) ProtoReflect() protoreflect.Message {
1175	mi := &file_ermite_event_proto_msgTypes[14]
1176	if x != nil {
1177		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1178		if ms.LoadMessageInfo() == nil {
1179			ms.StoreMessageInfo(mi)
1180		}
1181		return ms
1182	}
1183	return mi.MessageOf(x)
1184}
1185
1186// Deprecated: Use CommentDeleted.ProtoReflect.Descriptor instead.
1187func (*CommentDeleted) Descriptor() ([]byte, []int) {
1188	return file_ermite_event_proto_rawDescGZIP(), []int{14}
1189}
1190
1191func (x *CommentDeleted) GetRepo() string {
1192	if x != nil {
1193		return x.Repo
1194	}
1195	return ""
1196}
1197
1198func (x *CommentDeleted) GetNumber() int64 {
1199	if x != nil {
1200		return x.Number
1201	}
1202	return 0
1203}
1204
1205func (x *CommentDeleted) GetComment() *Comment {
1206	if x != nil {
1207		return x.Comment
1208	}
1209	return nil
1210}
1211
1212// CommentResolved reports a comment of a merge request whose resolved state
1213// changed.
1214type CommentResolved struct {
1215	state protoimpl.MessageState `protogen:"open.v1"`
1216	// Repo is the name of the repository.
1217	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1218	// Number is the number of the merge request.
1219	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1220	// Comment is the comment after the change.
1221	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
1222	unknownFields protoimpl.UnknownFields
1223	sizeCache     protoimpl.SizeCache
1224}
1225
1226func (x *CommentResolved) Reset() {
1227	*x = CommentResolved{}
1228	mi := &file_ermite_event_proto_msgTypes[15]
1229	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1230	ms.StoreMessageInfo(mi)
1231}
1232
1233func (x *CommentResolved) String() string {
1234	return protoimpl.X.MessageStringOf(x)
1235}
1236
1237func (*CommentResolved) ProtoMessage() {}
1238
1239func (x *CommentResolved) ProtoReflect() protoreflect.Message {
1240	mi := &file_ermite_event_proto_msgTypes[15]
1241	if x != nil {
1242		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1243		if ms.LoadMessageInfo() == nil {
1244			ms.StoreMessageInfo(mi)
1245		}
1246		return ms
1247	}
1248	return mi.MessageOf(x)
1249}
1250
1251// Deprecated: Use CommentResolved.ProtoReflect.Descriptor instead.
1252func (*CommentResolved) Descriptor() ([]byte, []int) {
1253	return file_ermite_event_proto_rawDescGZIP(), []int{15}
1254}
1255
1256func (x *CommentResolved) GetRepo() string {
1257	if x != nil {
1258		return x.Repo
1259	}
1260	return ""
1261}
1262
1263func (x *CommentResolved) GetNumber() int64 {
1264	if x != nil {
1265		return x.Number
1266	}
1267	return 0
1268}
1269
1270func (x *CommentResolved) GetComment() *Comment {
1271	if x != nil {
1272		return x.Comment
1273	}
1274	return nil
1275}
1276
1277// IssueOpened reports a new issue.
1278type IssueOpened struct {
1279	state protoimpl.MessageState `protogen:"open.v1"`
1280	// Issue is the new issue, including its repository and number.
1281	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
1282	unknownFields protoimpl.UnknownFields
1283	sizeCache     protoimpl.SizeCache
1284}
1285
1286func (x *IssueOpened) Reset() {
1287	*x = IssueOpened{}
1288	mi := &file_ermite_event_proto_msgTypes[16]
1289	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1290	ms.StoreMessageInfo(mi)
1291}
1292
1293func (x *IssueOpened) String() string {
1294	return protoimpl.X.MessageStringOf(x)
1295}
1296
1297func (*IssueOpened) ProtoMessage() {}
1298
1299func (x *IssueOpened) ProtoReflect() protoreflect.Message {
1300	mi := &file_ermite_event_proto_msgTypes[16]
1301	if x != nil {
1302		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1303		if ms.LoadMessageInfo() == nil {
1304			ms.StoreMessageInfo(mi)
1305		}
1306		return ms
1307	}
1308	return mi.MessageOf(x)
1309}
1310
1311// Deprecated: Use IssueOpened.ProtoReflect.Descriptor instead.
1312func (*IssueOpened) Descriptor() ([]byte, []int) {
1313	return file_ermite_event_proto_rawDescGZIP(), []int{16}
1314}
1315
1316func (x *IssueOpened) GetIssue() *Issue {
1317	if x != nil {
1318		return x.Issue
1319	}
1320	return nil
1321}
1322
1323// IssueClosed reports a closed issue.
1324type IssueClosed struct {
1325	state protoimpl.MessageState `protogen:"open.v1"`
1326	// Issue is the issue after closing, including its repository and number.
1327	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
1328	unknownFields protoimpl.UnknownFields
1329	sizeCache     protoimpl.SizeCache
1330}
1331
1332func (x *IssueClosed) Reset() {
1333	*x = IssueClosed{}
1334	mi := &file_ermite_event_proto_msgTypes[17]
1335	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1336	ms.StoreMessageInfo(mi)
1337}
1338
1339func (x *IssueClosed) String() string {
1340	return protoimpl.X.MessageStringOf(x)
1341}
1342
1343func (*IssueClosed) ProtoMessage() {}
1344
1345func (x *IssueClosed) ProtoReflect() protoreflect.Message {
1346	mi := &file_ermite_event_proto_msgTypes[17]
1347	if x != nil {
1348		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1349		if ms.LoadMessageInfo() == nil {
1350			ms.StoreMessageInfo(mi)
1351		}
1352		return ms
1353	}
1354	return mi.MessageOf(x)
1355}
1356
1357// Deprecated: Use IssueClosed.ProtoReflect.Descriptor instead.
1358func (*IssueClosed) Descriptor() ([]byte, []int) {
1359	return file_ermite_event_proto_rawDescGZIP(), []int{17}
1360}
1361
1362func (x *IssueClosed) GetIssue() *Issue {
1363	if x != nil {
1364		return x.Issue
1365	}
1366	return nil
1367}
1368
1369// IssueReopened reports a reopened issue.
1370type IssueReopened struct {
1371	state protoimpl.MessageState `protogen:"open.v1"`
1372	// Issue is the issue after reopening, including its repository and number.
1373	Issue         *Issue `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
1374	unknownFields protoimpl.UnknownFields
1375	sizeCache     protoimpl.SizeCache
1376}
1377
1378func (x *IssueReopened) Reset() {
1379	*x = IssueReopened{}
1380	mi := &file_ermite_event_proto_msgTypes[18]
1381	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1382	ms.StoreMessageInfo(mi)
1383}
1384
1385func (x *IssueReopened) String() string {
1386	return protoimpl.X.MessageStringOf(x)
1387}
1388
1389func (*IssueReopened) ProtoMessage() {}
1390
1391func (x *IssueReopened) ProtoReflect() protoreflect.Message {
1392	mi := &file_ermite_event_proto_msgTypes[18]
1393	if x != nil {
1394		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1395		if ms.LoadMessageInfo() == nil {
1396			ms.StoreMessageInfo(mi)
1397		}
1398		return ms
1399	}
1400	return mi.MessageOf(x)
1401}
1402
1403// Deprecated: Use IssueReopened.ProtoReflect.Descriptor instead.
1404func (*IssueReopened) Descriptor() ([]byte, []int) {
1405	return file_ermite_event_proto_rawDescGZIP(), []int{18}
1406}
1407
1408func (x *IssueReopened) GetIssue() *Issue {
1409	if x != nil {
1410		return x.Issue
1411	}
1412	return nil
1413}
1414
1415// IssueCommented reports a new comment on an issue.
1416type IssueCommented struct {
1417	state protoimpl.MessageState `protogen:"open.v1"`
1418	// Repo is the name of the repository.
1419	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1420	// Number is the number of the issue.
1421	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1422	// Comment is the new comment.
1423	Comment       *IssueComment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
1424	unknownFields protoimpl.UnknownFields
1425	sizeCache     protoimpl.SizeCache
1426}
1427
1428func (x *IssueCommented) Reset() {
1429	*x = IssueCommented{}
1430	mi := &file_ermite_event_proto_msgTypes[19]
1431	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1432	ms.StoreMessageInfo(mi)
1433}
1434
1435func (x *IssueCommented) String() string {
1436	return protoimpl.X.MessageStringOf(x)
1437}
1438
1439func (*IssueCommented) ProtoMessage() {}
1440
1441func (x *IssueCommented) ProtoReflect() protoreflect.Message {
1442	mi := &file_ermite_event_proto_msgTypes[19]
1443	if x != nil {
1444		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1445		if ms.LoadMessageInfo() == nil {
1446			ms.StoreMessageInfo(mi)
1447		}
1448		return ms
1449	}
1450	return mi.MessageOf(x)
1451}
1452
1453// Deprecated: Use IssueCommented.ProtoReflect.Descriptor instead.
1454func (*IssueCommented) Descriptor() ([]byte, []int) {
1455	return file_ermite_event_proto_rawDescGZIP(), []int{19}
1456}
1457
1458func (x *IssueCommented) GetRepo() string {
1459	if x != nil {
1460		return x.Repo
1461	}
1462	return ""
1463}
1464
1465func (x *IssueCommented) GetNumber() int64 {
1466	if x != nil {
1467		return x.Number
1468	}
1469	return 0
1470}
1471
1472func (x *IssueCommented) GetComment() *IssueComment {
1473	if x != nil {
1474		return x.Comment
1475	}
1476	return nil
1477}
1478
1479// IssueSubmitted reports an issue awaiting moderation. It is delivered only
1480// on the "owner" topic, never on "home" or "repo:<name>". It carries no title or body: content never travels in
1481// events, read it with IssueService.ListPendingIssues.
1482type IssueSubmitted struct {
1483	state protoimpl.MessageState `protogen:"open.v1"`
1484	// Repo is the name of the repository.
1485	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1486	// Id is the PendingIssue.id.
1487	Id            string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
1488	unknownFields protoimpl.UnknownFields
1489	sizeCache     protoimpl.SizeCache
1490}
1491
1492func (x *IssueSubmitted) Reset() {
1493	*x = IssueSubmitted{}
1494	mi := &file_ermite_event_proto_msgTypes[20]
1495	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1496	ms.StoreMessageInfo(mi)
1497}
1498
1499func (x *IssueSubmitted) String() string {
1500	return protoimpl.X.MessageStringOf(x)
1501}
1502
1503func (*IssueSubmitted) ProtoMessage() {}
1504
1505func (x *IssueSubmitted) ProtoReflect() protoreflect.Message {
1506	mi := &file_ermite_event_proto_msgTypes[20]
1507	if x != nil {
1508		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1509		if ms.LoadMessageInfo() == nil {
1510			ms.StoreMessageInfo(mi)
1511		}
1512		return ms
1513	}
1514	return mi.MessageOf(x)
1515}
1516
1517// Deprecated: Use IssueSubmitted.ProtoReflect.Descriptor instead.
1518func (*IssueSubmitted) Descriptor() ([]byte, []int) {
1519	return file_ermite_event_proto_rawDescGZIP(), []int{20}
1520}
1521
1522func (x *IssueSubmitted) GetRepo() string {
1523	if x != nil {
1524		return x.Repo
1525	}
1526	return ""
1527}
1528
1529func (x *IssueSubmitted) GetId() string {
1530	if x != nil {
1531		return x.Id
1532	}
1533	return ""
1534}
1535
1536// Gap tells the client that events were lost: the requested resume point is
1537// older than the server's buffer. It has no fields. The client should reload
1538// the state it displays (repositories, refs, merge requests and their
1539// comments, issues and their comments, CI runs and their jobs) and carry on
1540// with the next events.
1541type Gap struct {
1542	state         protoimpl.MessageState `protogen:"open.v1"`
1543	unknownFields protoimpl.UnknownFields
1544	sizeCache     protoimpl.SizeCache
1545}
1546
1547func (x *Gap) Reset() {
1548	*x = Gap{}
1549	mi := &file_ermite_event_proto_msgTypes[21]
1550	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1551	ms.StoreMessageInfo(mi)
1552}
1553
1554func (x *Gap) String() string {
1555	return protoimpl.X.MessageStringOf(x)
1556}
1557
1558func (*Gap) ProtoMessage() {}
1559
1560func (x *Gap) ProtoReflect() protoreflect.Message {
1561	mi := &file_ermite_event_proto_msgTypes[21]
1562	if x != nil {
1563		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1564		if ms.LoadMessageInfo() == nil {
1565			ms.StoreMessageInfo(mi)
1566		}
1567		return ms
1568	}
1569	return mi.MessageOf(x)
1570}
1571
1572// Deprecated: Use Gap.ProtoReflect.Descriptor instead.
1573func (*Gap) Descriptor() ([]byte, []int) {
1574	return file_ermite_event_proto_rawDescGZIP(), []int{21}
1575}
1576
1577// RunUpdated reports a CI run that was created or whose status, conclusion or
1578// timestamps changed. It is delivered on the "repo:<name>" topic only.
1579type RunUpdated struct {
1580	state protoimpl.MessageState `protogen:"open.v1"`
1581	// Run is the run after the change, as of its latest attempt, without jobs.
1582	Run           *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"`
1583	unknownFields protoimpl.UnknownFields
1584	sizeCache     protoimpl.SizeCache
1585}
1586
1587func (x *RunUpdated) Reset() {
1588	*x = RunUpdated{}
1589	mi := &file_ermite_event_proto_msgTypes[22]
1590	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1591	ms.StoreMessageInfo(mi)
1592}
1593
1594func (x *RunUpdated) String() string {
1595	return protoimpl.X.MessageStringOf(x)
1596}
1597
1598func (*RunUpdated) ProtoMessage() {}
1599
1600func (x *RunUpdated) ProtoReflect() protoreflect.Message {
1601	mi := &file_ermite_event_proto_msgTypes[22]
1602	if x != nil {
1603		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1604		if ms.LoadMessageInfo() == nil {
1605			ms.StoreMessageInfo(mi)
1606		}
1607		return ms
1608	}
1609	return mi.MessageOf(x)
1610}
1611
1612// Deprecated: Use RunUpdated.ProtoReflect.Descriptor instead.
1613func (*RunUpdated) Descriptor() ([]byte, []int) {
1614	return file_ermite_event_proto_rawDescGZIP(), []int{22}
1615}
1616
1617func (x *RunUpdated) GetRun() *Run {
1618	if x != nil {
1619		return x.Run
1620	}
1621	return nil
1622}
1623
1624// JobUpdated reports a CI job that was created or whose status, conclusion,
1625// runner or steps changed. It is delivered on the "repo:<name>" topic only.
1626type JobUpdated struct {
1627	state protoimpl.MessageState `protogen:"open.v1"`
1628	// Job is the job after the change, with its steps.
1629	Job           *RunJob `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
1630	unknownFields protoimpl.UnknownFields
1631	sizeCache     protoimpl.SizeCache
1632}
1633
1634func (x *JobUpdated) Reset() {
1635	*x = JobUpdated{}
1636	mi := &file_ermite_event_proto_msgTypes[23]
1637	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1638	ms.StoreMessageInfo(mi)
1639}
1640
1641func (x *JobUpdated) String() string {
1642	return protoimpl.X.MessageStringOf(x)
1643}
1644
1645func (*JobUpdated) ProtoMessage() {}
1646
1647func (x *JobUpdated) ProtoReflect() protoreflect.Message {
1648	mi := &file_ermite_event_proto_msgTypes[23]
1649	if x != nil {
1650		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1651		if ms.LoadMessageInfo() == nil {
1652			ms.StoreMessageInfo(mi)
1653		}
1654		return ms
1655	}
1656	return mi.MessageOf(x)
1657}
1658
1659// Deprecated: Use JobUpdated.ProtoReflect.Descriptor instead.
1660func (*JobUpdated) Descriptor() ([]byte, []int) {
1661	return file_ermite_event_proto_rawDescGZIP(), []int{23}
1662}
1663
1664func (x *JobUpdated) GetJob() *RunJob {
1665	if x != nil {
1666		return x.Job
1667	}
1668	return nil
1669}
1670
1671var File_ermite_event_proto protoreflect.FileDescriptor
1672
1673const file_ermite_event_proto_rawDesc = "" +
1674	"\n" +
1675	"\x12ermite/event.proto\x12\x06ermite\x1a\x12ermite/issue.proto\x1a\x1aermite/merge_request.proto\x1a\x11ermite/repo.proto\x1a\x10ermite/run.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"I\n" +
1676	"\fWatchRequest\x12\x16\n" +
1677	"\x06topics\x18\x01 \x03(\tR\x06topics\x12!\n" +
1678	"\fresume_after\x18\x02 \x01(\tR\vresumeAfter\"4\n" +
1679	"\rWatchResponse\x12#\n" +
1680	"\x05event\x18\x01 \x01(\v2\r.ermite.EventR\x05event\"\xc8\n" +
1681	"\n" +
1682	"\x05Event\x12\x0e\n" +
1683	"\x02id\x18\x01 \x01(\tR\x02id\x12.\n" +
1684	"\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x128\n" +
1685	"\frepo_created\x18\x03 \x01(\v2\x13.ermite.RepoCreatedH\x00R\vrepoCreated\x128\n" +
1686	"\frepo_updated\x18\x04 \x01(\v2\x13.ermite.RepoUpdatedH\x00R\vrepoUpdated\x128\n" +
1687	"\frepo_deleted\x18\x05 \x01(\v2\x13.ermite.RepoDeletedH\x00R\vrepoDeleted\x12(\n" +
1688	"\x06pushed\x18\x06 \x01(\v2\x0e.ermite.PushedH\x00R\x06pushed\x12\x1f\n" +
1689	"\x03gap\x18\a \x01(\v2\v.ermite.GapH\x00R\x03gap\x12N\n" +
1690	"\x14merge_request_opened\x18\b \x01(\v2\x1a.ermite.MergeRequestOpenedH\x00R\x12mergeRequestOpened\x12N\n" +
1691	"\x14merge_request_merged\x18\t \x01(\v2\x1a.ermite.MergeRequestMergedH\x00R\x12mergeRequestMerged\x12N\n" +
1692	"\x14merge_request_closed\x18\n" +
1693	" \x01(\v2\x1a.ermite.MergeRequestClosedH\x00R\x12mergeRequestClosed\x12;\n" +
1694	"\rcomment_added\x18\v \x01(\v2\x14.ermite.CommentAddedH\x00R\fcommentAdded\x125\n" +
1695	"\vrun_updated\x18\f \x01(\v2\x12.ermite.RunUpdatedH\x00R\n" +
1696	"runUpdated\x125\n" +
1697	"\vjob_updated\x18\r \x01(\v2\x12.ermite.JobUpdatedH\x00R\n" +
1698	"jobUpdated\x12>\n" +
1699	"\x0ecomment_edited\x18\x0e \x01(\v2\x15.ermite.CommentEditedH\x00R\rcommentEdited\x12A\n" +
1700	"\x0fcomment_deleted\x18\x0f \x01(\v2\x16.ermite.CommentDeletedH\x00R\x0ecommentDeleted\x12D\n" +
1701	"\x10comment_resolved\x18\x10 \x01(\v2\x17.ermite.CommentResolvedH\x00R\x0fcommentResolved\x128\n" +
1702	"\fissue_opened\x18\x11 \x01(\v2\x13.ermite.IssueOpenedH\x00R\vissueOpened\x128\n" +
1703	"\fissue_closed\x18\x12 \x01(\v2\x13.ermite.IssueClosedH\x00R\vissueClosed\x12>\n" +
1704	"\x0eissue_reopened\x18\x13 \x01(\v2\x15.ermite.IssueReopenedH\x00R\rissueReopened\x12A\n" +
1705	"\x0fissue_commented\x18\x14 \x01(\v2\x16.ermite.IssueCommentedH\x00R\x0eissueCommented\x12A\n" +
1706	"\x0fissue_submitted\x18\x15 \x01(\v2\x16.ermite.IssueSubmittedH\x00R\x0eissueSubmitted\x12`\n" +
1707	"\x1amerge_request_mergeability\x18\x16 \x01(\v2 .ermite.MergeRequestMergeabilityH\x00R\x18mergeRequestMergeabilityB\x06\n" +
1708	"\x04kind\"/\n" +
1709	"\vRepoCreated\x12 \n" +
1710	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"/\n" +
1711	"\vRepoUpdated\x12 \n" +
1712	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"!\n" +
1713	"\vRepoDeleted\x12\x12\n" +
1714	"\x04repo\x18\x01 \x01(\tR\x04repo\"P\n" +
1715	"\x06Pushed\x12\x12\n" +
1716	"\x04repo\x18\x01 \x01(\tR\x04repo\x122\n" +
1717	"\vref_updates\x18\x02 \x03(\v2\x11.ermite.RefUpdateR\n" +
1718	"refUpdates\"K\n" +
1719	"\tRefUpdate\x12\x10\n" +
1720	"\x03ref\x18\x01 \x01(\tR\x03ref\x12\x15\n" +
1721	"\x06old_id\x18\x02 \x01(\tR\x05oldId\x12\x15\n" +
1722	"\x06new_id\x18\x03 \x01(\tR\x05newId\"O\n" +
1723	"\x12MergeRequestOpened\x129\n" +
1724	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" +
1725	"\x12MergeRequestMerged\x129\n" +
1726	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"\x80\x01\n" +
1727	"\x18MergeRequestMergeability\x12\x12\n" +
1728	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1729	"\x06number\x18\x02 \x01(\x03R\x06number\x128\n" +
1730	"\fmergeability\x18\x03 \x01(\v2\x14.ermite.MergeabilityR\fmergeability\"O\n" +
1731	"\x12MergeRequestClosed\x129\n" +
1732	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"e\n" +
1733	"\fCommentAdded\x12\x12\n" +
1734	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1735	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1736	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"f\n" +
1737	"\rCommentEdited\x12\x12\n" +
1738	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1739	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1740	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"g\n" +
1741	"\x0eCommentDeleted\x12\x12\n" +
1742	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1743	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1744	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"h\n" +
1745	"\x0fCommentResolved\x12\x12\n" +
1746	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1747	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1748	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"2\n" +
1749	"\vIssueOpened\x12#\n" +
1750	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"2\n" +
1751	"\vIssueClosed\x12#\n" +
1752	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"4\n" +
1753	"\rIssueReopened\x12#\n" +
1754	"\x05issue\x18\x01 \x01(\v2\r.ermite.IssueR\x05issue\"l\n" +
1755	"\x0eIssueCommented\x12\x12\n" +
1756	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1757	"\x06number\x18\x02 \x01(\x03R\x06number\x12.\n" +
1758	"\acomment\x18\x03 \x01(\v2\x14.ermite.IssueCommentR\acomment\"4\n" +
1759	"\x0eIssueSubmitted\x12\x12\n" +
1760	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x0e\n" +
1761	"\x02id\x18\x02 \x01(\tR\x02id\"\x05\n" +
1762	"\x03Gap\"+\n" +
1763	"\n" +
1764	"RunUpdated\x12\x1d\n" +
1765	"\x03run\x18\x01 \x01(\v2\v.ermite.RunR\x03run\".\n" +
1766	"\n" +
1767	"JobUpdated\x12 \n" +
1768	"\x03job\x18\x01 \x01(\v2\x0e.ermite.RunJobR\x03job2F\n" +
1769	"\fEventService\x126\n" +
1770	"\x05Watch\x12\x14.ermite.WatchRequest\x1a\x15.ermite.WatchResponse0\x01Bq\n" +
1771	"\n" +
1772	"com.ermiteB\n" +
1773	"EventProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
1774
1775var (
1776	file_ermite_event_proto_rawDescOnce sync.Once
1777	file_ermite_event_proto_rawDescData []byte
1778)
1779
1780func file_ermite_event_proto_rawDescGZIP() []byte {
1781	file_ermite_event_proto_rawDescOnce.Do(func() {
1782		file_ermite_event_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)))
1783	})
1784	return file_ermite_event_proto_rawDescData
1785}
1786
1787var file_ermite_event_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
1788var file_ermite_event_proto_goTypes = []any{
1789	(*WatchRequest)(nil),             // 0: ermite.WatchRequest
1790	(*WatchResponse)(nil),            // 1: ermite.WatchResponse
1791	(*Event)(nil),                    // 2: ermite.Event
1792	(*RepoCreated)(nil),              // 3: ermite.RepoCreated
1793	(*RepoUpdated)(nil),              // 4: ermite.RepoUpdated
1794	(*RepoDeleted)(nil),              // 5: ermite.RepoDeleted
1795	(*Pushed)(nil),                   // 6: ermite.Pushed
1796	(*RefUpdate)(nil),                // 7: ermite.RefUpdate
1797	(*MergeRequestOpened)(nil),       // 8: ermite.MergeRequestOpened
1798	(*MergeRequestMerged)(nil),       // 9: ermite.MergeRequestMerged
1799	(*MergeRequestMergeability)(nil), // 10: ermite.MergeRequestMergeability
1800	(*MergeRequestClosed)(nil),       // 11: ermite.MergeRequestClosed
1801	(*CommentAdded)(nil),             // 12: ermite.CommentAdded
1802	(*CommentEdited)(nil),            // 13: ermite.CommentEdited
1803	(*CommentDeleted)(nil),           // 14: ermite.CommentDeleted
1804	(*CommentResolved)(nil),          // 15: ermite.CommentResolved
1805	(*IssueOpened)(nil),              // 16: ermite.IssueOpened
1806	(*IssueClosed)(nil),              // 17: ermite.IssueClosed
1807	(*IssueReopened)(nil),            // 18: ermite.IssueReopened
1808	(*IssueCommented)(nil),           // 19: ermite.IssueCommented
1809	(*IssueSubmitted)(nil),           // 20: ermite.IssueSubmitted
1810	(*Gap)(nil),                      // 21: ermite.Gap
1811	(*RunUpdated)(nil),               // 22: ermite.RunUpdated
1812	(*JobUpdated)(nil),               // 23: ermite.JobUpdated
1813	(*timestamppb.Timestamp)(nil),    // 24: google.protobuf.Timestamp
1814	(*Repo)(nil),                     // 25: ermite.Repo
1815	(*MergeRequest)(nil),             // 26: ermite.MergeRequest
1816	(*Mergeability)(nil),             // 27: ermite.Mergeability
1817	(*Comment)(nil),                  // 28: ermite.Comment
1818	(*Issue)(nil),                    // 29: ermite.Issue
1819	(*IssueComment)(nil),             // 30: ermite.IssueComment
1820	(*Run)(nil),                      // 31: ermite.Run
1821	(*RunJob)(nil),                   // 32: ermite.RunJob
1822}
1823var file_ermite_event_proto_depIdxs = []int32{
1824	2,  // 0: ermite.WatchResponse.event:type_name -> ermite.Event
1825	24, // 1: ermite.Event.time:type_name -> google.protobuf.Timestamp
1826	3,  // 2: ermite.Event.repo_created:type_name -> ermite.RepoCreated
1827	4,  // 3: ermite.Event.repo_updated:type_name -> ermite.RepoUpdated
1828	5,  // 4: ermite.Event.repo_deleted:type_name -> ermite.RepoDeleted
1829	6,  // 5: ermite.Event.pushed:type_name -> ermite.Pushed
1830	21, // 6: ermite.Event.gap:type_name -> ermite.Gap
1831	8,  // 7: ermite.Event.merge_request_opened:type_name -> ermite.MergeRequestOpened
1832	9,  // 8: ermite.Event.merge_request_merged:type_name -> ermite.MergeRequestMerged
1833	11, // 9: ermite.Event.merge_request_closed:type_name -> ermite.MergeRequestClosed
1834	12, // 10: ermite.Event.comment_added:type_name -> ermite.CommentAdded
1835	22, // 11: ermite.Event.run_updated:type_name -> ermite.RunUpdated
1836	23, // 12: ermite.Event.job_updated:type_name -> ermite.JobUpdated
1837	13, // 13: ermite.Event.comment_edited:type_name -> ermite.CommentEdited
1838	14, // 14: ermite.Event.comment_deleted:type_name -> ermite.CommentDeleted
1839	15, // 15: ermite.Event.comment_resolved:type_name -> ermite.CommentResolved
1840	16, // 16: ermite.Event.issue_opened:type_name -> ermite.IssueOpened
1841	17, // 17: ermite.Event.issue_closed:type_name -> ermite.IssueClosed
1842	18, // 18: ermite.Event.issue_reopened:type_name -> ermite.IssueReopened
1843	19, // 19: ermite.Event.issue_commented:type_name -> ermite.IssueCommented
1844	20, // 20: ermite.Event.issue_submitted:type_name -> ermite.IssueSubmitted
1845	10, // 21: ermite.Event.merge_request_mergeability:type_name -> ermite.MergeRequestMergeability
1846	25, // 22: ermite.RepoCreated.repo:type_name -> ermite.Repo
1847	25, // 23: ermite.RepoUpdated.repo:type_name -> ermite.Repo
1848	7,  // 24: ermite.Pushed.ref_updates:type_name -> ermite.RefUpdate
1849	26, // 25: ermite.MergeRequestOpened.merge_request:type_name -> ermite.MergeRequest
1850	26, // 26: ermite.MergeRequestMerged.merge_request:type_name -> ermite.MergeRequest
1851	27, // 27: ermite.MergeRequestMergeability.mergeability:type_name -> ermite.Mergeability
1852	26, // 28: ermite.MergeRequestClosed.merge_request:type_name -> ermite.MergeRequest
1853	28, // 29: ermite.CommentAdded.comment:type_name -> ermite.Comment
1854	28, // 30: ermite.CommentEdited.comment:type_name -> ermite.Comment
1855	28, // 31: ermite.CommentDeleted.comment:type_name -> ermite.Comment
1856	28, // 32: ermite.CommentResolved.comment:type_name -> ermite.Comment
1857	29, // 33: ermite.IssueOpened.issue:type_name -> ermite.Issue
1858	29, // 34: ermite.IssueClosed.issue:type_name -> ermite.Issue
1859	29, // 35: ermite.IssueReopened.issue:type_name -> ermite.Issue
1860	30, // 36: ermite.IssueCommented.comment:type_name -> ermite.IssueComment
1861	31, // 37: ermite.RunUpdated.run:type_name -> ermite.Run
1862	32, // 38: ermite.JobUpdated.job:type_name -> ermite.RunJob
1863	0,  // 39: ermite.EventService.Watch:input_type -> ermite.WatchRequest
1864	1,  // 40: ermite.EventService.Watch:output_type -> ermite.WatchResponse
1865	40, // [40:41] is the sub-list for method output_type
1866	39, // [39:40] is the sub-list for method input_type
1867	39, // [39:39] is the sub-list for extension type_name
1868	39, // [39:39] is the sub-list for extension extendee
1869	0,  // [0:39] is the sub-list for field type_name
1870}
1871
1872func init() { file_ermite_event_proto_init() }
1873func file_ermite_event_proto_init() {
1874	if File_ermite_event_proto != nil {
1875		return
1876	}
1877	file_ermite_issue_proto_init()
1878	file_ermite_merge_request_proto_init()
1879	file_ermite_repo_proto_init()
1880	file_ermite_run_proto_init()
1881	file_ermite_event_proto_msgTypes[2].OneofWrappers = []any{
1882		(*Event_RepoCreated)(nil),
1883		(*Event_RepoUpdated)(nil),
1884		(*Event_RepoDeleted)(nil),
1885		(*Event_Pushed)(nil),
1886		(*Event_Gap)(nil),
1887		(*Event_MergeRequestOpened)(nil),
1888		(*Event_MergeRequestMerged)(nil),
1889		(*Event_MergeRequestClosed)(nil),
1890		(*Event_CommentAdded)(nil),
1891		(*Event_RunUpdated)(nil),
1892		(*Event_JobUpdated)(nil),
1893		(*Event_CommentEdited)(nil),
1894		(*Event_CommentDeleted)(nil),
1895		(*Event_CommentResolved)(nil),
1896		(*Event_IssueOpened)(nil),
1897		(*Event_IssueClosed)(nil),
1898		(*Event_IssueReopened)(nil),
1899		(*Event_IssueCommented)(nil),
1900		(*Event_IssueSubmitted)(nil),
1901		(*Event_MergeRequestMergeability)(nil),
1902	}
1903	type x struct{}
1904	out := protoimpl.TypeBuilder{
1905		File: protoimpl.DescBuilder{
1906			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1907			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)),
1908			NumEnums:      0,
1909			NumMessages:   24,
1910			NumExtensions: 0,
1911			NumServices:   1,
1912		},
1913		GoTypes:           file_ermite_event_proto_goTypes,
1914		DependencyIndexes: file_ermite_event_proto_depIdxs,
1915		MessageInfos:      file_ermite_event_proto_msgTypes,
1916	}.Build()
1917	File_ermite_event_proto = out.File
1918	file_ermite_event_proto_goTypes = nil
1919	file_ermite_event_proto_depIdxs = nil
1920}

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