v0.11.0 94ffd87

repo.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/repo.proto
8
9package ermite
10
11import (
12	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
15	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
16	reflect "reflect"
17	sync "sync"
18	unsafe "unsafe"
19)
20
21const (
22	// Verify that this generated code is sufficiently up-to-date.
23	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
24	// Verify that runtime/protoimpl is sufficiently up-to-date.
25	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
26)
27
28// Visibility says who may read a repository.
29type Visibility int32
30
31const (
32	// Not set. In requests, the server applies its default (private on create,
33	// unchanged on update). Never returned by the server.
34	Visibility_VISIBILITY_UNSPECIFIED Visibility = 0
35	// Anyone, including anonymous callers, may read the repository.
36	Visibility_VISIBILITY_PUBLIC Visibility = 1
37	// Only callers holding the repo:read scope on the repository may read it.
38	// Everyone else gets not_found, never permission_denied.
39	Visibility_VISIBILITY_PRIVATE Visibility = 2
40)
41
42// Enum value maps for Visibility.
43var (
44	Visibility_name = map[int32]string{
45		0: "VISIBILITY_UNSPECIFIED",
46		1: "VISIBILITY_PUBLIC",
47		2: "VISIBILITY_PRIVATE",
48	}
49	Visibility_value = map[string]int32{
50		"VISIBILITY_UNSPECIFIED": 0,
51		"VISIBILITY_PUBLIC":      1,
52		"VISIBILITY_PRIVATE":     2,
53	}
54)
55
56func (x Visibility) Enum() *Visibility {
57	p := new(Visibility)
58	*p = x
59	return p
60}
61
62func (x Visibility) String() string {
63	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
64}
65
66func (Visibility) Descriptor() protoreflect.EnumDescriptor {
67	return file_ermite_repo_proto_enumTypes[0].Descriptor()
68}
69
70func (Visibility) Type() protoreflect.EnumType {
71	return &file_ermite_repo_proto_enumTypes[0]
72}
73
74func (x Visibility) Number() protoreflect.EnumNumber {
75	return protoreflect.EnumNumber(x)
76}
77
78// Deprecated: Use Visibility.Descriptor instead.
79func (Visibility) EnumDescriptor() ([]byte, []int) {
80	return file_ermite_repo_proto_rawDescGZIP(), []int{0}
81}
82
83// IssuesMode says who may write issues in a repository.
84type IssuesMode int32
85
86const (
87	// Not set.
88	IssuesMode_ISSUES_MODE_UNSPECIFIED IssuesMode = 0
89	// Issues are disabled.
90	IssuesMode_ISSUES_MODE_OFF IssuesMode = 1
91	// Only the owner may write issues.
92	IssuesMode_ISSUES_MODE_OWNER IssuesMode = 2
93	// Issues are open to public participation.
94	IssuesMode_ISSUES_MODE_PUBLIC IssuesMode = 3
95)
96
97// Enum value maps for IssuesMode.
98var (
99	IssuesMode_name = map[int32]string{
100		0: "ISSUES_MODE_UNSPECIFIED",
101		1: "ISSUES_MODE_OFF",
102		2: "ISSUES_MODE_OWNER",
103		3: "ISSUES_MODE_PUBLIC",
104	}
105	IssuesMode_value = map[string]int32{
106		"ISSUES_MODE_UNSPECIFIED": 0,
107		"ISSUES_MODE_OFF":         1,
108		"ISSUES_MODE_OWNER":       2,
109		"ISSUES_MODE_PUBLIC":      3,
110	}
111)
112
113func (x IssuesMode) Enum() *IssuesMode {
114	p := new(IssuesMode)
115	*p = x
116	return p
117}
118
119func (x IssuesMode) String() string {
120	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
121}
122
123func (IssuesMode) Descriptor() protoreflect.EnumDescriptor {
124	return file_ermite_repo_proto_enumTypes[1].Descriptor()
125}
126
127func (IssuesMode) Type() protoreflect.EnumType {
128	return &file_ermite_repo_proto_enumTypes[1]
129}
130
131func (x IssuesMode) Number() protoreflect.EnumNumber {
132	return protoreflect.EnumNumber(x)
133}
134
135// Deprecated: Use IssuesMode.Descriptor instead.
136func (IssuesMode) EnumDescriptor() ([]byte, []int) {
137	return file_ermite_repo_proto_rawDescGZIP(), []int{1}
138}
139
140// RepoSettings are the settings of a repository that govern its merge
141// requests and issues.
142type RepoSettings struct {
143	state protoimpl.MessageState `protogen:"open.v1"`
144	// AllowedMergeModes are the modes with which a merge request of the
145	// repository may be merged. It is never empty in a response and has no
146	// duplicate. Every mode is allowed by default. MERGE_MODE_UNSPECIFIED is
147	// rejected.
148	AllowedMergeModes []MergeMode `protobuf:"varint,1,rep,packed,name=allowed_merge_modes,json=allowedMergeModes,proto3,enum=ermite.MergeMode" json:"allowed_merge_modes,omitempty"`
149	// FailingChecksBlock says whether a merge request whose checks fail cannot be
150	// merged. It is true at creation of the repository and always stored
151	// explicitly, so a later change of the server default never alters an
152	// existing repository.
153	FailingChecksBlock bool `protobuf:"varint,2,opt,name=failing_checks_block,json=failingChecksBlock,proto3" json:"failing_checks_block,omitempty"`
154	// Issues is the issue participation mode of the repository.
155	Issues        IssuesMode `protobuf:"varint,3,opt,name=issues,proto3,enum=ermite.IssuesMode" json:"issues,omitempty"`
156	unknownFields protoimpl.UnknownFields
157	sizeCache     protoimpl.SizeCache
158}
159
160func (x *RepoSettings) Reset() {
161	*x = RepoSettings{}
162	mi := &file_ermite_repo_proto_msgTypes[0]
163	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
164	ms.StoreMessageInfo(mi)
165}
166
167func (x *RepoSettings) String() string {
168	return protoimpl.X.MessageStringOf(x)
169}
170
171func (*RepoSettings) ProtoMessage() {}
172
173func (x *RepoSettings) ProtoReflect() protoreflect.Message {
174	mi := &file_ermite_repo_proto_msgTypes[0]
175	if x != nil {
176		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
177		if ms.LoadMessageInfo() == nil {
178			ms.StoreMessageInfo(mi)
179		}
180		return ms
181	}
182	return mi.MessageOf(x)
183}
184
185// Deprecated: Use RepoSettings.ProtoReflect.Descriptor instead.
186func (*RepoSettings) Descriptor() ([]byte, []int) {
187	return file_ermite_repo_proto_rawDescGZIP(), []int{0}
188}
189
190func (x *RepoSettings) GetAllowedMergeModes() []MergeMode {
191	if x != nil {
192		return x.AllowedMergeModes
193	}
194	return nil
195}
196
197func (x *RepoSettings) GetFailingChecksBlock() bool {
198	if x != nil {
199		return x.FailingChecksBlock
200	}
201	return false
202}
203
204func (x *RepoSettings) GetIssues() IssuesMode {
205	if x != nil {
206		return x.Issues
207	}
208	return IssuesMode_ISSUES_MODE_UNSPECIFIED
209}
210
211// Repo is the metadata of a repository. Git-owned state (refs, trees, history)
212// is read through GitService.
213type Repo struct {
214	state protoimpl.MessageState `protogen:"open.v1"`
215	// Name is the unique, lowercase repository name: 1-100 characters from
216	// [a-z0-9._-], without a ".git" suffix. It is also the URL path: /<name>.
217	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
218	// Description is a free one-line description. It may be empty.
219	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
220	// Visibility is who may read the repository.
221	Visibility Visibility `protobuf:"varint,3,opt,name=visibility,proto3,enum=ermite.Visibility" json:"visibility,omitempty"`
222	// DefaultBranch is the short name of the branch HEAD points to, for example
223	// "main". It is set even when the branch does not exist yet (empty
224	// repository).
225	DefaultBranch string `protobuf:"bytes,4,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"`
226	// CreatedAt is when the repository was created.
227	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
228	// PushedAt is the time of the last push. It is unset until the first push.
229	PushedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=pushed_at,json=pushedAt,proto3" json:"pushed_at,omitempty"`
230	// Settings are the settings of the repository. Always set in a
231	// response, with the defaults for a repository that never changed them.
232	Settings *RepoSettings `protobuf:"bytes,7,opt,name=settings,proto3" json:"settings,omitempty"`
233	// Topics classify the repository, as on GitHub: at most 20, each 1-50
234	// characters from [a-z0-9-], starting with a letter or a digit, sorted
235	// and without duplicates.
236	Topics        []string `protobuf:"bytes,8,rep,name=topics,proto3" json:"topics,omitempty"`
237	unknownFields protoimpl.UnknownFields
238	sizeCache     protoimpl.SizeCache
239}
240
241func (x *Repo) Reset() {
242	*x = Repo{}
243	mi := &file_ermite_repo_proto_msgTypes[1]
244	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
245	ms.StoreMessageInfo(mi)
246}
247
248func (x *Repo) String() string {
249	return protoimpl.X.MessageStringOf(x)
250}
251
252func (*Repo) ProtoMessage() {}
253
254func (x *Repo) ProtoReflect() protoreflect.Message {
255	mi := &file_ermite_repo_proto_msgTypes[1]
256	if x != nil {
257		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
258		if ms.LoadMessageInfo() == nil {
259			ms.StoreMessageInfo(mi)
260		}
261		return ms
262	}
263	return mi.MessageOf(x)
264}
265
266// Deprecated: Use Repo.ProtoReflect.Descriptor instead.
267func (*Repo) Descriptor() ([]byte, []int) {
268	return file_ermite_repo_proto_rawDescGZIP(), []int{1}
269}
270
271func (x *Repo) GetName() string {
272	if x != nil {
273		return x.Name
274	}
275	return ""
276}
277
278func (x *Repo) GetDescription() string {
279	if x != nil {
280		return x.Description
281	}
282	return ""
283}
284
285func (x *Repo) GetVisibility() Visibility {
286	if x != nil {
287		return x.Visibility
288	}
289	return Visibility_VISIBILITY_UNSPECIFIED
290}
291
292func (x *Repo) GetDefaultBranch() string {
293	if x != nil {
294		return x.DefaultBranch
295	}
296	return ""
297}
298
299func (x *Repo) GetCreatedAt() *timestamppb.Timestamp {
300	if x != nil {
301		return x.CreatedAt
302	}
303	return nil
304}
305
306func (x *Repo) GetPushedAt() *timestamppb.Timestamp {
307	if x != nil {
308		return x.PushedAt
309	}
310	return nil
311}
312
313func (x *Repo) GetSettings() *RepoSettings {
314	if x != nil {
315		return x.Settings
316	}
317	return nil
318}
319
320func (x *Repo) GetTopics() []string {
321	if x != nil {
322		return x.Topics
323	}
324	return nil
325}
326
327// ListReposRequest selects a page of repositories.
328type ListReposRequest struct {
329	state protoimpl.MessageState `protogen:"open.v1"`
330	// PageSize is the maximum number of repositories to return. 0 means the
331	// server default; values above the server maximum are lowered to it.
332	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
333	// PageToken is the next_page_token of a previous response, to get the page
334	// after it. Empty for the first page.
335	PageToken     string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
336	unknownFields protoimpl.UnknownFields
337	sizeCache     protoimpl.SizeCache
338}
339
340func (x *ListReposRequest) Reset() {
341	*x = ListReposRequest{}
342	mi := &file_ermite_repo_proto_msgTypes[2]
343	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
344	ms.StoreMessageInfo(mi)
345}
346
347func (x *ListReposRequest) String() string {
348	return protoimpl.X.MessageStringOf(x)
349}
350
351func (*ListReposRequest) ProtoMessage() {}
352
353func (x *ListReposRequest) ProtoReflect() protoreflect.Message {
354	mi := &file_ermite_repo_proto_msgTypes[2]
355	if x != nil {
356		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
357		if ms.LoadMessageInfo() == nil {
358			ms.StoreMessageInfo(mi)
359		}
360		return ms
361	}
362	return mi.MessageOf(x)
363}
364
365// Deprecated: Use ListReposRequest.ProtoReflect.Descriptor instead.
366func (*ListReposRequest) Descriptor() ([]byte, []int) {
367	return file_ermite_repo_proto_rawDescGZIP(), []int{2}
368}
369
370func (x *ListReposRequest) GetPageSize() int32 {
371	if x != nil {
372		return x.PageSize
373	}
374	return 0
375}
376
377func (x *ListReposRequest) GetPageToken() string {
378	if x != nil {
379		return x.PageToken
380	}
381	return ""
382}
383
384// ListReposResponse is one page of repositories.
385type ListReposResponse struct {
386	state protoimpl.MessageState `protogen:"open.v1"`
387	// Repos are the repositories of this page, ordered by name.
388	Repos []*Repo `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"`
389	// NextPageToken is passed as page_token to get the next page. Empty when
390	// there is no next page.
391	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
392	unknownFields protoimpl.UnknownFields
393	sizeCache     protoimpl.SizeCache
394}
395
396func (x *ListReposResponse) Reset() {
397	*x = ListReposResponse{}
398	mi := &file_ermite_repo_proto_msgTypes[3]
399	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
400	ms.StoreMessageInfo(mi)
401}
402
403func (x *ListReposResponse) String() string {
404	return protoimpl.X.MessageStringOf(x)
405}
406
407func (*ListReposResponse) ProtoMessage() {}
408
409func (x *ListReposResponse) ProtoReflect() protoreflect.Message {
410	mi := &file_ermite_repo_proto_msgTypes[3]
411	if x != nil {
412		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
413		if ms.LoadMessageInfo() == nil {
414			ms.StoreMessageInfo(mi)
415		}
416		return ms
417	}
418	return mi.MessageOf(x)
419}
420
421// Deprecated: Use ListReposResponse.ProtoReflect.Descriptor instead.
422func (*ListReposResponse) Descriptor() ([]byte, []int) {
423	return file_ermite_repo_proto_rawDescGZIP(), []int{3}
424}
425
426func (x *ListReposResponse) GetRepos() []*Repo {
427	if x != nil {
428		return x.Repos
429	}
430	return nil
431}
432
433func (x *ListReposResponse) GetNextPageToken() string {
434	if x != nil {
435		return x.NextPageToken
436	}
437	return ""
438}
439
440// GetRepoRequest names the repository to read.
441type GetRepoRequest struct {
442	state protoimpl.MessageState `protogen:"open.v1"`
443	// Repo is the repository name.
444	Repo          string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
445	unknownFields protoimpl.UnknownFields
446	sizeCache     protoimpl.SizeCache
447}
448
449func (x *GetRepoRequest) Reset() {
450	*x = GetRepoRequest{}
451	mi := &file_ermite_repo_proto_msgTypes[4]
452	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
453	ms.StoreMessageInfo(mi)
454}
455
456func (x *GetRepoRequest) String() string {
457	return protoimpl.X.MessageStringOf(x)
458}
459
460func (*GetRepoRequest) ProtoMessage() {}
461
462func (x *GetRepoRequest) ProtoReflect() protoreflect.Message {
463	mi := &file_ermite_repo_proto_msgTypes[4]
464	if x != nil {
465		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
466		if ms.LoadMessageInfo() == nil {
467			ms.StoreMessageInfo(mi)
468		}
469		return ms
470	}
471	return mi.MessageOf(x)
472}
473
474// Deprecated: Use GetRepoRequest.ProtoReflect.Descriptor instead.
475func (*GetRepoRequest) Descriptor() ([]byte, []int) {
476	return file_ermite_repo_proto_rawDescGZIP(), []int{4}
477}
478
479func (x *GetRepoRequest) GetRepo() string {
480	if x != nil {
481		return x.Repo
482	}
483	return ""
484}
485
486// GetRepoResponse holds the repository.
487type GetRepoResponse struct {
488	state protoimpl.MessageState `protogen:"open.v1"`
489	// Repo is the repository metadata.
490	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
491	unknownFields protoimpl.UnknownFields
492	sizeCache     protoimpl.SizeCache
493}
494
495func (x *GetRepoResponse) Reset() {
496	*x = GetRepoResponse{}
497	mi := &file_ermite_repo_proto_msgTypes[5]
498	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
499	ms.StoreMessageInfo(mi)
500}
501
502func (x *GetRepoResponse) String() string {
503	return protoimpl.X.MessageStringOf(x)
504}
505
506func (*GetRepoResponse) ProtoMessage() {}
507
508func (x *GetRepoResponse) ProtoReflect() protoreflect.Message {
509	mi := &file_ermite_repo_proto_msgTypes[5]
510	if x != nil {
511		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
512		if ms.LoadMessageInfo() == nil {
513			ms.StoreMessageInfo(mi)
514		}
515		return ms
516	}
517	return mi.MessageOf(x)
518}
519
520// Deprecated: Use GetRepoResponse.ProtoReflect.Descriptor instead.
521func (*GetRepoResponse) Descriptor() ([]byte, []int) {
522	return file_ermite_repo_proto_rawDescGZIP(), []int{5}
523}
524
525func (x *GetRepoResponse) GetRepo() *Repo {
526	if x != nil {
527		return x.Repo
528	}
529	return nil
530}
531
532// CreateRepoRequest describes the repository to create.
533type CreateRepoRequest struct {
534	state protoimpl.MessageState `protogen:"open.v1"`
535	// Name is the name of the new repository. Names are lowercase; an uppercase
536	// name is rejected with invalid_argument.
537	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
538	// Description is an optional one-line description.
539	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
540	// Visibility of the new repository. VISIBILITY_UNSPECIFIED means private.
541	Visibility Visibility `protobuf:"varint,3,opt,name=visibility,proto3,enum=ermite.Visibility" json:"visibility,omitempty"`
542	// Topics are the optional topics of the new repository (see Repo.topics);
543	// they are lowercased, sorted and deduplicated.
544	Topics        []string `protobuf:"bytes,4,rep,name=topics,proto3" json:"topics,omitempty"`
545	unknownFields protoimpl.UnknownFields
546	sizeCache     protoimpl.SizeCache
547}
548
549func (x *CreateRepoRequest) Reset() {
550	*x = CreateRepoRequest{}
551	mi := &file_ermite_repo_proto_msgTypes[6]
552	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
553	ms.StoreMessageInfo(mi)
554}
555
556func (x *CreateRepoRequest) String() string {
557	return protoimpl.X.MessageStringOf(x)
558}
559
560func (*CreateRepoRequest) ProtoMessage() {}
561
562func (x *CreateRepoRequest) ProtoReflect() protoreflect.Message {
563	mi := &file_ermite_repo_proto_msgTypes[6]
564	if x != nil {
565		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
566		if ms.LoadMessageInfo() == nil {
567			ms.StoreMessageInfo(mi)
568		}
569		return ms
570	}
571	return mi.MessageOf(x)
572}
573
574// Deprecated: Use CreateRepoRequest.ProtoReflect.Descriptor instead.
575func (*CreateRepoRequest) Descriptor() ([]byte, []int) {
576	return file_ermite_repo_proto_rawDescGZIP(), []int{6}
577}
578
579func (x *CreateRepoRequest) GetName() string {
580	if x != nil {
581		return x.Name
582	}
583	return ""
584}
585
586func (x *CreateRepoRequest) GetDescription() string {
587	if x != nil {
588		return x.Description
589	}
590	return ""
591}
592
593func (x *CreateRepoRequest) GetVisibility() Visibility {
594	if x != nil {
595		return x.Visibility
596	}
597	return Visibility_VISIBILITY_UNSPECIFIED
598}
599
600func (x *CreateRepoRequest) GetTopics() []string {
601	if x != nil {
602		return x.Topics
603	}
604	return nil
605}
606
607// CreateRepoResponse holds the new repository.
608type CreateRepoResponse struct {
609	state protoimpl.MessageState `protogen:"open.v1"`
610	// Repo is the created repository.
611	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
612	unknownFields protoimpl.UnknownFields
613	sizeCache     protoimpl.SizeCache
614}
615
616func (x *CreateRepoResponse) Reset() {
617	*x = CreateRepoResponse{}
618	mi := &file_ermite_repo_proto_msgTypes[7]
619	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
620	ms.StoreMessageInfo(mi)
621}
622
623func (x *CreateRepoResponse) String() string {
624	return protoimpl.X.MessageStringOf(x)
625}
626
627func (*CreateRepoResponse) ProtoMessage() {}
628
629func (x *CreateRepoResponse) ProtoReflect() protoreflect.Message {
630	mi := &file_ermite_repo_proto_msgTypes[7]
631	if x != nil {
632		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
633		if ms.LoadMessageInfo() == nil {
634			ms.StoreMessageInfo(mi)
635		}
636		return ms
637	}
638	return mi.MessageOf(x)
639}
640
641// Deprecated: Use CreateRepoResponse.ProtoReflect.Descriptor instead.
642func (*CreateRepoResponse) Descriptor() ([]byte, []int) {
643	return file_ermite_repo_proto_rawDescGZIP(), []int{7}
644}
645
646func (x *CreateRepoResponse) GetRepo() *Repo {
647	if x != nil {
648		return x.Repo
649	}
650	return nil
651}
652
653// UpdateRepoRequest changes some fields of a repository.
654type UpdateRepoRequest struct {
655	state protoimpl.MessageState `protogen:"open.v1"`
656	// Repo is the name of the repository to change. Repositories cannot be
657	// renamed.
658	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
659	// Description is the new description. Used only if update_mask contains
660	// "description"; an empty value then clears it.
661	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
662	// Visibility is the new visibility. Used only if update_mask contains
663	// "visibility"; it must not be VISIBILITY_UNSPECIFIED then.
664	Visibility Visibility `protobuf:"varint,3,opt,name=visibility,proto3,enum=ermite.Visibility" json:"visibility,omitempty"`
665	// DefaultBranch is the short name of the new default branch. Used only if
666	// update_mask contains "default_branch". The branch must exist, otherwise
667	// the call fails with failed_precondition.
668	DefaultBranch string `protobuf:"bytes,4,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"`
669	// UpdateMask lists the fields to change: "description", "visibility",
670	// "default_branch", "topics", "settings.allowed_merge_modes" and/or
671	// "settings.failing_checks_block". "settings" stands for both merge settings
672	// paths. It must not be empty unless issues is set. Other paths are
673	// invalid_argument, including "settings.issues" and "issues": the issues
674	// field is applied outside the mask.
675	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
676	// Settings holds the new merge settings. Only the fields named in
677	// update_mask are used. allowed_merge_modes must then not be empty nor
678	// contain MERGE_MODE_UNSPECIFIED, otherwise the call fails with
679	// invalid_argument. Changing settings needs the repo:admin scope, like any
680	// other field.
681	Settings *RepoSettings `protobuf:"bytes,6,opt,name=settings,proto3" json:"settings,omitempty"`
682	// Topics replace the topics of the repository (see Repo.topics). Used only
683	// if update_mask contains "topics"; an empty list then clears them.
684	Topics []string `protobuf:"bytes,7,rep,name=topics,proto3" json:"topics,omitempty"`
685	// Issues is the new issue participation mode. When absent it is unchanged.
686	// It is applied whatever update_mask contains, and may be the only change
687	// (an empty update_mask is then valid). When present it must not be
688	// ISSUES_MODE_UNSPECIFIED: that is invalid_argument. Changing it needs the
689	// repo:admin scope and a token with no branch limit, like any other field.
690	Issues        *IssuesMode `protobuf:"varint,8,opt,name=issues,proto3,enum=ermite.IssuesMode,oneof" json:"issues,omitempty"`
691	unknownFields protoimpl.UnknownFields
692	sizeCache     protoimpl.SizeCache
693}
694
695func (x *UpdateRepoRequest) Reset() {
696	*x = UpdateRepoRequest{}
697	mi := &file_ermite_repo_proto_msgTypes[8]
698	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
699	ms.StoreMessageInfo(mi)
700}
701
702func (x *UpdateRepoRequest) String() string {
703	return protoimpl.X.MessageStringOf(x)
704}
705
706func (*UpdateRepoRequest) ProtoMessage() {}
707
708func (x *UpdateRepoRequest) ProtoReflect() protoreflect.Message {
709	mi := &file_ermite_repo_proto_msgTypes[8]
710	if x != nil {
711		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
712		if ms.LoadMessageInfo() == nil {
713			ms.StoreMessageInfo(mi)
714		}
715		return ms
716	}
717	return mi.MessageOf(x)
718}
719
720// Deprecated: Use UpdateRepoRequest.ProtoReflect.Descriptor instead.
721func (*UpdateRepoRequest) Descriptor() ([]byte, []int) {
722	return file_ermite_repo_proto_rawDescGZIP(), []int{8}
723}
724
725func (x *UpdateRepoRequest) GetRepo() string {
726	if x != nil {
727		return x.Repo
728	}
729	return ""
730}
731
732func (x *UpdateRepoRequest) GetDescription() string {
733	if x != nil {
734		return x.Description
735	}
736	return ""
737}
738
739func (x *UpdateRepoRequest) GetVisibility() Visibility {
740	if x != nil {
741		return x.Visibility
742	}
743	return Visibility_VISIBILITY_UNSPECIFIED
744}
745
746func (x *UpdateRepoRequest) GetDefaultBranch() string {
747	if x != nil {
748		return x.DefaultBranch
749	}
750	return ""
751}
752
753func (x *UpdateRepoRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
754	if x != nil {
755		return x.UpdateMask
756	}
757	return nil
758}
759
760func (x *UpdateRepoRequest) GetSettings() *RepoSettings {
761	if x != nil {
762		return x.Settings
763	}
764	return nil
765}
766
767func (x *UpdateRepoRequest) GetTopics() []string {
768	if x != nil {
769		return x.Topics
770	}
771	return nil
772}
773
774func (x *UpdateRepoRequest) GetIssues() IssuesMode {
775	if x != nil && x.Issues != nil {
776		return *x.Issues
777	}
778	return IssuesMode_ISSUES_MODE_UNSPECIFIED
779}
780
781// UpdateRepoResponse holds the repository after the update.
782type UpdateRepoResponse struct {
783	state protoimpl.MessageState `protogen:"open.v1"`
784	// Repo is the updated repository.
785	Repo          *Repo `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
786	unknownFields protoimpl.UnknownFields
787	sizeCache     protoimpl.SizeCache
788}
789
790func (x *UpdateRepoResponse) Reset() {
791	*x = UpdateRepoResponse{}
792	mi := &file_ermite_repo_proto_msgTypes[9]
793	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
794	ms.StoreMessageInfo(mi)
795}
796
797func (x *UpdateRepoResponse) String() string {
798	return protoimpl.X.MessageStringOf(x)
799}
800
801func (*UpdateRepoResponse) ProtoMessage() {}
802
803func (x *UpdateRepoResponse) ProtoReflect() protoreflect.Message {
804	mi := &file_ermite_repo_proto_msgTypes[9]
805	if x != nil {
806		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
807		if ms.LoadMessageInfo() == nil {
808			ms.StoreMessageInfo(mi)
809		}
810		return ms
811	}
812	return mi.MessageOf(x)
813}
814
815// Deprecated: Use UpdateRepoResponse.ProtoReflect.Descriptor instead.
816func (*UpdateRepoResponse) Descriptor() ([]byte, []int) {
817	return file_ermite_repo_proto_rawDescGZIP(), []int{9}
818}
819
820func (x *UpdateRepoResponse) GetRepo() *Repo {
821	if x != nil {
822		return x.Repo
823	}
824	return nil
825}
826
827// DeleteRepoRequest names the repository to delete.
828type DeleteRepoRequest struct {
829	state protoimpl.MessageState `protogen:"open.v1"`
830	// Repo is the repository name.
831	Repo          string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
832	unknownFields protoimpl.UnknownFields
833	sizeCache     protoimpl.SizeCache
834}
835
836func (x *DeleteRepoRequest) Reset() {
837	*x = DeleteRepoRequest{}
838	mi := &file_ermite_repo_proto_msgTypes[10]
839	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
840	ms.StoreMessageInfo(mi)
841}
842
843func (x *DeleteRepoRequest) String() string {
844	return protoimpl.X.MessageStringOf(x)
845}
846
847func (*DeleteRepoRequest) ProtoMessage() {}
848
849func (x *DeleteRepoRequest) ProtoReflect() protoreflect.Message {
850	mi := &file_ermite_repo_proto_msgTypes[10]
851	if x != nil {
852		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
853		if ms.LoadMessageInfo() == nil {
854			ms.StoreMessageInfo(mi)
855		}
856		return ms
857	}
858	return mi.MessageOf(x)
859}
860
861// Deprecated: Use DeleteRepoRequest.ProtoReflect.Descriptor instead.
862func (*DeleteRepoRequest) Descriptor() ([]byte, []int) {
863	return file_ermite_repo_proto_rawDescGZIP(), []int{10}
864}
865
866func (x *DeleteRepoRequest) GetRepo() string {
867	if x != nil {
868		return x.Repo
869	}
870	return ""
871}
872
873// DeleteRepoResponse is empty.
874type DeleteRepoResponse struct {
875	state         protoimpl.MessageState `protogen:"open.v1"`
876	unknownFields protoimpl.UnknownFields
877	sizeCache     protoimpl.SizeCache
878}
879
880func (x *DeleteRepoResponse) Reset() {
881	*x = DeleteRepoResponse{}
882	mi := &file_ermite_repo_proto_msgTypes[11]
883	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
884	ms.StoreMessageInfo(mi)
885}
886
887func (x *DeleteRepoResponse) String() string {
888	return protoimpl.X.MessageStringOf(x)
889}
890
891func (*DeleteRepoResponse) ProtoMessage() {}
892
893func (x *DeleteRepoResponse) ProtoReflect() protoreflect.Message {
894	mi := &file_ermite_repo_proto_msgTypes[11]
895	if x != nil {
896		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
897		if ms.LoadMessageInfo() == nil {
898			ms.StoreMessageInfo(mi)
899		}
900		return ms
901	}
902	return mi.MessageOf(x)
903}
904
905// Deprecated: Use DeleteRepoResponse.ProtoReflect.Descriptor instead.
906func (*DeleteRepoResponse) Descriptor() ([]byte, []int) {
907	return file_ermite_repo_proto_rawDescGZIP(), []int{11}
908}
909
910var File_ermite_repo_proto protoreflect.FileDescriptor
911
912const file_ermite_repo_proto_rawDesc = "" +
913	"\n" +
914	"\x11ermite/repo.proto\x12\x06ermite\x1a google/protobuf/field_mask.proto\x1a\x12ermite/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xaf\x01\n" +
915	"\fRepoSettings\x12A\n" +
916	"\x13allowed_merge_modes\x18\x01 \x03(\x0e2\x11.ermite.MergeModeR\x11allowedMergeModes\x120\n" +
917	"\x14failing_checks_block\x18\x02 \x01(\bR\x12failingChecksBlock\x12*\n" +
918	"\x06issues\x18\x03 \x01(\x0e2\x12.ermite.IssuesModeR\x06issues\"\xd5\x02\n" +
919	"\x04Repo\x12\x12\n" +
920	"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
921	"\vdescription\x18\x02 \x01(\tR\vdescription\x122\n" +
922	"\n" +
923	"visibility\x18\x03 \x01(\x0e2\x12.ermite.VisibilityR\n" +
924	"visibility\x12%\n" +
925	"\x0edefault_branch\x18\x04 \x01(\tR\rdefaultBranch\x129\n" +
926	"\n" +
927	"created_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x127\n" +
928	"\tpushed_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\bpushedAt\x120\n" +
929	"\bsettings\x18\a \x01(\v2\x14.ermite.RepoSettingsR\bsettings\x12\x16\n" +
930	"\x06topics\x18\b \x03(\tR\x06topics\"N\n" +
931	"\x10ListReposRequest\x12\x1b\n" +
932	"\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" +
933	"\n" +
934	"page_token\x18\x02 \x01(\tR\tpageToken\"_\n" +
935	"\x11ListReposResponse\x12\"\n" +
936	"\x05repos\x18\x01 \x03(\v2\f.ermite.RepoR\x05repos\x12&\n" +
937	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"$\n" +
938	"\x0eGetRepoRequest\x12\x12\n" +
939	"\x04repo\x18\x01 \x01(\tR\x04repo\"3\n" +
940	"\x0fGetRepoResponse\x12 \n" +
941	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"\x95\x01\n" +
942	"\x11CreateRepoRequest\x12\x12\n" +
943	"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
944	"\vdescription\x18\x02 \x01(\tR\vdescription\x122\n" +
945	"\n" +
946	"visibility\x18\x03 \x01(\x0e2\x12.ermite.VisibilityR\n" +
947	"visibility\x12\x16\n" +
948	"\x06topics\x18\x04 \x03(\tR\x06topics\"6\n" +
949	"\x12CreateRepoResponse\x12 \n" +
950	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"\xe7\x02\n" +
951	"\x11UpdateRepoRequest\x12\x12\n" +
952	"\x04repo\x18\x01 \x01(\tR\x04repo\x12 \n" +
953	"\vdescription\x18\x02 \x01(\tR\vdescription\x122\n" +
954	"\n" +
955	"visibility\x18\x03 \x01(\x0e2\x12.ermite.VisibilityR\n" +
956	"visibility\x12%\n" +
957	"\x0edefault_branch\x18\x04 \x01(\tR\rdefaultBranch\x12;\n" +
958	"\vupdate_mask\x18\x05 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" +
959	"updateMask\x120\n" +
960	"\bsettings\x18\x06 \x01(\v2\x14.ermite.RepoSettingsR\bsettings\x12\x16\n" +
961	"\x06topics\x18\a \x03(\tR\x06topics\x12/\n" +
962	"\x06issues\x18\b \x01(\x0e2\x12.ermite.IssuesModeH\x00R\x06issues\x88\x01\x01B\t\n" +
963	"\a_issues\"6\n" +
964	"\x12UpdateRepoResponse\x12 \n" +
965	"\x04repo\x18\x01 \x01(\v2\f.ermite.RepoR\x04repo\"'\n" +
966	"\x11DeleteRepoRequest\x12\x12\n" +
967	"\x04repo\x18\x01 \x01(\tR\x04repo\"\x14\n" +
968	"\x12DeleteRepoResponse*W\n" +
969	"\n" +
970	"Visibility\x12\x1a\n" +
971	"\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x15\n" +
972	"\x11VISIBILITY_PUBLIC\x10\x01\x12\x16\n" +
973	"\x12VISIBILITY_PRIVATE\x10\x02*m\n" +
974	"\n" +
975	"IssuesMode\x12\x1b\n" +
976	"\x17ISSUES_MODE_UNSPECIFIED\x10\x00\x12\x13\n" +
977	"\x0fISSUES_MODE_OFF\x10\x01\x12\x15\n" +
978	"\x11ISSUES_MODE_OWNER\x10\x02\x12\x16\n" +
979	"\x12ISSUES_MODE_PUBLIC\x10\x032\xda\x02\n" +
980	"\vRepoService\x12@\n" +
981	"\tListRepos\x12\x18.ermite.ListReposRequest\x1a\x19.ermite.ListReposResponse\x12:\n" +
982	"\aGetRepo\x12\x16.ermite.GetRepoRequest\x1a\x17.ermite.GetRepoResponse\x12C\n" +
983	"\n" +
984	"CreateRepo\x12\x19.ermite.CreateRepoRequest\x1a\x1a.ermite.CreateRepoResponse\x12C\n" +
985	"\n" +
986	"UpdateRepo\x12\x19.ermite.UpdateRepoRequest\x1a\x1a.ermite.UpdateRepoResponse\x12C\n" +
987	"\n" +
988	"DeleteRepo\x12\x19.ermite.DeleteRepoRequest\x1a\x1a.ermite.DeleteRepoResponseBp\n" +
989	"\n" +
990	"com.ermiteB\tRepoProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
991
992var (
993	file_ermite_repo_proto_rawDescOnce sync.Once
994	file_ermite_repo_proto_rawDescData []byte
995)
996
997func file_ermite_repo_proto_rawDescGZIP() []byte {
998	file_ermite_repo_proto_rawDescOnce.Do(func() {
999		file_ermite_repo_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_repo_proto_rawDesc), len(file_ermite_repo_proto_rawDesc)))
1000	})
1001	return file_ermite_repo_proto_rawDescData
1002}
1003
1004var file_ermite_repo_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
1005var file_ermite_repo_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
1006var file_ermite_repo_proto_goTypes = []any{
1007	(Visibility)(0),               // 0: ermite.Visibility
1008	(IssuesMode)(0),               // 1: ermite.IssuesMode
1009	(*RepoSettings)(nil),          // 2: ermite.RepoSettings
1010	(*Repo)(nil),                  // 3: ermite.Repo
1011	(*ListReposRequest)(nil),      // 4: ermite.ListReposRequest
1012	(*ListReposResponse)(nil),     // 5: ermite.ListReposResponse
1013	(*GetRepoRequest)(nil),        // 6: ermite.GetRepoRequest
1014	(*GetRepoResponse)(nil),       // 7: ermite.GetRepoResponse
1015	(*CreateRepoRequest)(nil),     // 8: ermite.CreateRepoRequest
1016	(*CreateRepoResponse)(nil),    // 9: ermite.CreateRepoResponse
1017	(*UpdateRepoRequest)(nil),     // 10: ermite.UpdateRepoRequest
1018	(*UpdateRepoResponse)(nil),    // 11: ermite.UpdateRepoResponse
1019	(*DeleteRepoRequest)(nil),     // 12: ermite.DeleteRepoRequest
1020	(*DeleteRepoResponse)(nil),    // 13: ermite.DeleteRepoResponse
1021	(MergeMode)(0),                // 14: ermite.MergeMode
1022	(*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
1023	(*fieldmaskpb.FieldMask)(nil), // 16: google.protobuf.FieldMask
1024}
1025var file_ermite_repo_proto_depIdxs = []int32{
1026	14, // 0: ermite.RepoSettings.allowed_merge_modes:type_name -> ermite.MergeMode
1027	1,  // 1: ermite.RepoSettings.issues:type_name -> ermite.IssuesMode
1028	0,  // 2: ermite.Repo.visibility:type_name -> ermite.Visibility
1029	15, // 3: ermite.Repo.created_at:type_name -> google.protobuf.Timestamp
1030	15, // 4: ermite.Repo.pushed_at:type_name -> google.protobuf.Timestamp
1031	2,  // 5: ermite.Repo.settings:type_name -> ermite.RepoSettings
1032	3,  // 6: ermite.ListReposResponse.repos:type_name -> ermite.Repo
1033	3,  // 7: ermite.GetRepoResponse.repo:type_name -> ermite.Repo
1034	0,  // 8: ermite.CreateRepoRequest.visibility:type_name -> ermite.Visibility
1035	3,  // 9: ermite.CreateRepoResponse.repo:type_name -> ermite.Repo
1036	0,  // 10: ermite.UpdateRepoRequest.visibility:type_name -> ermite.Visibility
1037	16, // 11: ermite.UpdateRepoRequest.update_mask:type_name -> google.protobuf.FieldMask
1038	2,  // 12: ermite.UpdateRepoRequest.settings:type_name -> ermite.RepoSettings
1039	1,  // 13: ermite.UpdateRepoRequest.issues:type_name -> ermite.IssuesMode
1040	3,  // 14: ermite.UpdateRepoResponse.repo:type_name -> ermite.Repo
1041	4,  // 15: ermite.RepoService.ListRepos:input_type -> ermite.ListReposRequest
1042	6,  // 16: ermite.RepoService.GetRepo:input_type -> ermite.GetRepoRequest
1043	8,  // 17: ermite.RepoService.CreateRepo:input_type -> ermite.CreateRepoRequest
1044	10, // 18: ermite.RepoService.UpdateRepo:input_type -> ermite.UpdateRepoRequest
1045	12, // 19: ermite.RepoService.DeleteRepo:input_type -> ermite.DeleteRepoRequest
1046	5,  // 20: ermite.RepoService.ListRepos:output_type -> ermite.ListReposResponse
1047	7,  // 21: ermite.RepoService.GetRepo:output_type -> ermite.GetRepoResponse
1048	9,  // 22: ermite.RepoService.CreateRepo:output_type -> ermite.CreateRepoResponse
1049	11, // 23: ermite.RepoService.UpdateRepo:output_type -> ermite.UpdateRepoResponse
1050	13, // 24: ermite.RepoService.DeleteRepo:output_type -> ermite.DeleteRepoResponse
1051	20, // [20:25] is the sub-list for method output_type
1052	15, // [15:20] is the sub-list for method input_type
1053	15, // [15:15] is the sub-list for extension type_name
1054	15, // [15:15] is the sub-list for extension extendee
1055	0,  // [0:15] is the sub-list for field type_name
1056}
1057
1058func init() { file_ermite_repo_proto_init() }
1059func file_ermite_repo_proto_init() {
1060	if File_ermite_repo_proto != nil {
1061		return
1062	}
1063	file_ermite_types_proto_init()
1064	file_ermite_repo_proto_msgTypes[8].OneofWrappers = []any{}
1065	type x struct{}
1066	out := protoimpl.TypeBuilder{
1067		File: protoimpl.DescBuilder{
1068			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1069			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_repo_proto_rawDesc), len(file_ermite_repo_proto_rawDesc)),
1070			NumEnums:      2,
1071			NumMessages:   12,
1072			NumExtensions: 0,
1073			NumServices:   1,
1074		},
1075		GoTypes:           file_ermite_repo_proto_goTypes,
1076		DependencyIndexes: file_ermite_repo_proto_depIdxs,
1077		EnumInfos:         file_ermite_repo_proto_enumTypes,
1078		MessageInfos:      file_ermite_repo_proto_msgTypes,
1079	}.Build()
1080	File_ermite_repo_proto = out.File
1081	file_ermite_repo_proto_goTypes = nil
1082	file_ermite_repo_proto_depIdxs = nil
1083}

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