v0.8.0 11411cf

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, or "repo:<name>" for one repository. Empty means "home".
32	// Unknown topics are invalid_argument. A "repo:<name>" topic for a repository
33	// that does not exist or is not visible is not_found.
34	Topics []string `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"`
35	// ResumeAfter is the Event.id of the last event the client has seen. Empty
36	// to receive only new events.
37	ResumeAfter   string `protobuf:"bytes,2,opt,name=resume_after,json=resumeAfter,proto3" json:"resume_after,omitempty"`
38	unknownFields protoimpl.UnknownFields
39	sizeCache     protoimpl.SizeCache
40}
41
42func (x *WatchRequest) Reset() {
43	*x = WatchRequest{}
44	mi := &file_ermite_event_proto_msgTypes[0]
45	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
46	ms.StoreMessageInfo(mi)
47}
48
49func (x *WatchRequest) String() string {
50	return protoimpl.X.MessageStringOf(x)
51}
52
53func (*WatchRequest) ProtoMessage() {}
54
55func (x *WatchRequest) ProtoReflect() protoreflect.Message {
56	mi := &file_ermite_event_proto_msgTypes[0]
57	if x != nil {
58		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
59		if ms.LoadMessageInfo() == nil {
60			ms.StoreMessageInfo(mi)
61		}
62		return ms
63	}
64	return mi.MessageOf(x)
65}
66
67// Deprecated: Use WatchRequest.ProtoReflect.Descriptor instead.
68func (*WatchRequest) Descriptor() ([]byte, []int) {
69	return file_ermite_event_proto_rawDescGZIP(), []int{0}
70}
71
72func (x *WatchRequest) GetTopics() []string {
73	if x != nil {
74		return x.Topics
75	}
76	return nil
77}
78
79func (x *WatchRequest) GetResumeAfter() string {
80	if x != nil {
81		return x.ResumeAfter
82	}
83	return ""
84}
85
86// WatchResponse carries one event of the stream.
87type WatchResponse struct {
88	state protoimpl.MessageState `protogen:"open.v1"`
89	// Event is the event.
90	Event         *Event `protobuf:"bytes,1,opt,name=event,proto3" json:"event,omitempty"`
91	unknownFields protoimpl.UnknownFields
92	sizeCache     protoimpl.SizeCache
93}
94
95func (x *WatchResponse) Reset() {
96	*x = WatchResponse{}
97	mi := &file_ermite_event_proto_msgTypes[1]
98	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
99	ms.StoreMessageInfo(mi)
100}
101
102func (x *WatchResponse) String() string {
103	return protoimpl.X.MessageStringOf(x)
104}
105
106func (*WatchResponse) ProtoMessage() {}
107
108func (x *WatchResponse) ProtoReflect() protoreflect.Message {
109	mi := &file_ermite_event_proto_msgTypes[1]
110	if x != nil {
111		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
112		if ms.LoadMessageInfo() == nil {
113			ms.StoreMessageInfo(mi)
114		}
115		return ms
116	}
117	return mi.MessageOf(x)
118}
119
120// Deprecated: Use WatchResponse.ProtoReflect.Descriptor instead.
121func (*WatchResponse) Descriptor() ([]byte, []int) {
122	return file_ermite_event_proto_rawDescGZIP(), []int{1}
123}
124
125func (x *WatchResponse) GetEvent() *Event {
126	if x != nil {
127		return x.Event
128	}
129	return nil
130}
131
132// Event is something that happened on the forge.
133type Event struct {
134	state protoimpl.MessageState `protogen:"open.v1"`
135	// Id identifies the event and is passed as resume_after to resume a stream.
136	// It is opaque and only comparable for equality; clients must not parse it.
137	// Empty on a Gap event.
138	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
139	// Time is when the event happened.
140	Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"`
141	// Kind is the type and payload of the event. New kinds may be added; clients
142	// must ignore kinds they do not know.
143	//
144	// Types that are valid to be assigned to Kind:
145	//
146	//	*Event_RepoCreated
147	//	*Event_RepoUpdated
148	//	*Event_RepoDeleted
149	//	*Event_Pushed
150	//	*Event_Gap
151	//	*Event_MergeRequestOpened
152	//	*Event_MergeRequestMerged
153	//	*Event_MergeRequestClosed
154	//	*Event_CommentAdded
155	//	*Event_RunUpdated
156	//	*Event_JobUpdated
157	//	*Event_CommentEdited
158	//	*Event_CommentDeleted
159	//	*Event_CommentResolved
160	Kind          isEvent_Kind `protobuf_oneof:"kind"`
161	unknownFields protoimpl.UnknownFields
162	sizeCache     protoimpl.SizeCache
163}
164
165func (x *Event) Reset() {
166	*x = Event{}
167	mi := &file_ermite_event_proto_msgTypes[2]
168	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
169	ms.StoreMessageInfo(mi)
170}
171
172func (x *Event) String() string {
173	return protoimpl.X.MessageStringOf(x)
174}
175
176func (*Event) ProtoMessage() {}
177
178func (x *Event) ProtoReflect() protoreflect.Message {
179	mi := &file_ermite_event_proto_msgTypes[2]
180	if x != nil {
181		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
182		if ms.LoadMessageInfo() == nil {
183			ms.StoreMessageInfo(mi)
184		}
185		return ms
186	}
187	return mi.MessageOf(x)
188}
189
190// Deprecated: Use Event.ProtoReflect.Descriptor instead.
191func (*Event) Descriptor() ([]byte, []int) {
192	return file_ermite_event_proto_rawDescGZIP(), []int{2}
193}
194
195func (x *Event) GetId() string {
196	if x != nil {
197		return x.Id
198	}
199	return ""
200}
201
202func (x *Event) GetTime() *timestamppb.Timestamp {
203	if x != nil {
204		return x.Time
205	}
206	return nil
207}
208
209func (x *Event) GetKind() isEvent_Kind {
210	if x != nil {
211		return x.Kind
212	}
213	return nil
214}
215
216func (x *Event) GetRepoCreated() *RepoCreated {
217	if x != nil {
218		if x, ok := x.Kind.(*Event_RepoCreated); ok {
219			return x.RepoCreated
220		}
221	}
222	return nil
223}
224
225func (x *Event) GetRepoUpdated() *RepoUpdated {
226	if x != nil {
227		if x, ok := x.Kind.(*Event_RepoUpdated); ok {
228			return x.RepoUpdated
229		}
230	}
231	return nil
232}
233
234func (x *Event) GetRepoDeleted() *RepoDeleted {
235	if x != nil {
236		if x, ok := x.Kind.(*Event_RepoDeleted); ok {
237			return x.RepoDeleted
238		}
239	}
240	return nil
241}
242
243func (x *Event) GetPushed() *Pushed {
244	if x != nil {
245		if x, ok := x.Kind.(*Event_Pushed); ok {
246			return x.Pushed
247		}
248	}
249	return nil
250}
251
252func (x *Event) GetGap() *Gap {
253	if x != nil {
254		if x, ok := x.Kind.(*Event_Gap); ok {
255			return x.Gap
256		}
257	}
258	return nil
259}
260
261func (x *Event) GetMergeRequestOpened() *MergeRequestOpened {
262	if x != nil {
263		if x, ok := x.Kind.(*Event_MergeRequestOpened); ok {
264			return x.MergeRequestOpened
265		}
266	}
267	return nil
268}
269
270func (x *Event) GetMergeRequestMerged() *MergeRequestMerged {
271	if x != nil {
272		if x, ok := x.Kind.(*Event_MergeRequestMerged); ok {
273			return x.MergeRequestMerged
274		}
275	}
276	return nil
277}
278
279func (x *Event) GetMergeRequestClosed() *MergeRequestClosed {
280	if x != nil {
281		if x, ok := x.Kind.(*Event_MergeRequestClosed); ok {
282			return x.MergeRequestClosed
283		}
284	}
285	return nil
286}
287
288func (x *Event) GetCommentAdded() *CommentAdded {
289	if x != nil {
290		if x, ok := x.Kind.(*Event_CommentAdded); ok {
291			return x.CommentAdded
292		}
293	}
294	return nil
295}
296
297func (x *Event) GetRunUpdated() *RunUpdated {
298	if x != nil {
299		if x, ok := x.Kind.(*Event_RunUpdated); ok {
300			return x.RunUpdated
301		}
302	}
303	return nil
304}
305
306func (x *Event) GetJobUpdated() *JobUpdated {
307	if x != nil {
308		if x, ok := x.Kind.(*Event_JobUpdated); ok {
309			return x.JobUpdated
310		}
311	}
312	return nil
313}
314
315func (x *Event) GetCommentEdited() *CommentEdited {
316	if x != nil {
317		if x, ok := x.Kind.(*Event_CommentEdited); ok {
318			return x.CommentEdited
319		}
320	}
321	return nil
322}
323
324func (x *Event) GetCommentDeleted() *CommentDeleted {
325	if x != nil {
326		if x, ok := x.Kind.(*Event_CommentDeleted); ok {
327			return x.CommentDeleted
328		}
329	}
330	return nil
331}
332
333func (x *Event) GetCommentResolved() *CommentResolved {
334	if x != nil {
335		if x, ok := x.Kind.(*Event_CommentResolved); ok {
336			return x.CommentResolved
337		}
338	}
339	return nil
340}
341
342type isEvent_Kind interface {
343	isEvent_Kind()
344}
345
346type Event_RepoCreated struct {
347	// RepoCreated: a repository was created.
348	RepoCreated *RepoCreated `protobuf:"bytes,3,opt,name=repo_created,json=repoCreated,proto3,oneof"`
349}
350
351type Event_RepoUpdated struct {
352	// RepoUpdated: repository metadata changed.
353	RepoUpdated *RepoUpdated `protobuf:"bytes,4,opt,name=repo_updated,json=repoUpdated,proto3,oneof"`
354}
355
356type Event_RepoDeleted struct {
357	// RepoDeleted: a repository was deleted.
358	RepoDeleted *RepoDeleted `protobuf:"bytes,5,opt,name=repo_deleted,json=repoDeleted,proto3,oneof"`
359}
360
361type Event_Pushed struct {
362	// Pushed: refs of a repository were updated by a push.
363	Pushed *Pushed `protobuf:"bytes,6,opt,name=pushed,proto3,oneof"`
364}
365
366type Event_Gap struct {
367	// Gap: events were lost, reload state.
368	Gap *Gap `protobuf:"bytes,7,opt,name=gap,proto3,oneof"`
369}
370
371type Event_MergeRequestOpened struct {
372	// MergeRequestOpened: a merge request was opened.
373	MergeRequestOpened *MergeRequestOpened `protobuf:"bytes,8,opt,name=merge_request_opened,json=mergeRequestOpened,proto3,oneof"`
374}
375
376type Event_MergeRequestMerged struct {
377	// MergeRequestMerged: a merge request was merged.
378	MergeRequestMerged *MergeRequestMerged `protobuf:"bytes,9,opt,name=merge_request_merged,json=mergeRequestMerged,proto3,oneof"`
379}
380
381type Event_MergeRequestClosed struct {
382	// MergeRequestClosed: a merge request was closed without merging.
383	MergeRequestClosed *MergeRequestClosed `protobuf:"bytes,10,opt,name=merge_request_closed,json=mergeRequestClosed,proto3,oneof"`
384}
385
386type Event_CommentAdded struct {
387	// CommentAdded: a comment was added to a merge request.
388	CommentAdded *CommentAdded `protobuf:"bytes,11,opt,name=comment_added,json=commentAdded,proto3,oneof"`
389}
390
391type Event_RunUpdated struct {
392	// RunUpdated: a CI run was created or changed.
393	RunUpdated *RunUpdated `protobuf:"bytes,12,opt,name=run_updated,json=runUpdated,proto3,oneof"`
394}
395
396type Event_JobUpdated struct {
397	// JobUpdated: a CI job was created or changed.
398	JobUpdated *JobUpdated `protobuf:"bytes,13,opt,name=job_updated,json=jobUpdated,proto3,oneof"`
399}
400
401type Event_CommentEdited struct {
402	// CommentEdited: the text of a merge request comment was changed.
403	CommentEdited *CommentEdited `protobuf:"bytes,14,opt,name=comment_edited,json=commentEdited,proto3,oneof"`
404}
405
406type Event_CommentDeleted struct {
407	// CommentDeleted: a merge request comment was deleted.
408	CommentDeleted *CommentDeleted `protobuf:"bytes,15,opt,name=comment_deleted,json=commentDeleted,proto3,oneof"`
409}
410
411type Event_CommentResolved struct {
412	// CommentResolved: a merge request comment was resolved or unresolved.
413	CommentResolved *CommentResolved `protobuf:"bytes,16,opt,name=comment_resolved,json=commentResolved,proto3,oneof"`
414}
415
416func (*Event_RepoCreated) isEvent_Kind() {}
417
418func (*Event_RepoUpdated) isEvent_Kind() {}
419
420func (*Event_RepoDeleted) isEvent_Kind() {}
421
422func (*Event_Pushed) isEvent_Kind() {}
423
424func (*Event_Gap) isEvent_Kind() {}
425
426func (*Event_MergeRequestOpened) isEvent_Kind() {}
427
428func (*Event_MergeRequestMerged) isEvent_Kind() {}
429
430func (*Event_MergeRequestClosed) isEvent_Kind() {}
431
432func (*Event_CommentAdded) isEvent_Kind() {}
433
434func (*Event_RunUpdated) isEvent_Kind() {}
435
436func (*Event_JobUpdated) isEvent_Kind() {}
437
438func (*Event_CommentEdited) isEvent_Kind() {}
439
440func (*Event_CommentDeleted) isEvent_Kind() {}
441
442func (*Event_CommentResolved) isEvent_Kind() {}
443
444// RepoCreated reports a new repository.
445type RepoCreated struct {
446	state protoimpl.MessageState `protogen:"open.v1"`
447	// Repo is the new repository.
448	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
449	unknownFields protoimpl.UnknownFields
450	sizeCache     protoimpl.SizeCache
451}
452
453func (x *RepoCreated) Reset() {
454	*x = RepoCreated{}
455	mi := &file_ermite_event_proto_msgTypes[3]
456	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
457	ms.StoreMessageInfo(mi)
458}
459
460func (x *RepoCreated) String() string {
461	return protoimpl.X.MessageStringOf(x)
462}
463
464func (*RepoCreated) ProtoMessage() {}
465
466func (x *RepoCreated) ProtoReflect() protoreflect.Message {
467	mi := &file_ermite_event_proto_msgTypes[3]
468	if x != nil {
469		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
470		if ms.LoadMessageInfo() == nil {
471			ms.StoreMessageInfo(mi)
472		}
473		return ms
474	}
475	return mi.MessageOf(x)
476}
477
478// Deprecated: Use RepoCreated.ProtoReflect.Descriptor instead.
479func (*RepoCreated) Descriptor() ([]byte, []int) {
480	return file_ermite_event_proto_rawDescGZIP(), []int{3}
481}
482
483func (x *RepoCreated) GetRepo() *Repo {
484	if x != nil {
485		return x.Repo
486	}
487	return nil
488}
489
490// RepoUpdated reports a metadata change.
491type RepoUpdated struct {
492	state protoimpl.MessageState `protogen:"open.v1"`
493	// Repo is the repository after the change.
494	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
495	unknownFields protoimpl.UnknownFields
496	sizeCache     protoimpl.SizeCache
497}
498
499func (x *RepoUpdated) Reset() {
500	*x = RepoUpdated{}
501	mi := &file_ermite_event_proto_msgTypes[4]
502	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
503	ms.StoreMessageInfo(mi)
504}
505
506func (x *RepoUpdated) String() string {
507	return protoimpl.X.MessageStringOf(x)
508}
509
510func (*RepoUpdated) ProtoMessage() {}
511
512func (x *RepoUpdated) ProtoReflect() protoreflect.Message {
513	mi := &file_ermite_event_proto_msgTypes[4]
514	if x != nil {
515		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
516		if ms.LoadMessageInfo() == nil {
517			ms.StoreMessageInfo(mi)
518		}
519		return ms
520	}
521	return mi.MessageOf(x)
522}
523
524// Deprecated: Use RepoUpdated.ProtoReflect.Descriptor instead.
525func (*RepoUpdated) Descriptor() ([]byte, []int) {
526	return file_ermite_event_proto_rawDescGZIP(), []int{4}
527}
528
529func (x *RepoUpdated) GetRepo() *Repo {
530	if x != nil {
531		return x.Repo
532	}
533	return nil
534}
535
536// RepoDeleted reports a deleted repository.
537type RepoDeleted struct {
538	state protoimpl.MessageState `protogen:"open.v1"`
539	// Repo is the name of the deleted repository.
540	Repo          string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
541	unknownFields protoimpl.UnknownFields
542	sizeCache     protoimpl.SizeCache
543}
544
545func (x *RepoDeleted) Reset() {
546	*x = RepoDeleted{}
547	mi := &file_ermite_event_proto_msgTypes[5]
548	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
549	ms.StoreMessageInfo(mi)
550}
551
552func (x *RepoDeleted) String() string {
553	return protoimpl.X.MessageStringOf(x)
554}
555
556func (*RepoDeleted) ProtoMessage() {}
557
558func (x *RepoDeleted) ProtoReflect() protoreflect.Message {
559	mi := &file_ermite_event_proto_msgTypes[5]
560	if x != nil {
561		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
562		if ms.LoadMessageInfo() == nil {
563			ms.StoreMessageInfo(mi)
564		}
565		return ms
566	}
567	return mi.MessageOf(x)
568}
569
570// Deprecated: Use RepoDeleted.ProtoReflect.Descriptor instead.
571func (*RepoDeleted) Descriptor() ([]byte, []int) {
572	return file_ermite_event_proto_rawDescGZIP(), []int{5}
573}
574
575func (x *RepoDeleted) GetRepo() string {
576	if x != nil {
577		return x.Repo
578	}
579	return ""
580}
581
582// Pushed reports the ref updates of one push.
583type Pushed struct {
584	state protoimpl.MessageState `protogen:"open.v1"`
585	// Repo is the name of the repository.
586	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
587	// RefUpdates are the refs changed by the push.
588	RefUpdates    []*RefUpdate `protobuf:"bytes,2,rep,name=ref_updates,json=refUpdates,proto3" json:"ref_updates,omitempty"`
589	unknownFields protoimpl.UnknownFields
590	sizeCache     protoimpl.SizeCache
591}
592
593func (x *Pushed) Reset() {
594	*x = Pushed{}
595	mi := &file_ermite_event_proto_msgTypes[6]
596	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
597	ms.StoreMessageInfo(mi)
598}
599
600func (x *Pushed) String() string {
601	return protoimpl.X.MessageStringOf(x)
602}
603
604func (*Pushed) ProtoMessage() {}
605
606func (x *Pushed) ProtoReflect() protoreflect.Message {
607	mi := &file_ermite_event_proto_msgTypes[6]
608	if x != nil {
609		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
610		if ms.LoadMessageInfo() == nil {
611			ms.StoreMessageInfo(mi)
612		}
613		return ms
614	}
615	return mi.MessageOf(x)
616}
617
618// Deprecated: Use Pushed.ProtoReflect.Descriptor instead.
619func (*Pushed) Descriptor() ([]byte, []int) {
620	return file_ermite_event_proto_rawDescGZIP(), []int{6}
621}
622
623func (x *Pushed) GetRepo() string {
624	if x != nil {
625		return x.Repo
626	}
627	return ""
628}
629
630func (x *Pushed) GetRefUpdates() []*RefUpdate {
631	if x != nil {
632		return x.RefUpdates
633	}
634	return nil
635}
636
637// RefUpdate is the change of one ref.
638type RefUpdate struct {
639	state protoimpl.MessageState `protogen:"open.v1"`
640	// Ref is the full ref name, for example "refs/heads/main".
641	Ref string `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"`
642	// OldId is the object id before the update. Empty when the ref was created.
643	OldId string `protobuf:"bytes,2,opt,name=old_id,json=oldId,proto3" json:"old_id,omitempty"`
644	// NewId is the object id after the update. Empty when the ref was deleted.
645	NewId         string `protobuf:"bytes,3,opt,name=new_id,json=newId,proto3" json:"new_id,omitempty"`
646	unknownFields protoimpl.UnknownFields
647	sizeCache     protoimpl.SizeCache
648}
649
650func (x *RefUpdate) Reset() {
651	*x = RefUpdate{}
652	mi := &file_ermite_event_proto_msgTypes[7]
653	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
654	ms.StoreMessageInfo(mi)
655}
656
657func (x *RefUpdate) String() string {
658	return protoimpl.X.MessageStringOf(x)
659}
660
661func (*RefUpdate) ProtoMessage() {}
662
663func (x *RefUpdate) ProtoReflect() protoreflect.Message {
664	mi := &file_ermite_event_proto_msgTypes[7]
665	if x != nil {
666		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
667		if ms.LoadMessageInfo() == nil {
668			ms.StoreMessageInfo(mi)
669		}
670		return ms
671	}
672	return mi.MessageOf(x)
673}
674
675// Deprecated: Use RefUpdate.ProtoReflect.Descriptor instead.
676func (*RefUpdate) Descriptor() ([]byte, []int) {
677	return file_ermite_event_proto_rawDescGZIP(), []int{7}
678}
679
680func (x *RefUpdate) GetRef() string {
681	if x != nil {
682		return x.Ref
683	}
684	return ""
685}
686
687func (x *RefUpdate) GetOldId() string {
688	if x != nil {
689		return x.OldId
690	}
691	return ""
692}
693
694func (x *RefUpdate) GetNewId() string {
695	if x != nil {
696		return x.NewId
697	}
698	return ""
699}
700
701// MergeRequestOpened reports a new merge request.
702type MergeRequestOpened struct {
703	state protoimpl.MessageState `protogen:"open.v1"`
704	// MergeRequest is the new merge request.
705	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
706	unknownFields protoimpl.UnknownFields
707	sizeCache     protoimpl.SizeCache
708}
709
710func (x *MergeRequestOpened) Reset() {
711	*x = MergeRequestOpened{}
712	mi := &file_ermite_event_proto_msgTypes[8]
713	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
714	ms.StoreMessageInfo(mi)
715}
716
717func (x *MergeRequestOpened) String() string {
718	return protoimpl.X.MessageStringOf(x)
719}
720
721func (*MergeRequestOpened) ProtoMessage() {}
722
723func (x *MergeRequestOpened) ProtoReflect() protoreflect.Message {
724	mi := &file_ermite_event_proto_msgTypes[8]
725	if x != nil {
726		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
727		if ms.LoadMessageInfo() == nil {
728			ms.StoreMessageInfo(mi)
729		}
730		return ms
731	}
732	return mi.MessageOf(x)
733}
734
735// Deprecated: Use MergeRequestOpened.ProtoReflect.Descriptor instead.
736func (*MergeRequestOpened) Descriptor() ([]byte, []int) {
737	return file_ermite_event_proto_rawDescGZIP(), []int{8}
738}
739
740func (x *MergeRequestOpened) GetMergeRequest() *MergeRequest {
741	if x != nil {
742		return x.MergeRequest
743	}
744	return nil
745}
746
747// MergeRequestMerged reports a merged merge request. It is published before
748// the Pushed event of the target branch.
749type MergeRequestMerged struct {
750	state protoimpl.MessageState `protogen:"open.v1"`
751	// MergeRequest is the merge request after the merge.
752	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
753	unknownFields protoimpl.UnknownFields
754	sizeCache     protoimpl.SizeCache
755}
756
757func (x *MergeRequestMerged) Reset() {
758	*x = MergeRequestMerged{}
759	mi := &file_ermite_event_proto_msgTypes[9]
760	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
761	ms.StoreMessageInfo(mi)
762}
763
764func (x *MergeRequestMerged) String() string {
765	return protoimpl.X.MessageStringOf(x)
766}
767
768func (*MergeRequestMerged) ProtoMessage() {}
769
770func (x *MergeRequestMerged) ProtoReflect() protoreflect.Message {
771	mi := &file_ermite_event_proto_msgTypes[9]
772	if x != nil {
773		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
774		if ms.LoadMessageInfo() == nil {
775			ms.StoreMessageInfo(mi)
776		}
777		return ms
778	}
779	return mi.MessageOf(x)
780}
781
782// Deprecated: Use MergeRequestMerged.ProtoReflect.Descriptor instead.
783func (*MergeRequestMerged) Descriptor() ([]byte, []int) {
784	return file_ermite_event_proto_rawDescGZIP(), []int{9}
785}
786
787func (x *MergeRequestMerged) GetMergeRequest() *MergeRequest {
788	if x != nil {
789		return x.MergeRequest
790	}
791	return nil
792}
793
794// MergeRequestClosed reports a merge request closed without merging.
795type MergeRequestClosed struct {
796	state protoimpl.MessageState `protogen:"open.v1"`
797	// MergeRequest is the merge request after closing.
798	MergeRequest  *MergeRequest `protobuf:"bytes,1,opt,name=merge_request,json=mergeRequest,proto3" json:"merge_request,omitempty"`
799	unknownFields protoimpl.UnknownFields
800	sizeCache     protoimpl.SizeCache
801}
802
803func (x *MergeRequestClosed) Reset() {
804	*x = MergeRequestClosed{}
805	mi := &file_ermite_event_proto_msgTypes[10]
806	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
807	ms.StoreMessageInfo(mi)
808}
809
810func (x *MergeRequestClosed) String() string {
811	return protoimpl.X.MessageStringOf(x)
812}
813
814func (*MergeRequestClosed) ProtoMessage() {}
815
816func (x *MergeRequestClosed) ProtoReflect() protoreflect.Message {
817	mi := &file_ermite_event_proto_msgTypes[10]
818	if x != nil {
819		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
820		if ms.LoadMessageInfo() == nil {
821			ms.StoreMessageInfo(mi)
822		}
823		return ms
824	}
825	return mi.MessageOf(x)
826}
827
828// Deprecated: Use MergeRequestClosed.ProtoReflect.Descriptor instead.
829func (*MergeRequestClosed) Descriptor() ([]byte, []int) {
830	return file_ermite_event_proto_rawDescGZIP(), []int{10}
831}
832
833func (x *MergeRequestClosed) GetMergeRequest() *MergeRequest {
834	if x != nil {
835		return x.MergeRequest
836	}
837	return nil
838}
839
840// CommentAdded reports a new comment on a merge request.
841type CommentAdded struct {
842	state protoimpl.MessageState `protogen:"open.v1"`
843	// Repo is the name of the repository.
844	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
845	// Number is the number of the merge request.
846	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
847	// Comment is the new comment.
848	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
849	unknownFields protoimpl.UnknownFields
850	sizeCache     protoimpl.SizeCache
851}
852
853func (x *CommentAdded) Reset() {
854	*x = CommentAdded{}
855	mi := &file_ermite_event_proto_msgTypes[11]
856	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
857	ms.StoreMessageInfo(mi)
858}
859
860func (x *CommentAdded) String() string {
861	return protoimpl.X.MessageStringOf(x)
862}
863
864func (*CommentAdded) ProtoMessage() {}
865
866func (x *CommentAdded) ProtoReflect() protoreflect.Message {
867	mi := &file_ermite_event_proto_msgTypes[11]
868	if x != nil {
869		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
870		if ms.LoadMessageInfo() == nil {
871			ms.StoreMessageInfo(mi)
872		}
873		return ms
874	}
875	return mi.MessageOf(x)
876}
877
878// Deprecated: Use CommentAdded.ProtoReflect.Descriptor instead.
879func (*CommentAdded) Descriptor() ([]byte, []int) {
880	return file_ermite_event_proto_rawDescGZIP(), []int{11}
881}
882
883func (x *CommentAdded) GetRepo() string {
884	if x != nil {
885		return x.Repo
886	}
887	return ""
888}
889
890func (x *CommentAdded) GetNumber() int64 {
891	if x != nil {
892		return x.Number
893	}
894	return 0
895}
896
897func (x *CommentAdded) GetComment() *Comment {
898	if x != nil {
899		return x.Comment
900	}
901	return nil
902}
903
904// CommentEdited reports a comment of a merge request whose text was changed.
905type CommentEdited struct {
906	state protoimpl.MessageState `protogen:"open.v1"`
907	// Repo is the name of the repository.
908	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
909	// Number is the number of the merge request.
910	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
911	// Comment is the comment after the edit.
912	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
913	unknownFields protoimpl.UnknownFields
914	sizeCache     protoimpl.SizeCache
915}
916
917func (x *CommentEdited) Reset() {
918	*x = CommentEdited{}
919	mi := &file_ermite_event_proto_msgTypes[12]
920	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
921	ms.StoreMessageInfo(mi)
922}
923
924func (x *CommentEdited) String() string {
925	return protoimpl.X.MessageStringOf(x)
926}
927
928func (*CommentEdited) ProtoMessage() {}
929
930func (x *CommentEdited) ProtoReflect() protoreflect.Message {
931	mi := &file_ermite_event_proto_msgTypes[12]
932	if x != nil {
933		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
934		if ms.LoadMessageInfo() == nil {
935			ms.StoreMessageInfo(mi)
936		}
937		return ms
938	}
939	return mi.MessageOf(x)
940}
941
942// Deprecated: Use CommentEdited.ProtoReflect.Descriptor instead.
943func (*CommentEdited) Descriptor() ([]byte, []int) {
944	return file_ermite_event_proto_rawDescGZIP(), []int{12}
945}
946
947func (x *CommentEdited) GetRepo() string {
948	if x != nil {
949		return x.Repo
950	}
951	return ""
952}
953
954func (x *CommentEdited) GetNumber() int64 {
955	if x != nil {
956		return x.Number
957	}
958	return 0
959}
960
961func (x *CommentEdited) GetComment() *Comment {
962	if x != nil {
963		return x.Comment
964	}
965	return nil
966}
967
968// CommentDeleted reports a comment of a merge request that was deleted. The
969// comment stays in the thread with deleted set and an empty text.
970type CommentDeleted struct {
971	state protoimpl.MessageState `protogen:"open.v1"`
972	// Repo is the name of the repository.
973	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
974	// Number is the number of the merge request.
975	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
976	// Comment is the comment after the deletion.
977	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
978	unknownFields protoimpl.UnknownFields
979	sizeCache     protoimpl.SizeCache
980}
981
982func (x *CommentDeleted) Reset() {
983	*x = CommentDeleted{}
984	mi := &file_ermite_event_proto_msgTypes[13]
985	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
986	ms.StoreMessageInfo(mi)
987}
988
989func (x *CommentDeleted) String() string {
990	return protoimpl.X.MessageStringOf(x)
991}
992
993func (*CommentDeleted) ProtoMessage() {}
994
995func (x *CommentDeleted) ProtoReflect() protoreflect.Message {
996	mi := &file_ermite_event_proto_msgTypes[13]
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 CommentDeleted.ProtoReflect.Descriptor instead.
1008func (*CommentDeleted) Descriptor() ([]byte, []int) {
1009	return file_ermite_event_proto_rawDescGZIP(), []int{13}
1010}
1011
1012func (x *CommentDeleted) GetRepo() string {
1013	if x != nil {
1014		return x.Repo
1015	}
1016	return ""
1017}
1018
1019func (x *CommentDeleted) GetNumber() int64 {
1020	if x != nil {
1021		return x.Number
1022	}
1023	return 0
1024}
1025
1026func (x *CommentDeleted) GetComment() *Comment {
1027	if x != nil {
1028		return x.Comment
1029	}
1030	return nil
1031}
1032
1033// CommentResolved reports a comment of a merge request whose resolved state
1034// changed.
1035type CommentResolved struct {
1036	state protoimpl.MessageState `protogen:"open.v1"`
1037	// Repo is the name of the repository.
1038	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1039	// Number is the number of the merge request.
1040	Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
1041	// Comment is the comment after the change.
1042	Comment       *Comment `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
1043	unknownFields protoimpl.UnknownFields
1044	sizeCache     protoimpl.SizeCache
1045}
1046
1047func (x *CommentResolved) Reset() {
1048	*x = CommentResolved{}
1049	mi := &file_ermite_event_proto_msgTypes[14]
1050	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1051	ms.StoreMessageInfo(mi)
1052}
1053
1054func (x *CommentResolved) String() string {
1055	return protoimpl.X.MessageStringOf(x)
1056}
1057
1058func (*CommentResolved) ProtoMessage() {}
1059
1060func (x *CommentResolved) ProtoReflect() protoreflect.Message {
1061	mi := &file_ermite_event_proto_msgTypes[14]
1062	if x != nil {
1063		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1064		if ms.LoadMessageInfo() == nil {
1065			ms.StoreMessageInfo(mi)
1066		}
1067		return ms
1068	}
1069	return mi.MessageOf(x)
1070}
1071
1072// Deprecated: Use CommentResolved.ProtoReflect.Descriptor instead.
1073func (*CommentResolved) Descriptor() ([]byte, []int) {
1074	return file_ermite_event_proto_rawDescGZIP(), []int{14}
1075}
1076
1077func (x *CommentResolved) GetRepo() string {
1078	if x != nil {
1079		return x.Repo
1080	}
1081	return ""
1082}
1083
1084func (x *CommentResolved) GetNumber() int64 {
1085	if x != nil {
1086		return x.Number
1087	}
1088	return 0
1089}
1090
1091func (x *CommentResolved) GetComment() *Comment {
1092	if x != nil {
1093		return x.Comment
1094	}
1095	return nil
1096}
1097
1098// Gap tells the client that events were lost: the requested resume point is
1099// older than the server's buffer. It has no fields. The client should reload
1100// the state it displays (repositories, refs, merge requests and their
1101// comments, CI runs and their jobs) and carry on with the next events.
1102type Gap struct {
1103	state         protoimpl.MessageState `protogen:"open.v1"`
1104	unknownFields protoimpl.UnknownFields
1105	sizeCache     protoimpl.SizeCache
1106}
1107
1108func (x *Gap) Reset() {
1109	*x = Gap{}
1110	mi := &file_ermite_event_proto_msgTypes[15]
1111	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1112	ms.StoreMessageInfo(mi)
1113}
1114
1115func (x *Gap) String() string {
1116	return protoimpl.X.MessageStringOf(x)
1117}
1118
1119func (*Gap) ProtoMessage() {}
1120
1121func (x *Gap) ProtoReflect() protoreflect.Message {
1122	mi := &file_ermite_event_proto_msgTypes[15]
1123	if x != nil {
1124		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1125		if ms.LoadMessageInfo() == nil {
1126			ms.StoreMessageInfo(mi)
1127		}
1128		return ms
1129	}
1130	return mi.MessageOf(x)
1131}
1132
1133// Deprecated: Use Gap.ProtoReflect.Descriptor instead.
1134func (*Gap) Descriptor() ([]byte, []int) {
1135	return file_ermite_event_proto_rawDescGZIP(), []int{15}
1136}
1137
1138// RunUpdated reports a CI run that was created or whose status, conclusion or
1139// timestamps changed. It is delivered on the "repo:<name>" topic only.
1140type RunUpdated struct {
1141	state protoimpl.MessageState `protogen:"open.v1"`
1142	// Run is the run after the change, as of its latest attempt, without jobs.
1143	Run           *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"`
1144	unknownFields protoimpl.UnknownFields
1145	sizeCache     protoimpl.SizeCache
1146}
1147
1148func (x *RunUpdated) Reset() {
1149	*x = RunUpdated{}
1150	mi := &file_ermite_event_proto_msgTypes[16]
1151	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1152	ms.StoreMessageInfo(mi)
1153}
1154
1155func (x *RunUpdated) String() string {
1156	return protoimpl.X.MessageStringOf(x)
1157}
1158
1159func (*RunUpdated) ProtoMessage() {}
1160
1161func (x *RunUpdated) ProtoReflect() protoreflect.Message {
1162	mi := &file_ermite_event_proto_msgTypes[16]
1163	if x != nil {
1164		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1165		if ms.LoadMessageInfo() == nil {
1166			ms.StoreMessageInfo(mi)
1167		}
1168		return ms
1169	}
1170	return mi.MessageOf(x)
1171}
1172
1173// Deprecated: Use RunUpdated.ProtoReflect.Descriptor instead.
1174func (*RunUpdated) Descriptor() ([]byte, []int) {
1175	return file_ermite_event_proto_rawDescGZIP(), []int{16}
1176}
1177
1178func (x *RunUpdated) GetRun() *Run {
1179	if x != nil {
1180		return x.Run
1181	}
1182	return nil
1183}
1184
1185// JobUpdated reports a CI job that was created or whose status, conclusion,
1186// runner or steps changed. It is delivered on the "repo:<name>" topic only.
1187type JobUpdated struct {
1188	state protoimpl.MessageState `protogen:"open.v1"`
1189	// Job is the job after the change, with its steps.
1190	Job           *RunJob `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
1191	unknownFields protoimpl.UnknownFields
1192	sizeCache     protoimpl.SizeCache
1193}
1194
1195func (x *JobUpdated) Reset() {
1196	*x = JobUpdated{}
1197	mi := &file_ermite_event_proto_msgTypes[17]
1198	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1199	ms.StoreMessageInfo(mi)
1200}
1201
1202func (x *JobUpdated) String() string {
1203	return protoimpl.X.MessageStringOf(x)
1204}
1205
1206func (*JobUpdated) ProtoMessage() {}
1207
1208func (x *JobUpdated) ProtoReflect() protoreflect.Message {
1209	mi := &file_ermite_event_proto_msgTypes[17]
1210	if x != nil {
1211		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1212		if ms.LoadMessageInfo() == nil {
1213			ms.StoreMessageInfo(mi)
1214		}
1215		return ms
1216	}
1217	return mi.MessageOf(x)
1218}
1219
1220// Deprecated: Use JobUpdated.ProtoReflect.Descriptor instead.
1221func (*JobUpdated) Descriptor() ([]byte, []int) {
1222	return file_ermite_event_proto_rawDescGZIP(), []int{17}
1223}
1224
1225func (x *JobUpdated) GetJob() *RunJob {
1226	if x != nil {
1227		return x.Job
1228	}
1229	return nil
1230}
1231
1232var File_ermite_event_proto protoreflect.FileDescriptor
1233
1234const file_ermite_event_proto_rawDesc = "" +
1235	"\n" +
1236	"\x12ermite/event.proto\x12\x06ermite\x1a\x1aermite/merge_request.proto\x1a\x11ermite/repo.proto\x1a\x10ermite/run.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"I\n" +
1237	"\fWatchRequest\x12\x16\n" +
1238	"\x06topics\x18\x01 \x03(\tR\x06topics\x12!\n" +
1239	"\fresume_after\x18\x02 \x01(\tR\vresumeAfter\"4\n" +
1240	"\rWatchResponse\x12#\n" +
1241	"\x05event\x18\x01 \x01(\v2\r.ermite.EventR\x05event\"\xac\a\n" +
1242	"\x05Event\x12\x0e\n" +
1243	"\x02id\x18\x01 \x01(\tR\x02id\x12.\n" +
1244	"\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x128\n" +
1245	"\frepo_created\x18\x03 \x01(\v2\x13.ermite.RepoCreatedH\x00R\vrepoCreated\x128\n" +
1246	"\frepo_updated\x18\x04 \x01(\v2\x13.ermite.RepoUpdatedH\x00R\vrepoUpdated\x128\n" +
1247	"\frepo_deleted\x18\x05 \x01(\v2\x13.ermite.RepoDeletedH\x00R\vrepoDeleted\x12(\n" +
1248	"\x06pushed\x18\x06 \x01(\v2\x0e.ermite.PushedH\x00R\x06pushed\x12\x1f\n" +
1249	"\x03gap\x18\a \x01(\v2\v.ermite.GapH\x00R\x03gap\x12N\n" +
1250	"\x14merge_request_opened\x18\b \x01(\v2\x1a.ermite.MergeRequestOpenedH\x00R\x12mergeRequestOpened\x12N\n" +
1251	"\x14merge_request_merged\x18\t \x01(\v2\x1a.ermite.MergeRequestMergedH\x00R\x12mergeRequestMerged\x12N\n" +
1252	"\x14merge_request_closed\x18\n" +
1253	" \x01(\v2\x1a.ermite.MergeRequestClosedH\x00R\x12mergeRequestClosed\x12;\n" +
1254	"\rcomment_added\x18\v \x01(\v2\x14.ermite.CommentAddedH\x00R\fcommentAdded\x125\n" +
1255	"\vrun_updated\x18\f \x01(\v2\x12.ermite.RunUpdatedH\x00R\n" +
1256	"runUpdated\x125\n" +
1257	"\vjob_updated\x18\r \x01(\v2\x12.ermite.JobUpdatedH\x00R\n" +
1258	"jobUpdated\x12>\n" +
1259	"\x0ecomment_edited\x18\x0e \x01(\v2\x15.ermite.CommentEditedH\x00R\rcommentEdited\x12A\n" +
1260	"\x0fcomment_deleted\x18\x0f \x01(\v2\x16.ermite.CommentDeletedH\x00R\x0ecommentDeleted\x12D\n" +
1261	"\x10comment_resolved\x18\x10 \x01(\v2\x17.ermite.CommentResolvedH\x00R\x0fcommentResolvedB\x06\n" +
1262	"\x04kind\"/\n" +
1263	"\vRepoCreated\x12 \n" +
1264	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"/\n" +
1265	"\vRepoUpdated\x12 \n" +
1266	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"!\n" +
1267	"\vRepoDeleted\x12\x12\n" +
1268	"\x04repo\x18\x01 \x01(\tR\x04repo\"P\n" +
1269	"\x06Pushed\x12\x12\n" +
1270	"\x04repo\x18\x01 \x01(\tR\x04repo\x122\n" +
1271	"\vref_updates\x18\x02 \x03(\v2\x11.ermite.RefUpdateR\n" +
1272	"refUpdates\"K\n" +
1273	"\tRefUpdate\x12\x10\n" +
1274	"\x03ref\x18\x01 \x01(\tR\x03ref\x12\x15\n" +
1275	"\x06old_id\x18\x02 \x01(\tR\x05oldId\x12\x15\n" +
1276	"\x06new_id\x18\x03 \x01(\tR\x05newId\"O\n" +
1277	"\x12MergeRequestOpened\x129\n" +
1278	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" +
1279	"\x12MergeRequestMerged\x129\n" +
1280	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"O\n" +
1281	"\x12MergeRequestClosed\x129\n" +
1282	"\rmerge_request\x18\x01 \x01(\v2\x14.ermite.MergeRequestR\fmergeRequest\"e\n" +
1283	"\fCommentAdded\x12\x12\n" +
1284	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1285	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1286	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"f\n" +
1287	"\rCommentEdited\x12\x12\n" +
1288	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1289	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1290	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"g\n" +
1291	"\x0eCommentDeleted\x12\x12\n" +
1292	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1293	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1294	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"h\n" +
1295	"\x0fCommentResolved\x12\x12\n" +
1296	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x16\n" +
1297	"\x06number\x18\x02 \x01(\x03R\x06number\x12)\n" +
1298	"\acomment\x18\x03 \x01(\v2\x0f.ermite.CommentR\acomment\"\x05\n" +
1299	"\x03Gap\"+\n" +
1300	"\n" +
1301	"RunUpdated\x12\x1d\n" +
1302	"\x03run\x18\x01 \x01(\v2\v.ermite.RunR\x03run\".\n" +
1303	"\n" +
1304	"JobUpdated\x12 \n" +
1305	"\x03job\x18\x01 \x01(\v2\x0e.ermite.RunJobR\x03job2F\n" +
1306	"\fEventService\x126\n" +
1307	"\x05Watch\x12\x14.ermite.WatchRequest\x1a\x15.ermite.WatchResponse0\x01Bq\n" +
1308	"\n" +
1309	"com.ermiteB\n" +
1310	"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"
1311
1312var (
1313	file_ermite_event_proto_rawDescOnce sync.Once
1314	file_ermite_event_proto_rawDescData []byte
1315)
1316
1317func file_ermite_event_proto_rawDescGZIP() []byte {
1318	file_ermite_event_proto_rawDescOnce.Do(func() {
1319		file_ermite_event_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)))
1320	})
1321	return file_ermite_event_proto_rawDescData
1322}
1323
1324var file_ermite_event_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
1325var file_ermite_event_proto_goTypes = []any{
1326	(*WatchRequest)(nil),          // 0: ermite.WatchRequest
1327	(*WatchResponse)(nil),         // 1: ermite.WatchResponse
1328	(*Event)(nil),                 // 2: ermite.Event
1329	(*RepoCreated)(nil),           // 3: ermite.RepoCreated
1330	(*RepoUpdated)(nil),           // 4: ermite.RepoUpdated
1331	(*RepoDeleted)(nil),           // 5: ermite.RepoDeleted
1332	(*Pushed)(nil),                // 6: ermite.Pushed
1333	(*RefUpdate)(nil),             // 7: ermite.RefUpdate
1334	(*MergeRequestOpened)(nil),    // 8: ermite.MergeRequestOpened
1335	(*MergeRequestMerged)(nil),    // 9: ermite.MergeRequestMerged
1336	(*MergeRequestClosed)(nil),    // 10: ermite.MergeRequestClosed
1337	(*CommentAdded)(nil),          // 11: ermite.CommentAdded
1338	(*CommentEdited)(nil),         // 12: ermite.CommentEdited
1339	(*CommentDeleted)(nil),        // 13: ermite.CommentDeleted
1340	(*CommentResolved)(nil),       // 14: ermite.CommentResolved
1341	(*Gap)(nil),                   // 15: ermite.Gap
1342	(*RunUpdated)(nil),            // 16: ermite.RunUpdated
1343	(*JobUpdated)(nil),            // 17: ermite.JobUpdated
1344	(*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp
1345	(*Repo)(nil),                  // 19: ermite.Repo
1346	(*MergeRequest)(nil),          // 20: ermite.MergeRequest
1347	(*Comment)(nil),               // 21: ermite.Comment
1348	(*Run)(nil),                   // 22: ermite.Run
1349	(*RunJob)(nil),                // 23: ermite.RunJob
1350}
1351var file_ermite_event_proto_depIdxs = []int32{
1352	2,  // 0: ermite.WatchResponse.event:type_name -> ermite.Event
1353	18, // 1: ermite.Event.time:type_name -> google.protobuf.Timestamp
1354	3,  // 2: ermite.Event.repo_created:type_name -> ermite.RepoCreated
1355	4,  // 3: ermite.Event.repo_updated:type_name -> ermite.RepoUpdated
1356	5,  // 4: ermite.Event.repo_deleted:type_name -> ermite.RepoDeleted
1357	6,  // 5: ermite.Event.pushed:type_name -> ermite.Pushed
1358	15, // 6: ermite.Event.gap:type_name -> ermite.Gap
1359	8,  // 7: ermite.Event.merge_request_opened:type_name -> ermite.MergeRequestOpened
1360	9,  // 8: ermite.Event.merge_request_merged:type_name -> ermite.MergeRequestMerged
1361	10, // 9: ermite.Event.merge_request_closed:type_name -> ermite.MergeRequestClosed
1362	11, // 10: ermite.Event.comment_added:type_name -> ermite.CommentAdded
1363	16, // 11: ermite.Event.run_updated:type_name -> ermite.RunUpdated
1364	17, // 12: ermite.Event.job_updated:type_name -> ermite.JobUpdated
1365	12, // 13: ermite.Event.comment_edited:type_name -> ermite.CommentEdited
1366	13, // 14: ermite.Event.comment_deleted:type_name -> ermite.CommentDeleted
1367	14, // 15: ermite.Event.comment_resolved:type_name -> ermite.CommentResolved
1368	19, // 16: ermite.RepoCreated.repo:type_name -> ermite.Repo
1369	19, // 17: ermite.RepoUpdated.repo:type_name -> ermite.Repo
1370	7,  // 18: ermite.Pushed.ref_updates:type_name -> ermite.RefUpdate
1371	20, // 19: ermite.MergeRequestOpened.merge_request:type_name -> ermite.MergeRequest
1372	20, // 20: ermite.MergeRequestMerged.merge_request:type_name -> ermite.MergeRequest
1373	20, // 21: ermite.MergeRequestClosed.merge_request:type_name -> ermite.MergeRequest
1374	21, // 22: ermite.CommentAdded.comment:type_name -> ermite.Comment
1375	21, // 23: ermite.CommentEdited.comment:type_name -> ermite.Comment
1376	21, // 24: ermite.CommentDeleted.comment:type_name -> ermite.Comment
1377	21, // 25: ermite.CommentResolved.comment:type_name -> ermite.Comment
1378	22, // 26: ermite.RunUpdated.run:type_name -> ermite.Run
1379	23, // 27: ermite.JobUpdated.job:type_name -> ermite.RunJob
1380	0,  // 28: ermite.EventService.Watch:input_type -> ermite.WatchRequest
1381	1,  // 29: ermite.EventService.Watch:output_type -> ermite.WatchResponse
1382	29, // [29:30] is the sub-list for method output_type
1383	28, // [28:29] is the sub-list for method input_type
1384	28, // [28:28] is the sub-list for extension type_name
1385	28, // [28:28] is the sub-list for extension extendee
1386	0,  // [0:28] is the sub-list for field type_name
1387}
1388
1389func init() { file_ermite_event_proto_init() }
1390func file_ermite_event_proto_init() {
1391	if File_ermite_event_proto != nil {
1392		return
1393	}
1394	file_ermite_merge_request_proto_init()
1395	file_ermite_repo_proto_init()
1396	file_ermite_run_proto_init()
1397	file_ermite_event_proto_msgTypes[2].OneofWrappers = []any{
1398		(*Event_RepoCreated)(nil),
1399		(*Event_RepoUpdated)(nil),
1400		(*Event_RepoDeleted)(nil),
1401		(*Event_Pushed)(nil),
1402		(*Event_Gap)(nil),
1403		(*Event_MergeRequestOpened)(nil),
1404		(*Event_MergeRequestMerged)(nil),
1405		(*Event_MergeRequestClosed)(nil),
1406		(*Event_CommentAdded)(nil),
1407		(*Event_RunUpdated)(nil),
1408		(*Event_JobUpdated)(nil),
1409		(*Event_CommentEdited)(nil),
1410		(*Event_CommentDeleted)(nil),
1411		(*Event_CommentResolved)(nil),
1412	}
1413	type x struct{}
1414	out := protoimpl.TypeBuilder{
1415		File: protoimpl.DescBuilder{
1416			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1417			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_event_proto_rawDesc), len(file_ermite_event_proto_rawDesc)),
1418			NumEnums:      0,
1419			NumMessages:   18,
1420			NumExtensions: 0,
1421			NumServices:   1,
1422		},
1423		GoTypes:           file_ermite_event_proto_goTypes,
1424		DependencyIndexes: file_ermite_event_proto_depIdxs,
1425		MessageInfos:      file_ermite_event_proto_msgTypes,
1426	}.Build()
1427	File_ermite_event_proto = out.File
1428	file_ermite_event_proto_goTypes = nil
1429	file_ermite_event_proto_depIdxs = nil
1430}

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