main 81ede3b

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

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