v0.4.0 72f8f2e

git.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/git.proto
8
9package ermite
10
11import (
12	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14	reflect "reflect"
15	sync "sync"
16	unsafe "unsafe"
17)
18
19const (
20	// Verify that this generated code is sufficiently up-to-date.
21	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
22	// Verify that runtime/protoimpl is sufficiently up-to-date.
23	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
24)
25
26// RefKind is the kind of a Git ref.
27type RefKind int32
28
29const (
30	// Not set. In ListRefsRequest.kinds it is rejected; never returned.
31	RefKind_REF_KIND_UNSPECIFIED RefKind = 0
32	// A branch (refs/heads/*).
33	RefKind_REF_KIND_BRANCH RefKind = 1
34	// A tag (refs/tags/*), lightweight or annotated.
35	RefKind_REF_KIND_TAG RefKind = 2
36	// The symbolic ref HEAD, that is the default branch.
37	RefKind_REF_KIND_HEAD RefKind = 3
38)
39
40// Enum value maps for RefKind.
41var (
42	RefKind_name = map[int32]string{
43		0: "REF_KIND_UNSPECIFIED",
44		1: "REF_KIND_BRANCH",
45		2: "REF_KIND_TAG",
46		3: "REF_KIND_HEAD",
47	}
48	RefKind_value = map[string]int32{
49		"REF_KIND_UNSPECIFIED": 0,
50		"REF_KIND_BRANCH":      1,
51		"REF_KIND_TAG":         2,
52		"REF_KIND_HEAD":        3,
53	}
54)
55
56func (x RefKind) Enum() *RefKind {
57	p := new(RefKind)
58	*p = x
59	return p
60}
61
62func (x RefKind) String() string {
63	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
64}
65
66func (RefKind) Descriptor() protoreflect.EnumDescriptor {
67	return file_ermite_git_proto_enumTypes[0].Descriptor()
68}
69
70func (RefKind) Type() protoreflect.EnumType {
71	return &file_ermite_git_proto_enumTypes[0]
72}
73
74func (x RefKind) Number() protoreflect.EnumNumber {
75	return protoreflect.EnumNumber(x)
76}
77
78// Deprecated: Use RefKind.Descriptor instead.
79func (RefKind) EnumDescriptor() ([]byte, []int) {
80	return file_ermite_git_proto_rawDescGZIP(), []int{0}
81}
82
83// EntryKind is the kind of an entry of a Git tree.
84type EntryKind int32
85
86const (
87	// Not set. Never returned.
88	EntryKind_ENTRY_KIND_UNSPECIFIED EntryKind = 0
89	// A regular, non-executable file (mode 100644).
90	EntryKind_ENTRY_KIND_FILE EntryKind = 1
91	// An executable file (mode 100755).
92	EntryKind_ENTRY_KIND_EXECUTABLE EntryKind = 2
93	// A directory (mode 040000).
94	EntryKind_ENTRY_KIND_DIRECTORY EntryKind = 3
95	// A symbolic link (mode 120000). The blob content is the link target.
96	EntryKind_ENTRY_KIND_SYMLINK EntryKind = 4
97	// A submodule commit (mode 160000). The id is a commit of another
98	// repository, which this one does not contain.
99	EntryKind_ENTRY_KIND_SUBMODULE EntryKind = 5
100)
101
102// Enum value maps for EntryKind.
103var (
104	EntryKind_name = map[int32]string{
105		0: "ENTRY_KIND_UNSPECIFIED",
106		1: "ENTRY_KIND_FILE",
107		2: "ENTRY_KIND_EXECUTABLE",
108		3: "ENTRY_KIND_DIRECTORY",
109		4: "ENTRY_KIND_SYMLINK",
110		5: "ENTRY_KIND_SUBMODULE",
111	}
112	EntryKind_value = map[string]int32{
113		"ENTRY_KIND_UNSPECIFIED": 0,
114		"ENTRY_KIND_FILE":        1,
115		"ENTRY_KIND_EXECUTABLE":  2,
116		"ENTRY_KIND_DIRECTORY":   3,
117		"ENTRY_KIND_SYMLINK":     4,
118		"ENTRY_KIND_SUBMODULE":   5,
119	}
120)
121
122func (x EntryKind) Enum() *EntryKind {
123	p := new(EntryKind)
124	*p = x
125	return p
126}
127
128func (x EntryKind) String() string {
129	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
130}
131
132func (EntryKind) Descriptor() protoreflect.EnumDescriptor {
133	return file_ermite_git_proto_enumTypes[1].Descriptor()
134}
135
136func (EntryKind) Type() protoreflect.EnumType {
137	return &file_ermite_git_proto_enumTypes[1]
138}
139
140func (x EntryKind) Number() protoreflect.EnumNumber {
141	return protoreflect.EnumNumber(x)
142}
143
144// Deprecated: Use EntryKind.Descriptor instead.
145func (EntryKind) EnumDescriptor() ([]byte, []int) {
146	return file_ermite_git_proto_rawDescGZIP(), []int{1}
147}
148
149// FileStatus tells what a commit did to a file.
150type FileStatus int32
151
152const (
153	// Not set. Never returned.
154	FileStatus_FILE_STATUS_UNSPECIFIED FileStatus = 0
155	// The file was added.
156	FileStatus_FILE_STATUS_ADDED FileStatus = 1
157	// The file was deleted.
158	FileStatus_FILE_STATUS_DELETED FileStatus = 2
159	// The content or the mode of the file changed.
160	FileStatus_FILE_STATUS_MODIFIED FileStatus = 3
161	// The file was moved, possibly with changes. Rename detection is done by Git.
162	FileStatus_FILE_STATUS_RENAMED FileStatus = 4
163	// The file was copied from another file, possibly with changes.
164	FileStatus_FILE_STATUS_COPIED FileStatus = 5
165	// The type of the entry changed, for example a file became a symbolic link.
166	FileStatus_FILE_STATUS_TYPE_CHANGED FileStatus = 6
167)
168
169// Enum value maps for FileStatus.
170var (
171	FileStatus_name = map[int32]string{
172		0: "FILE_STATUS_UNSPECIFIED",
173		1: "FILE_STATUS_ADDED",
174		2: "FILE_STATUS_DELETED",
175		3: "FILE_STATUS_MODIFIED",
176		4: "FILE_STATUS_RENAMED",
177		5: "FILE_STATUS_COPIED",
178		6: "FILE_STATUS_TYPE_CHANGED",
179	}
180	FileStatus_value = map[string]int32{
181		"FILE_STATUS_UNSPECIFIED":  0,
182		"FILE_STATUS_ADDED":        1,
183		"FILE_STATUS_DELETED":      2,
184		"FILE_STATUS_MODIFIED":     3,
185		"FILE_STATUS_RENAMED":      4,
186		"FILE_STATUS_COPIED":       5,
187		"FILE_STATUS_TYPE_CHANGED": 6,
188	}
189)
190
191func (x FileStatus) Enum() *FileStatus {
192	p := new(FileStatus)
193	*p = x
194	return p
195}
196
197func (x FileStatus) String() string {
198	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
199}
200
201func (FileStatus) Descriptor() protoreflect.EnumDescriptor {
202	return file_ermite_git_proto_enumTypes[2].Descriptor()
203}
204
205func (FileStatus) Type() protoreflect.EnumType {
206	return &file_ermite_git_proto_enumTypes[2]
207}
208
209func (x FileStatus) Number() protoreflect.EnumNumber {
210	return protoreflect.EnumNumber(x)
211}
212
213// Deprecated: Use FileStatus.Descriptor instead.
214func (FileStatus) EnumDescriptor() ([]byte, []int) {
215	return file_ermite_git_proto_rawDescGZIP(), []int{2}
216}
217
218// LineKind tells how a line of a hunk relates to the two sides of a diff.
219type LineKind int32
220
221const (
222	// Not set. Never returned.
223	LineKind_LINE_KIND_UNSPECIFIED LineKind = 0
224	// The line is present, unchanged, on both sides.
225	LineKind_LINE_KIND_CONTEXT LineKind = 1
226	// The line exists only on the new side.
227	LineKind_LINE_KIND_ADDITION LineKind = 2
228	// The line exists only on the old side.
229	LineKind_LINE_KIND_DELETION LineKind = 3
230)
231
232// Enum value maps for LineKind.
233var (
234	LineKind_name = map[int32]string{
235		0: "LINE_KIND_UNSPECIFIED",
236		1: "LINE_KIND_CONTEXT",
237		2: "LINE_KIND_ADDITION",
238		3: "LINE_KIND_DELETION",
239	}
240	LineKind_value = map[string]int32{
241		"LINE_KIND_UNSPECIFIED": 0,
242		"LINE_KIND_CONTEXT":     1,
243		"LINE_KIND_ADDITION":    2,
244		"LINE_KIND_DELETION":    3,
245	}
246)
247
248func (x LineKind) Enum() *LineKind {
249	p := new(LineKind)
250	*p = x
251	return p
252}
253
254func (x LineKind) String() string {
255	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
256}
257
258func (LineKind) Descriptor() protoreflect.EnumDescriptor {
259	return file_ermite_git_proto_enumTypes[3].Descriptor()
260}
261
262func (LineKind) Type() protoreflect.EnumType {
263	return &file_ermite_git_proto_enumTypes[3]
264}
265
266func (x LineKind) Number() protoreflect.EnumNumber {
267	return protoreflect.EnumNumber(x)
268}
269
270// Deprecated: Use LineKind.Descriptor instead.
271func (LineKind) EnumDescriptor() ([]byte, []int) {
272	return file_ermite_git_proto_rawDescGZIP(), []int{3}
273}
274
275// Ref is a branch, a tag or HEAD.
276type Ref struct {
277	state protoimpl.MessageState `protogen:"open.v1"`
278	// Name is the full ref name, for example "refs/heads/main" or
279	// "refs/tags/v1.0.0". For HEAD it is "HEAD".
280	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
281	// ShortName is the name without its "refs/heads/" or "refs/tags/" prefix. For
282	// HEAD it is the short name of the default branch, or empty if HEAD points
283	// to a branch that does not exist yet.
284	ShortName string `protobuf:"bytes,2,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"`
285	// Kind is the kind of the ref.
286	Kind RefKind `protobuf:"varint,3,opt,name=kind,proto3,enum=ermite.RefKind" json:"kind,omitempty"`
287	// Id is the id of the object the ref points to. For an annotated tag it is
288	// the id of the tag object.
289	Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
290	// CommitId is the id of the commit the ref designates once annotated tags are
291	// followed. It equals id for branches and lightweight tags. It is empty for
292	// a tag that points to something other than a commit.
293	CommitId      string `protobuf:"bytes,5,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
294	unknownFields protoimpl.UnknownFields
295	sizeCache     protoimpl.SizeCache
296}
297
298func (x *Ref) Reset() {
299	*x = Ref{}
300	mi := &file_ermite_git_proto_msgTypes[0]
301	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
302	ms.StoreMessageInfo(mi)
303}
304
305func (x *Ref) String() string {
306	return protoimpl.X.MessageStringOf(x)
307}
308
309func (*Ref) ProtoMessage() {}
310
311func (x *Ref) ProtoReflect() protoreflect.Message {
312	mi := &file_ermite_git_proto_msgTypes[0]
313	if x != nil {
314		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
315		if ms.LoadMessageInfo() == nil {
316			ms.StoreMessageInfo(mi)
317		}
318		return ms
319	}
320	return mi.MessageOf(x)
321}
322
323// Deprecated: Use Ref.ProtoReflect.Descriptor instead.
324func (*Ref) Descriptor() ([]byte, []int) {
325	return file_ermite_git_proto_rawDescGZIP(), []int{0}
326}
327
328func (x *Ref) GetName() string {
329	if x != nil {
330		return x.Name
331	}
332	return ""
333}
334
335func (x *Ref) GetShortName() string {
336	if x != nil {
337		return x.ShortName
338	}
339	return ""
340}
341
342func (x *Ref) GetKind() RefKind {
343	if x != nil {
344		return x.Kind
345	}
346	return RefKind_REF_KIND_UNSPECIFIED
347}
348
349func (x *Ref) GetId() string {
350	if x != nil {
351		return x.Id
352	}
353	return ""
354}
355
356func (x *Ref) GetCommitId() string {
357	if x != nil {
358		return x.CommitId
359	}
360	return ""
361}
362
363// ListRefsRequest selects the refs to list.
364type ListRefsRequest struct {
365	state protoimpl.MessageState `protogen:"open.v1"`
366	// Repo is the repository name.
367	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
368	// Kinds restricts the result to these kinds. Empty means all kinds.
369	Kinds []RefKind `protobuf:"varint,2,rep,packed,name=kinds,proto3,enum=ermite.RefKind" json:"kinds,omitempty"`
370	// PageSize is the maximum number of refs to return. 0 means the server
371	// default; values above the server maximum are lowered to it.
372	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
373	// PageToken is the next_page_token of a previous response. Empty for the
374	// first page.
375	PageToken     string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
376	unknownFields protoimpl.UnknownFields
377	sizeCache     protoimpl.SizeCache
378}
379
380func (x *ListRefsRequest) Reset() {
381	*x = ListRefsRequest{}
382	mi := &file_ermite_git_proto_msgTypes[1]
383	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
384	ms.StoreMessageInfo(mi)
385}
386
387func (x *ListRefsRequest) String() string {
388	return protoimpl.X.MessageStringOf(x)
389}
390
391func (*ListRefsRequest) ProtoMessage() {}
392
393func (x *ListRefsRequest) ProtoReflect() protoreflect.Message {
394	mi := &file_ermite_git_proto_msgTypes[1]
395	if x != nil {
396		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
397		if ms.LoadMessageInfo() == nil {
398			ms.StoreMessageInfo(mi)
399		}
400		return ms
401	}
402	return mi.MessageOf(x)
403}
404
405// Deprecated: Use ListRefsRequest.ProtoReflect.Descriptor instead.
406func (*ListRefsRequest) Descriptor() ([]byte, []int) {
407	return file_ermite_git_proto_rawDescGZIP(), []int{1}
408}
409
410func (x *ListRefsRequest) GetRepo() string {
411	if x != nil {
412		return x.Repo
413	}
414	return ""
415}
416
417func (x *ListRefsRequest) GetKinds() []RefKind {
418	if x != nil {
419		return x.Kinds
420	}
421	return nil
422}
423
424func (x *ListRefsRequest) GetPageSize() int32 {
425	if x != nil {
426		return x.PageSize
427	}
428	return 0
429}
430
431func (x *ListRefsRequest) GetPageToken() string {
432	if x != nil {
433		return x.PageToken
434	}
435	return ""
436}
437
438// ListRefsResponse is one page of refs.
439type ListRefsResponse struct {
440	state protoimpl.MessageState `protogen:"open.v1"`
441	// Refs are the refs of this page.
442	Refs []*Ref `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"`
443	// NextPageToken is passed as page_token to get the next page. Empty when
444	// there is no next page.
445	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
446	unknownFields protoimpl.UnknownFields
447	sizeCache     protoimpl.SizeCache
448}
449
450func (x *ListRefsResponse) Reset() {
451	*x = ListRefsResponse{}
452	mi := &file_ermite_git_proto_msgTypes[2]
453	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
454	ms.StoreMessageInfo(mi)
455}
456
457func (x *ListRefsResponse) String() string {
458	return protoimpl.X.MessageStringOf(x)
459}
460
461func (*ListRefsResponse) ProtoMessage() {}
462
463func (x *ListRefsResponse) ProtoReflect() protoreflect.Message {
464	mi := &file_ermite_git_proto_msgTypes[2]
465	if x != nil {
466		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
467		if ms.LoadMessageInfo() == nil {
468			ms.StoreMessageInfo(mi)
469		}
470		return ms
471	}
472	return mi.MessageOf(x)
473}
474
475// Deprecated: Use ListRefsResponse.ProtoReflect.Descriptor instead.
476func (*ListRefsResponse) Descriptor() ([]byte, []int) {
477	return file_ermite_git_proto_rawDescGZIP(), []int{2}
478}
479
480func (x *ListRefsResponse) GetRefs() []*Ref {
481	if x != nil {
482		return x.Refs
483	}
484	return nil
485}
486
487func (x *ListRefsResponse) GetNextPageToken() string {
488	if x != nil {
489		return x.NextPageToken
490	}
491	return ""
492}
493
494// TreeEntry is one entry of a directory.
495type TreeEntry struct {
496	state protoimpl.MessageState `protogen:"open.v1"`
497	// Name is the name of the entry in its directory, without slash.
498	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
499	// Path is the path of the entry from the repository root, with "/"
500	// separators and no leading slash.
501	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
502	// Kind is the kind of the entry.
503	Kind EntryKind `protobuf:"varint,3,opt,name=kind,proto3,enum=ermite.EntryKind" json:"kind,omitempty"`
504	// Mode is the Git file mode, for example 0o100644 (33188 in decimal).
505	Mode uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"`
506	// Id is the object id of the blob, tree or submodule commit.
507	Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"`
508	// Size is the size in bytes of a file or symbolic link. It is 0 for
509	// directories and submodules.
510	Size int64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
511	// LastCommit is the latest commit that changed the entry. Set only when the
512	// request asked for it with include_last_commit.
513	LastCommit    *Commit `protobuf:"bytes,7,opt,name=last_commit,json=lastCommit,proto3" json:"last_commit,omitempty"`
514	unknownFields protoimpl.UnknownFields
515	sizeCache     protoimpl.SizeCache
516}
517
518func (x *TreeEntry) Reset() {
519	*x = TreeEntry{}
520	mi := &file_ermite_git_proto_msgTypes[3]
521	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
522	ms.StoreMessageInfo(mi)
523}
524
525func (x *TreeEntry) String() string {
526	return protoimpl.X.MessageStringOf(x)
527}
528
529func (*TreeEntry) ProtoMessage() {}
530
531func (x *TreeEntry) ProtoReflect() protoreflect.Message {
532	mi := &file_ermite_git_proto_msgTypes[3]
533	if x != nil {
534		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
535		if ms.LoadMessageInfo() == nil {
536			ms.StoreMessageInfo(mi)
537		}
538		return ms
539	}
540	return mi.MessageOf(x)
541}
542
543// Deprecated: Use TreeEntry.ProtoReflect.Descriptor instead.
544func (*TreeEntry) Descriptor() ([]byte, []int) {
545	return file_ermite_git_proto_rawDescGZIP(), []int{3}
546}
547
548func (x *TreeEntry) GetName() string {
549	if x != nil {
550		return x.Name
551	}
552	return ""
553}
554
555func (x *TreeEntry) GetPath() string {
556	if x != nil {
557		return x.Path
558	}
559	return ""
560}
561
562func (x *TreeEntry) GetKind() EntryKind {
563	if x != nil {
564		return x.Kind
565	}
566	return EntryKind_ENTRY_KIND_UNSPECIFIED
567}
568
569func (x *TreeEntry) GetMode() uint32 {
570	if x != nil {
571		return x.Mode
572	}
573	return 0
574}
575
576func (x *TreeEntry) GetId() string {
577	if x != nil {
578		return x.Id
579	}
580	return ""
581}
582
583func (x *TreeEntry) GetSize() int64 {
584	if x != nil {
585		return x.Size
586	}
587	return 0
588}
589
590func (x *TreeEntry) GetLastCommit() *Commit {
591	if x != nil {
592		return x.LastCommit
593	}
594	return nil
595}
596
597// GetTreeRequest selects a directory.
598type GetTreeRequest struct {
599	state protoimpl.MessageState `protogen:"open.v1"`
600	// Repo is the repository name.
601	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
602	// Revision is a branch, a tag or a commit id. Empty means HEAD.
603	Revision string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
604	// Path is the directory, from the repository root, with "/" separators.
605	// Empty means the root.
606	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
607	// IncludeLastCommit asks for the last commit of every entry in last_commit.
608	// It costs one history walk, so it is off by default and the server may be
609	// slow on large directories.
610	IncludeLastCommit bool `protobuf:"varint,4,opt,name=include_last_commit,json=includeLastCommit,proto3" json:"include_last_commit,omitempty"`
611	unknownFields     protoimpl.UnknownFields
612	sizeCache         protoimpl.SizeCache
613}
614
615func (x *GetTreeRequest) Reset() {
616	*x = GetTreeRequest{}
617	mi := &file_ermite_git_proto_msgTypes[4]
618	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
619	ms.StoreMessageInfo(mi)
620}
621
622func (x *GetTreeRequest) String() string {
623	return protoimpl.X.MessageStringOf(x)
624}
625
626func (*GetTreeRequest) ProtoMessage() {}
627
628func (x *GetTreeRequest) ProtoReflect() protoreflect.Message {
629	mi := &file_ermite_git_proto_msgTypes[4]
630	if x != nil {
631		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
632		if ms.LoadMessageInfo() == nil {
633			ms.StoreMessageInfo(mi)
634		}
635		return ms
636	}
637	return mi.MessageOf(x)
638}
639
640// Deprecated: Use GetTreeRequest.ProtoReflect.Descriptor instead.
641func (*GetTreeRequest) Descriptor() ([]byte, []int) {
642	return file_ermite_git_proto_rawDescGZIP(), []int{4}
643}
644
645func (x *GetTreeRequest) GetRepo() string {
646	if x != nil {
647		return x.Repo
648	}
649	return ""
650}
651
652func (x *GetTreeRequest) GetRevision() string {
653	if x != nil {
654		return x.Revision
655	}
656	return ""
657}
658
659func (x *GetTreeRequest) GetPath() string {
660	if x != nil {
661		return x.Path
662	}
663	return ""
664}
665
666func (x *GetTreeRequest) GetIncludeLastCommit() bool {
667	if x != nil {
668		return x.IncludeLastCommit
669	}
670	return false
671}
672
673// GetTreeResponse lists a directory.
674type GetTreeResponse struct {
675	state protoimpl.MessageState `protogen:"open.v1"`
676	// CommitId is the id of the commit the revision resolved to.
677	CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
678	// TreeId is the object id of the listed directory.
679	TreeId string `protobuf:"bytes,2,opt,name=tree_id,json=treeId,proto3" json:"tree_id,omitempty"`
680	// Entries are the entries of the directory: directories first, then the other
681	// entries, each group ordered by name. A response holds at most 5,000
682	// entries (a server limit that may change; rely on truncated, not on the
683	// number): past that, the first 5,000 in this order are returned and
684	// truncated is set. Paging may be added later, additively.
685	Entries []*TreeEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"`
686	// LastCommitsTruncated is true when include_last_commit was set and the
687	// server gave a last_commit to the first entries only (at most 200 of them,
688	// in the order of entries), because each one costs a history lookup. The
689	// other entries have no last_commit although they have one in Git.
690	LastCommitsTruncated bool `protobuf:"varint,4,opt,name=last_commits_truncated,json=lastCommitsTruncated,proto3" json:"last_commits_truncated,omitempty"`
691	// Truncated is true when the directory has more entries than the response
692	// holds; entries are then the first ones in the documented order.
693	Truncated     bool `protobuf:"varint,5,opt,name=truncated,proto3" json:"truncated,omitempty"`
694	unknownFields protoimpl.UnknownFields
695	sizeCache     protoimpl.SizeCache
696}
697
698func (x *GetTreeResponse) Reset() {
699	*x = GetTreeResponse{}
700	mi := &file_ermite_git_proto_msgTypes[5]
701	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
702	ms.StoreMessageInfo(mi)
703}
704
705func (x *GetTreeResponse) String() string {
706	return protoimpl.X.MessageStringOf(x)
707}
708
709func (*GetTreeResponse) ProtoMessage() {}
710
711func (x *GetTreeResponse) ProtoReflect() protoreflect.Message {
712	mi := &file_ermite_git_proto_msgTypes[5]
713	if x != nil {
714		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
715		if ms.LoadMessageInfo() == nil {
716			ms.StoreMessageInfo(mi)
717		}
718		return ms
719	}
720	return mi.MessageOf(x)
721}
722
723// Deprecated: Use GetTreeResponse.ProtoReflect.Descriptor instead.
724func (*GetTreeResponse) Descriptor() ([]byte, []int) {
725	return file_ermite_git_proto_rawDescGZIP(), []int{5}
726}
727
728func (x *GetTreeResponse) GetCommitId() string {
729	if x != nil {
730		return x.CommitId
731	}
732	return ""
733}
734
735func (x *GetTreeResponse) GetTreeId() string {
736	if x != nil {
737		return x.TreeId
738	}
739	return ""
740}
741
742func (x *GetTreeResponse) GetEntries() []*TreeEntry {
743	if x != nil {
744		return x.Entries
745	}
746	return nil
747}
748
749func (x *GetTreeResponse) GetLastCommitsTruncated() bool {
750	if x != nil {
751		return x.LastCommitsTruncated
752	}
753	return false
754}
755
756func (x *GetTreeResponse) GetTruncated() bool {
757	if x != nil {
758		return x.Truncated
759	}
760	return false
761}
762
763// ListPathsRequest selects a revision.
764type ListPathsRequest struct {
765	state protoimpl.MessageState `protogen:"open.v1"`
766	// Repo is the repository name.
767	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
768	// Revision is a branch, a tag or a commit id. Empty means HEAD.
769	Revision      string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
770	unknownFields protoimpl.UnknownFields
771	sizeCache     protoimpl.SizeCache
772}
773
774func (x *ListPathsRequest) Reset() {
775	*x = ListPathsRequest{}
776	mi := &file_ermite_git_proto_msgTypes[6]
777	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
778	ms.StoreMessageInfo(mi)
779}
780
781func (x *ListPathsRequest) String() string {
782	return protoimpl.X.MessageStringOf(x)
783}
784
785func (*ListPathsRequest) ProtoMessage() {}
786
787func (x *ListPathsRequest) ProtoReflect() protoreflect.Message {
788	mi := &file_ermite_git_proto_msgTypes[6]
789	if x != nil {
790		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
791		if ms.LoadMessageInfo() == nil {
792			ms.StoreMessageInfo(mi)
793		}
794		return ms
795	}
796	return mi.MessageOf(x)
797}
798
799// Deprecated: Use ListPathsRequest.ProtoReflect.Descriptor instead.
800func (*ListPathsRequest) Descriptor() ([]byte, []int) {
801	return file_ermite_git_proto_rawDescGZIP(), []int{6}
802}
803
804func (x *ListPathsRequest) GetRepo() string {
805	if x != nil {
806		return x.Repo
807	}
808	return ""
809}
810
811func (x *ListPathsRequest) GetRevision() string {
812	if x != nil {
813		return x.Revision
814	}
815	return ""
816}
817
818// ListPathsResponse lists the file paths of a revision.
819type ListPathsResponse struct {
820	state protoimpl.MessageState `protogen:"open.v1"`
821	// CommitId is the id of the commit the revision resolved to.
822	CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
823	// TreeId is the object id of its root tree.
824	TreeId string `protobuf:"bytes,2,opt,name=tree_id,json=treeId,proto3" json:"tree_id,omitempty"`
825	// Paths are the paths of the files and symbolic links, in Git tree order. A
826	// response holds at most 100,000 paths and 8 MiB of path bytes (server limits
827	// that may change; rely on truncated, not on the numbers).
828	Paths []string `protobuf:"bytes,3,rep,name=paths,proto3" json:"paths,omitempty"`
829	// Truncated is true when more paths exist past the first ones returned.
830	Truncated     bool `protobuf:"varint,4,opt,name=truncated,proto3" json:"truncated,omitempty"`
831	unknownFields protoimpl.UnknownFields
832	sizeCache     protoimpl.SizeCache
833}
834
835func (x *ListPathsResponse) Reset() {
836	*x = ListPathsResponse{}
837	mi := &file_ermite_git_proto_msgTypes[7]
838	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
839	ms.StoreMessageInfo(mi)
840}
841
842func (x *ListPathsResponse) String() string {
843	return protoimpl.X.MessageStringOf(x)
844}
845
846func (*ListPathsResponse) ProtoMessage() {}
847
848func (x *ListPathsResponse) ProtoReflect() protoreflect.Message {
849	mi := &file_ermite_git_proto_msgTypes[7]
850	if x != nil {
851		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
852		if ms.LoadMessageInfo() == nil {
853			ms.StoreMessageInfo(mi)
854		}
855		return ms
856	}
857	return mi.MessageOf(x)
858}
859
860// Deprecated: Use ListPathsResponse.ProtoReflect.Descriptor instead.
861func (*ListPathsResponse) Descriptor() ([]byte, []int) {
862	return file_ermite_git_proto_rawDescGZIP(), []int{7}
863}
864
865func (x *ListPathsResponse) GetCommitId() string {
866	if x != nil {
867		return x.CommitId
868	}
869	return ""
870}
871
872func (x *ListPathsResponse) GetTreeId() string {
873	if x != nil {
874		return x.TreeId
875	}
876	return ""
877}
878
879func (x *ListPathsResponse) GetPaths() []string {
880	if x != nil {
881		return x.Paths
882	}
883	return nil
884}
885
886func (x *ListPathsResponse) GetTruncated() bool {
887	if x != nil {
888		return x.Truncated
889	}
890	return false
891}
892
893// BlobInfo describes a file.
894type BlobInfo struct {
895	state protoimpl.MessageState `protogen:"open.v1"`
896	// Id is the object id of the blob.
897	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
898	// Path is the path of the file from the repository root.
899	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
900	// Size is the size of the whole content in bytes.
901	Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
902	// Binary is true if the content is binary, with Git's rule: a NUL byte in the
903	// first 8,000 bytes.
904	Binary bool `protobuf:"varint,4,opt,name=binary,proto3" json:"binary,omitempty"`
905	// MediaType is the detected media type, for example "text/plain" or
906	// "image/png", from the file name and the first bytes. It is
907	// "application/octet-stream" when unknown.
908	MediaType string `protobuf:"bytes,5,opt,name=media_type,json=mediaType,proto3" json:"media_type,omitempty"`
909	// Mode is the Git file mode, for example 0o100644 (33188 in decimal).
910	Mode          uint32 `protobuf:"varint,6,opt,name=mode,proto3" json:"mode,omitempty"`
911	unknownFields protoimpl.UnknownFields
912	sizeCache     protoimpl.SizeCache
913}
914
915func (x *BlobInfo) Reset() {
916	*x = BlobInfo{}
917	mi := &file_ermite_git_proto_msgTypes[8]
918	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
919	ms.StoreMessageInfo(mi)
920}
921
922func (x *BlobInfo) String() string {
923	return protoimpl.X.MessageStringOf(x)
924}
925
926func (*BlobInfo) ProtoMessage() {}
927
928func (x *BlobInfo) ProtoReflect() protoreflect.Message {
929	mi := &file_ermite_git_proto_msgTypes[8]
930	if x != nil {
931		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
932		if ms.LoadMessageInfo() == nil {
933			ms.StoreMessageInfo(mi)
934		}
935		return ms
936	}
937	return mi.MessageOf(x)
938}
939
940// Deprecated: Use BlobInfo.ProtoReflect.Descriptor instead.
941func (*BlobInfo) Descriptor() ([]byte, []int) {
942	return file_ermite_git_proto_rawDescGZIP(), []int{8}
943}
944
945func (x *BlobInfo) GetId() string {
946	if x != nil {
947		return x.Id
948	}
949	return ""
950}
951
952func (x *BlobInfo) GetPath() string {
953	if x != nil {
954		return x.Path
955	}
956	return ""
957}
958
959func (x *BlobInfo) GetSize() int64 {
960	if x != nil {
961		return x.Size
962	}
963	return 0
964}
965
966func (x *BlobInfo) GetBinary() bool {
967	if x != nil {
968		return x.Binary
969	}
970	return false
971}
972
973func (x *BlobInfo) GetMediaType() string {
974	if x != nil {
975		return x.MediaType
976	}
977	return ""
978}
979
980func (x *BlobInfo) GetMode() uint32 {
981	if x != nil {
982		return x.Mode
983	}
984	return 0
985}
986
987// GetBlobRequest selects a file.
988type GetBlobRequest struct {
989	state protoimpl.MessageState `protogen:"open.v1"`
990	// Repo is the repository name.
991	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
992	// Revision is a branch, a tag or a commit id. Empty means HEAD.
993	Revision string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
994	// Path is the file, from the repository root. It is required.
995	Path          string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
996	unknownFields protoimpl.UnknownFields
997	sizeCache     protoimpl.SizeCache
998}
999
1000func (x *GetBlobRequest) Reset() {
1001	*x = GetBlobRequest{}
1002	mi := &file_ermite_git_proto_msgTypes[9]
1003	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1004	ms.StoreMessageInfo(mi)
1005}
1006
1007func (x *GetBlobRequest) String() string {
1008	return protoimpl.X.MessageStringOf(x)
1009}
1010
1011func (*GetBlobRequest) ProtoMessage() {}
1012
1013func (x *GetBlobRequest) ProtoReflect() protoreflect.Message {
1014	mi := &file_ermite_git_proto_msgTypes[9]
1015	if x != nil {
1016		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1017		if ms.LoadMessageInfo() == nil {
1018			ms.StoreMessageInfo(mi)
1019		}
1020		return ms
1021	}
1022	return mi.MessageOf(x)
1023}
1024
1025// Deprecated: Use GetBlobRequest.ProtoReflect.Descriptor instead.
1026func (*GetBlobRequest) Descriptor() ([]byte, []int) {
1027	return file_ermite_git_proto_rawDescGZIP(), []int{9}
1028}
1029
1030func (x *GetBlobRequest) GetRepo() string {
1031	if x != nil {
1032		return x.Repo
1033	}
1034	return ""
1035}
1036
1037func (x *GetBlobRequest) GetRevision() string {
1038	if x != nil {
1039		return x.Revision
1040	}
1041	return ""
1042}
1043
1044func (x *GetBlobRequest) GetPath() string {
1045	if x != nil {
1046		return x.Path
1047	}
1048	return ""
1049}
1050
1051// GetBlobResponse is one message of the content stream.
1052type GetBlobResponse struct {
1053	state protoimpl.MessageState `protogen:"open.v1"`
1054	// Info describes the file. Set in the first message of the stream only.
1055	Info *BlobInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
1056	// Chunk is the next part of the content, at most 64 KiB, in order. The first
1057	// message may have an empty chunk. The chunks of a stream add up to
1058	// info.size bytes.
1059	Chunk         []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"`
1060	unknownFields protoimpl.UnknownFields
1061	sizeCache     protoimpl.SizeCache
1062}
1063
1064func (x *GetBlobResponse) Reset() {
1065	*x = GetBlobResponse{}
1066	mi := &file_ermite_git_proto_msgTypes[10]
1067	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1068	ms.StoreMessageInfo(mi)
1069}
1070
1071func (x *GetBlobResponse) String() string {
1072	return protoimpl.X.MessageStringOf(x)
1073}
1074
1075func (*GetBlobResponse) ProtoMessage() {}
1076
1077func (x *GetBlobResponse) ProtoReflect() protoreflect.Message {
1078	mi := &file_ermite_git_proto_msgTypes[10]
1079	if x != nil {
1080		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1081		if ms.LoadMessageInfo() == nil {
1082			ms.StoreMessageInfo(mi)
1083		}
1084		return ms
1085	}
1086	return mi.MessageOf(x)
1087}
1088
1089// Deprecated: Use GetBlobResponse.ProtoReflect.Descriptor instead.
1090func (*GetBlobResponse) Descriptor() ([]byte, []int) {
1091	return file_ermite_git_proto_rawDescGZIP(), []int{10}
1092}
1093
1094func (x *GetBlobResponse) GetInfo() *BlobInfo {
1095	if x != nil {
1096		return x.Info
1097	}
1098	return nil
1099}
1100
1101func (x *GetBlobResponse) GetChunk() []byte {
1102	if x != nil {
1103		return x.Chunk
1104	}
1105	return nil
1106}
1107
1108// ListCommitsRequest selects a page of history.
1109type ListCommitsRequest struct {
1110	state protoimpl.MessageState `protogen:"open.v1"`
1111	// Repo is the repository name.
1112	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1113	// Revision is where the history starts: a branch, a tag or a commit id.
1114	// Empty means HEAD.
1115	Revision string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
1116	// Path restricts the result to the commits that changed this file or
1117	// directory. Empty means the whole history.
1118	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
1119	// PageSize is the maximum number of commits to return. 0 means the server
1120	// default; values above 100 are lowered to 100.
1121	PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1122	// PageToken is the next_page_token of a previous response, to continue the
1123	// same listing. Empty for the first page. Other fields must be unchanged.
1124	PageToken     string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1125	unknownFields protoimpl.UnknownFields
1126	sizeCache     protoimpl.SizeCache
1127}
1128
1129func (x *ListCommitsRequest) Reset() {
1130	*x = ListCommitsRequest{}
1131	mi := &file_ermite_git_proto_msgTypes[11]
1132	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1133	ms.StoreMessageInfo(mi)
1134}
1135
1136func (x *ListCommitsRequest) String() string {
1137	return protoimpl.X.MessageStringOf(x)
1138}
1139
1140func (*ListCommitsRequest) ProtoMessage() {}
1141
1142func (x *ListCommitsRequest) ProtoReflect() protoreflect.Message {
1143	mi := &file_ermite_git_proto_msgTypes[11]
1144	if x != nil {
1145		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1146		if ms.LoadMessageInfo() == nil {
1147			ms.StoreMessageInfo(mi)
1148		}
1149		return ms
1150	}
1151	return mi.MessageOf(x)
1152}
1153
1154// Deprecated: Use ListCommitsRequest.ProtoReflect.Descriptor instead.
1155func (*ListCommitsRequest) Descriptor() ([]byte, []int) {
1156	return file_ermite_git_proto_rawDescGZIP(), []int{11}
1157}
1158
1159func (x *ListCommitsRequest) GetRepo() string {
1160	if x != nil {
1161		return x.Repo
1162	}
1163	return ""
1164}
1165
1166func (x *ListCommitsRequest) GetRevision() string {
1167	if x != nil {
1168		return x.Revision
1169	}
1170	return ""
1171}
1172
1173func (x *ListCommitsRequest) GetPath() string {
1174	if x != nil {
1175		return x.Path
1176	}
1177	return ""
1178}
1179
1180func (x *ListCommitsRequest) GetPageSize() int32 {
1181	if x != nil {
1182		return x.PageSize
1183	}
1184	return 0
1185}
1186
1187func (x *ListCommitsRequest) GetPageToken() string {
1188	if x != nil {
1189		return x.PageToken
1190	}
1191	return ""
1192}
1193
1194// ListCommitsResponse is one page of commits.
1195type ListCommitsResponse struct {
1196	state protoimpl.MessageState `protogen:"open.v1"`
1197	// Commits are the commits of this page, newest first.
1198	Commits []*Commit `protobuf:"bytes,1,rep,name=commits,proto3" json:"commits,omitempty"`
1199	// NextPageToken is passed as page_token to get the next page. Empty when
1200	// there is no next page.
1201	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1202	unknownFields protoimpl.UnknownFields
1203	sizeCache     protoimpl.SizeCache
1204}
1205
1206func (x *ListCommitsResponse) Reset() {
1207	*x = ListCommitsResponse{}
1208	mi := &file_ermite_git_proto_msgTypes[12]
1209	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1210	ms.StoreMessageInfo(mi)
1211}
1212
1213func (x *ListCommitsResponse) String() string {
1214	return protoimpl.X.MessageStringOf(x)
1215}
1216
1217func (*ListCommitsResponse) ProtoMessage() {}
1218
1219func (x *ListCommitsResponse) ProtoReflect() protoreflect.Message {
1220	mi := &file_ermite_git_proto_msgTypes[12]
1221	if x != nil {
1222		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1223		if ms.LoadMessageInfo() == nil {
1224			ms.StoreMessageInfo(mi)
1225		}
1226		return ms
1227	}
1228	return mi.MessageOf(x)
1229}
1230
1231// Deprecated: Use ListCommitsResponse.ProtoReflect.Descriptor instead.
1232func (*ListCommitsResponse) Descriptor() ([]byte, []int) {
1233	return file_ermite_git_proto_rawDescGZIP(), []int{12}
1234}
1235
1236func (x *ListCommitsResponse) GetCommits() []*Commit {
1237	if x != nil {
1238		return x.Commits
1239	}
1240	return nil
1241}
1242
1243func (x *ListCommitsResponse) GetNextPageToken() string {
1244	if x != nil {
1245		return x.NextPageToken
1246	}
1247	return ""
1248}
1249
1250// GetCommitRequest selects a commit.
1251type GetCommitRequest struct {
1252	state protoimpl.MessageState `protogen:"open.v1"`
1253	// Repo is the repository name.
1254	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1255	// Revision is a branch, a tag or a commit id. Empty means HEAD.
1256	Revision      string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
1257	unknownFields protoimpl.UnknownFields
1258	sizeCache     protoimpl.SizeCache
1259}
1260
1261func (x *GetCommitRequest) Reset() {
1262	*x = GetCommitRequest{}
1263	mi := &file_ermite_git_proto_msgTypes[13]
1264	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1265	ms.StoreMessageInfo(mi)
1266}
1267
1268func (x *GetCommitRequest) String() string {
1269	return protoimpl.X.MessageStringOf(x)
1270}
1271
1272func (*GetCommitRequest) ProtoMessage() {}
1273
1274func (x *GetCommitRequest) ProtoReflect() protoreflect.Message {
1275	mi := &file_ermite_git_proto_msgTypes[13]
1276	if x != nil {
1277		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1278		if ms.LoadMessageInfo() == nil {
1279			ms.StoreMessageInfo(mi)
1280		}
1281		return ms
1282	}
1283	return mi.MessageOf(x)
1284}
1285
1286// Deprecated: Use GetCommitRequest.ProtoReflect.Descriptor instead.
1287func (*GetCommitRequest) Descriptor() ([]byte, []int) {
1288	return file_ermite_git_proto_rawDescGZIP(), []int{13}
1289}
1290
1291func (x *GetCommitRequest) GetRepo() string {
1292	if x != nil {
1293		return x.Repo
1294	}
1295	return ""
1296}
1297
1298func (x *GetCommitRequest) GetRevision() string {
1299	if x != nil {
1300		return x.Revision
1301	}
1302	return ""
1303}
1304
1305// GetCommitResponse holds a commit, its statistics and its diff.
1306type GetCommitResponse struct {
1307	state protoimpl.MessageState `protogen:"open.v1"`
1308	// Commit is the commit metadata.
1309	Commit *Commit `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"`
1310	// Stats are the totals over all the changed files, including files that the
1311	// diff omits or truncates.
1312	Stats *DiffStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
1313	// Diff is the structured diff against the first parent, or against the empty
1314	// tree for a root commit. For a merge commit this is the change relative to
1315	// the first parent.
1316	Diff          *Diff `protobuf:"bytes,3,opt,name=diff,proto3" json:"diff,omitempty"`
1317	unknownFields protoimpl.UnknownFields
1318	sizeCache     protoimpl.SizeCache
1319}
1320
1321func (x *GetCommitResponse) Reset() {
1322	*x = GetCommitResponse{}
1323	mi := &file_ermite_git_proto_msgTypes[14]
1324	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1325	ms.StoreMessageInfo(mi)
1326}
1327
1328func (x *GetCommitResponse) String() string {
1329	return protoimpl.X.MessageStringOf(x)
1330}
1331
1332func (*GetCommitResponse) ProtoMessage() {}
1333
1334func (x *GetCommitResponse) ProtoReflect() protoreflect.Message {
1335	mi := &file_ermite_git_proto_msgTypes[14]
1336	if x != nil {
1337		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1338		if ms.LoadMessageInfo() == nil {
1339			ms.StoreMessageInfo(mi)
1340		}
1341		return ms
1342	}
1343	return mi.MessageOf(x)
1344}
1345
1346// Deprecated: Use GetCommitResponse.ProtoReflect.Descriptor instead.
1347func (*GetCommitResponse) Descriptor() ([]byte, []int) {
1348	return file_ermite_git_proto_rawDescGZIP(), []int{14}
1349}
1350
1351func (x *GetCommitResponse) GetCommit() *Commit {
1352	if x != nil {
1353		return x.Commit
1354	}
1355	return nil
1356}
1357
1358func (x *GetCommitResponse) GetStats() *DiffStats {
1359	if x != nil {
1360		return x.Stats
1361	}
1362	return nil
1363}
1364
1365func (x *GetCommitResponse) GetDiff() *Diff {
1366	if x != nil {
1367		return x.Diff
1368	}
1369	return nil
1370}
1371
1372// DiffStats are the totals of a diff.
1373type DiffStats struct {
1374	state protoimpl.MessageState `protogen:"open.v1"`
1375	// FilesChanged is the number of changed files.
1376	FilesChanged int32 `protobuf:"varint,1,opt,name=files_changed,json=filesChanged,proto3" json:"files_changed,omitempty"`
1377	// Additions is the number of added lines. Binary files count for 0.
1378	Additions int32 `protobuf:"varint,2,opt,name=additions,proto3" json:"additions,omitempty"`
1379	// Deletions is the number of deleted lines. Binary files count for 0.
1380	Deletions     int32 `protobuf:"varint,3,opt,name=deletions,proto3" json:"deletions,omitempty"`
1381	unknownFields protoimpl.UnknownFields
1382	sizeCache     protoimpl.SizeCache
1383}
1384
1385func (x *DiffStats) Reset() {
1386	*x = DiffStats{}
1387	mi := &file_ermite_git_proto_msgTypes[15]
1388	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1389	ms.StoreMessageInfo(mi)
1390}
1391
1392func (x *DiffStats) String() string {
1393	return protoimpl.X.MessageStringOf(x)
1394}
1395
1396func (*DiffStats) ProtoMessage() {}
1397
1398func (x *DiffStats) ProtoReflect() protoreflect.Message {
1399	mi := &file_ermite_git_proto_msgTypes[15]
1400	if x != nil {
1401		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1402		if ms.LoadMessageInfo() == nil {
1403			ms.StoreMessageInfo(mi)
1404		}
1405		return ms
1406	}
1407	return mi.MessageOf(x)
1408}
1409
1410// Deprecated: Use DiffStats.ProtoReflect.Descriptor instead.
1411func (*DiffStats) Descriptor() ([]byte, []int) {
1412	return file_ermite_git_proto_rawDescGZIP(), []int{15}
1413}
1414
1415func (x *DiffStats) GetFilesChanged() int32 {
1416	if x != nil {
1417		return x.FilesChanged
1418	}
1419	return 0
1420}
1421
1422func (x *DiffStats) GetAdditions() int32 {
1423	if x != nil {
1424		return x.Additions
1425	}
1426	return 0
1427}
1428
1429func (x *DiffStats) GetDeletions() int32 {
1430	if x != nil {
1431		return x.Deletions
1432	}
1433	return 0
1434}
1435
1436// Diff is the structured difference introduced by a commit.
1437//
1438// The server limits its size: at most 300 files, at most 2,000 lines in one
1439// file and at most 20,000 lines in total (hunk lines, context included). These
1440// numbers are server behaviour and may change; clients must rely on the
1441// truncated flags, not on the numbers.
1442type Diff struct {
1443	state protoimpl.MessageState `protogen:"open.v1"`
1444	// Files are the changed files, ordered by path. Files past the file limit are
1445	// omitted.
1446	Files []*FileDiff `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
1447	// Truncated is true when the diff is incomplete: files were omitted, or at
1448	// least one listed file has truncated set. DiffStats still count everything.
1449	Truncated     bool `protobuf:"varint,2,opt,name=truncated,proto3" json:"truncated,omitempty"`
1450	unknownFields protoimpl.UnknownFields
1451	sizeCache     protoimpl.SizeCache
1452}
1453
1454func (x *Diff) Reset() {
1455	*x = Diff{}
1456	mi := &file_ermite_git_proto_msgTypes[16]
1457	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1458	ms.StoreMessageInfo(mi)
1459}
1460
1461func (x *Diff) String() string {
1462	return protoimpl.X.MessageStringOf(x)
1463}
1464
1465func (*Diff) ProtoMessage() {}
1466
1467func (x *Diff) ProtoReflect() protoreflect.Message {
1468	mi := &file_ermite_git_proto_msgTypes[16]
1469	if x != nil {
1470		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1471		if ms.LoadMessageInfo() == nil {
1472			ms.StoreMessageInfo(mi)
1473		}
1474		return ms
1475	}
1476	return mi.MessageOf(x)
1477}
1478
1479// Deprecated: Use Diff.ProtoReflect.Descriptor instead.
1480func (*Diff) Descriptor() ([]byte, []int) {
1481	return file_ermite_git_proto_rawDescGZIP(), []int{16}
1482}
1483
1484func (x *Diff) GetFiles() []*FileDiff {
1485	if x != nil {
1486		return x.Files
1487	}
1488	return nil
1489}
1490
1491func (x *Diff) GetTruncated() bool {
1492	if x != nil {
1493		return x.Truncated
1494	}
1495	return false
1496}
1497
1498// FileDiff is the change of one file.
1499type FileDiff struct {
1500	state protoimpl.MessageState `protogen:"open.v1"`
1501	// OldPath is the path before the commit. Empty for an added file.
1502	OldPath string `protobuf:"bytes,1,opt,name=old_path,json=oldPath,proto3" json:"old_path,omitempty"`
1503	// NewPath is the path after the commit. Empty for a deleted file.
1504	NewPath string `protobuf:"bytes,2,opt,name=new_path,json=newPath,proto3" json:"new_path,omitempty"`
1505	// Status tells what happened to the file.
1506	Status FileStatus `protobuf:"varint,3,opt,name=status,proto3,enum=ermite.FileStatus" json:"status,omitempty"`
1507	// OldMode is the Git file mode before the commit, or 0 for an added file.
1508	OldMode uint32 `protobuf:"varint,4,opt,name=old_mode,json=oldMode,proto3" json:"old_mode,omitempty"`
1509	// NewMode is the Git file mode after the commit, or 0 for a deleted file.
1510	NewMode uint32 `protobuf:"varint,5,opt,name=new_mode,json=newMode,proto3" json:"new_mode,omitempty"`
1511	// OldId is the blob id before the commit. Empty for an added file.
1512	OldId string `protobuf:"bytes,6,opt,name=old_id,json=oldId,proto3" json:"old_id,omitempty"`
1513	// NewId is the blob id after the commit. Empty for a deleted file.
1514	NewId string `protobuf:"bytes,7,opt,name=new_id,json=newId,proto3" json:"new_id,omitempty"`
1515	// Binary is true if Git treats the file as binary (numstat reports "-"). A
1516	// binary file has no hunks and additions and deletions are 0.
1517	Binary bool `protobuf:"varint,8,opt,name=binary,proto3" json:"binary,omitempty"`
1518	// Additions is the number of added lines.
1519	Additions int32 `protobuf:"varint,9,opt,name=additions,proto3" json:"additions,omitempty"`
1520	// Deletions is the number of deleted lines.
1521	Deletions int32 `protobuf:"varint,10,opt,name=deletions,proto3" json:"deletions,omitempty"`
1522	// Similarity is the percentage (0-100) of unchanged content for a renamed or
1523	// copied file, and 0 otherwise.
1524	Similarity int32 `protobuf:"varint,11,opt,name=similarity,proto3" json:"similarity,omitempty"`
1525	// Truncated is true when the file exceeded a diff limit: hunks is then empty
1526	// although the file changed. Additions and deletions remain accurate.
1527	Truncated bool `protobuf:"varint,12,opt,name=truncated,proto3" json:"truncated,omitempty"`
1528	// Hunks are the changed regions, in file order. Empty for a binary file, a
1529	// truncated file, a pure rename and a mode-only change.
1530	Hunks         []*Hunk `protobuf:"bytes,13,rep,name=hunks,proto3" json:"hunks,omitempty"`
1531	unknownFields protoimpl.UnknownFields
1532	sizeCache     protoimpl.SizeCache
1533}
1534
1535func (x *FileDiff) Reset() {
1536	*x = FileDiff{}
1537	mi := &file_ermite_git_proto_msgTypes[17]
1538	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1539	ms.StoreMessageInfo(mi)
1540}
1541
1542func (x *FileDiff) String() string {
1543	return protoimpl.X.MessageStringOf(x)
1544}
1545
1546func (*FileDiff) ProtoMessage() {}
1547
1548func (x *FileDiff) ProtoReflect() protoreflect.Message {
1549	mi := &file_ermite_git_proto_msgTypes[17]
1550	if x != nil {
1551		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1552		if ms.LoadMessageInfo() == nil {
1553			ms.StoreMessageInfo(mi)
1554		}
1555		return ms
1556	}
1557	return mi.MessageOf(x)
1558}
1559
1560// Deprecated: Use FileDiff.ProtoReflect.Descriptor instead.
1561func (*FileDiff) Descriptor() ([]byte, []int) {
1562	return file_ermite_git_proto_rawDescGZIP(), []int{17}
1563}
1564
1565func (x *FileDiff) GetOldPath() string {
1566	if x != nil {
1567		return x.OldPath
1568	}
1569	return ""
1570}
1571
1572func (x *FileDiff) GetNewPath() string {
1573	if x != nil {
1574		return x.NewPath
1575	}
1576	return ""
1577}
1578
1579func (x *FileDiff) GetStatus() FileStatus {
1580	if x != nil {
1581		return x.Status
1582	}
1583	return FileStatus_FILE_STATUS_UNSPECIFIED
1584}
1585
1586func (x *FileDiff) GetOldMode() uint32 {
1587	if x != nil {
1588		return x.OldMode
1589	}
1590	return 0
1591}
1592
1593func (x *FileDiff) GetNewMode() uint32 {
1594	if x != nil {
1595		return x.NewMode
1596	}
1597	return 0
1598}
1599
1600func (x *FileDiff) GetOldId() string {
1601	if x != nil {
1602		return x.OldId
1603	}
1604	return ""
1605}
1606
1607func (x *FileDiff) GetNewId() string {
1608	if x != nil {
1609		return x.NewId
1610	}
1611	return ""
1612}
1613
1614func (x *FileDiff) GetBinary() bool {
1615	if x != nil {
1616		return x.Binary
1617	}
1618	return false
1619}
1620
1621func (x *FileDiff) GetAdditions() int32 {
1622	if x != nil {
1623		return x.Additions
1624	}
1625	return 0
1626}
1627
1628func (x *FileDiff) GetDeletions() int32 {
1629	if x != nil {
1630		return x.Deletions
1631	}
1632	return 0
1633}
1634
1635func (x *FileDiff) GetSimilarity() int32 {
1636	if x != nil {
1637		return x.Similarity
1638	}
1639	return 0
1640}
1641
1642func (x *FileDiff) GetTruncated() bool {
1643	if x != nil {
1644		return x.Truncated
1645	}
1646	return false
1647}
1648
1649func (x *FileDiff) GetHunks() []*Hunk {
1650	if x != nil {
1651		return x.Hunks
1652	}
1653	return nil
1654}
1655
1656// Hunk is a contiguous changed region with its context.
1657type Hunk struct {
1658	state protoimpl.MessageState `protogen:"open.v1"`
1659	// OldStart is the 1-based first line of the region in the old file. 0 when
1660	// old_lines is 0 and the file was added.
1661	OldStart int32 `protobuf:"varint,1,opt,name=old_start,json=oldStart,proto3" json:"old_start,omitempty"`
1662	// OldLines is the number of old-side lines in the hunk.
1663	OldLines int32 `protobuf:"varint,2,opt,name=old_lines,json=oldLines,proto3" json:"old_lines,omitempty"`
1664	// NewStart is the 1-based first line of the region in the new file. 0 when
1665	// new_lines is 0 and the file was deleted.
1666	NewStart int32 `protobuf:"varint,3,opt,name=new_start,json=newStart,proto3" json:"new_start,omitempty"`
1667	// NewLines is the number of new-side lines in the hunk.
1668	NewLines int32 `protobuf:"varint,4,opt,name=new_lines,json=newLines,proto3" json:"new_lines,omitempty"`
1669	// Header is the text after the second "@@" of the hunk header, usually the
1670	// enclosing function. It may be empty.
1671	Header string `protobuf:"bytes,5,opt,name=header,proto3" json:"header,omitempty"`
1672	// Lines are the lines of the hunk, in order.
1673	Lines         []*Line `protobuf:"bytes,6,rep,name=lines,proto3" json:"lines,omitempty"`
1674	unknownFields protoimpl.UnknownFields
1675	sizeCache     protoimpl.SizeCache
1676}
1677
1678func (x *Hunk) Reset() {
1679	*x = Hunk{}
1680	mi := &file_ermite_git_proto_msgTypes[18]
1681	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1682	ms.StoreMessageInfo(mi)
1683}
1684
1685func (x *Hunk) String() string {
1686	return protoimpl.X.MessageStringOf(x)
1687}
1688
1689func (*Hunk) ProtoMessage() {}
1690
1691func (x *Hunk) ProtoReflect() protoreflect.Message {
1692	mi := &file_ermite_git_proto_msgTypes[18]
1693	if x != nil {
1694		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1695		if ms.LoadMessageInfo() == nil {
1696			ms.StoreMessageInfo(mi)
1697		}
1698		return ms
1699	}
1700	return mi.MessageOf(x)
1701}
1702
1703// Deprecated: Use Hunk.ProtoReflect.Descriptor instead.
1704func (*Hunk) Descriptor() ([]byte, []int) {
1705	return file_ermite_git_proto_rawDescGZIP(), []int{18}
1706}
1707
1708func (x *Hunk) GetOldStart() int32 {
1709	if x != nil {
1710		return x.OldStart
1711	}
1712	return 0
1713}
1714
1715func (x *Hunk) GetOldLines() int32 {
1716	if x != nil {
1717		return x.OldLines
1718	}
1719	return 0
1720}
1721
1722func (x *Hunk) GetNewStart() int32 {
1723	if x != nil {
1724		return x.NewStart
1725	}
1726	return 0
1727}
1728
1729func (x *Hunk) GetNewLines() int32 {
1730	if x != nil {
1731		return x.NewLines
1732	}
1733	return 0
1734}
1735
1736func (x *Hunk) GetHeader() string {
1737	if x != nil {
1738		return x.Header
1739	}
1740	return ""
1741}
1742
1743func (x *Hunk) GetLines() []*Line {
1744	if x != nil {
1745		return x.Lines
1746	}
1747	return nil
1748}
1749
1750// Line is one line of a hunk.
1751type Line struct {
1752	state protoimpl.MessageState `protogen:"open.v1"`
1753	// Kind tells which side the line belongs to.
1754	Kind LineKind `protobuf:"varint,1,opt,name=kind,proto3,enum=ermite.LineKind" json:"kind,omitempty"`
1755	// OldNumber is the 1-based line number on the old side. 0 for an addition.
1756	OldNumber int32 `protobuf:"varint,2,opt,name=old_number,json=oldNumber,proto3" json:"old_number,omitempty"`
1757	// NewNumber is the 1-based line number on the new side. 0 for a deletion.
1758	NewNumber int32 `protobuf:"varint,3,opt,name=new_number,json=newNumber,proto3" json:"new_number,omitempty"`
1759	// Text is the content without the line terminator. Bytes that are not valid
1760	// UTF-8 are replaced by the replacement character.
1761	Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"`
1762	// NoNewlineAtEof is true when this is the last line of its side and the file
1763	// does not end with a line break there.
1764	NoNewlineAtEof bool `protobuf:"varint,5,opt,name=no_newline_at_eof,json=noNewlineAtEof,proto3" json:"no_newline_at_eof,omitempty"`
1765	unknownFields  protoimpl.UnknownFields
1766	sizeCache      protoimpl.SizeCache
1767}
1768
1769func (x *Line) Reset() {
1770	*x = Line{}
1771	mi := &file_ermite_git_proto_msgTypes[19]
1772	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1773	ms.StoreMessageInfo(mi)
1774}
1775
1776func (x *Line) String() string {
1777	return protoimpl.X.MessageStringOf(x)
1778}
1779
1780func (*Line) ProtoMessage() {}
1781
1782func (x *Line) ProtoReflect() protoreflect.Message {
1783	mi := &file_ermite_git_proto_msgTypes[19]
1784	if x != nil {
1785		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1786		if ms.LoadMessageInfo() == nil {
1787			ms.StoreMessageInfo(mi)
1788		}
1789		return ms
1790	}
1791	return mi.MessageOf(x)
1792}
1793
1794// Deprecated: Use Line.ProtoReflect.Descriptor instead.
1795func (*Line) Descriptor() ([]byte, []int) {
1796	return file_ermite_git_proto_rawDescGZIP(), []int{19}
1797}
1798
1799func (x *Line) GetKind() LineKind {
1800	if x != nil {
1801		return x.Kind
1802	}
1803	return LineKind_LINE_KIND_UNSPECIFIED
1804}
1805
1806func (x *Line) GetOldNumber() int32 {
1807	if x != nil {
1808		return x.OldNumber
1809	}
1810	return 0
1811}
1812
1813func (x *Line) GetNewNumber() int32 {
1814	if x != nil {
1815		return x.NewNumber
1816	}
1817	return 0
1818}
1819
1820func (x *Line) GetText() string {
1821	if x != nil {
1822		return x.Text
1823	}
1824	return ""
1825}
1826
1827func (x *Line) GetNoNewlineAtEof() bool {
1828	if x != nil {
1829		return x.NoNewlineAtEof
1830	}
1831	return false
1832}
1833
1834// ResolveRevisionRequest names a revision.
1835type ResolveRevisionRequest struct {
1836	state protoimpl.MessageState `protogen:"open.v1"`
1837	// Repo is the repository name.
1838	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1839	// Revision is a branch, a tag or a commit id. Empty means HEAD.
1840	Revision      string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
1841	unknownFields protoimpl.UnknownFields
1842	sizeCache     protoimpl.SizeCache
1843}
1844
1845func (x *ResolveRevisionRequest) Reset() {
1846	*x = ResolveRevisionRequest{}
1847	mi := &file_ermite_git_proto_msgTypes[20]
1848	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1849	ms.StoreMessageInfo(mi)
1850}
1851
1852func (x *ResolveRevisionRequest) String() string {
1853	return protoimpl.X.MessageStringOf(x)
1854}
1855
1856func (*ResolveRevisionRequest) ProtoMessage() {}
1857
1858func (x *ResolveRevisionRequest) ProtoReflect() protoreflect.Message {
1859	mi := &file_ermite_git_proto_msgTypes[20]
1860	if x != nil {
1861		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1862		if ms.LoadMessageInfo() == nil {
1863			ms.StoreMessageInfo(mi)
1864		}
1865		return ms
1866	}
1867	return mi.MessageOf(x)
1868}
1869
1870// Deprecated: Use ResolveRevisionRequest.ProtoReflect.Descriptor instead.
1871func (*ResolveRevisionRequest) Descriptor() ([]byte, []int) {
1872	return file_ermite_git_proto_rawDescGZIP(), []int{20}
1873}
1874
1875func (x *ResolveRevisionRequest) GetRepo() string {
1876	if x != nil {
1877		return x.Repo
1878	}
1879	return ""
1880}
1881
1882func (x *ResolveRevisionRequest) GetRevision() string {
1883	if x != nil {
1884		return x.Revision
1885	}
1886	return ""
1887}
1888
1889// ResolveRevisionResponse holds the resolved commit.
1890type ResolveRevisionResponse struct {
1891	state protoimpl.MessageState `protogen:"open.v1"`
1892	// CommitId is the full id of the commit the revision designates, after
1893	// following annotated tags.
1894	CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
1895	// Ref is the full name of the ref the revision matched, for example
1896	// "refs/heads/main". Empty when the revision was a commit id or for HEAD
1897	// when it is resolved by default.
1898	Ref           string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"`
1899	unknownFields protoimpl.UnknownFields
1900	sizeCache     protoimpl.SizeCache
1901}
1902
1903func (x *ResolveRevisionResponse) Reset() {
1904	*x = ResolveRevisionResponse{}
1905	mi := &file_ermite_git_proto_msgTypes[21]
1906	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1907	ms.StoreMessageInfo(mi)
1908}
1909
1910func (x *ResolveRevisionResponse) String() string {
1911	return protoimpl.X.MessageStringOf(x)
1912}
1913
1914func (*ResolveRevisionResponse) ProtoMessage() {}
1915
1916func (x *ResolveRevisionResponse) ProtoReflect() protoreflect.Message {
1917	mi := &file_ermite_git_proto_msgTypes[21]
1918	if x != nil {
1919		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1920		if ms.LoadMessageInfo() == nil {
1921			ms.StoreMessageInfo(mi)
1922		}
1923		return ms
1924	}
1925	return mi.MessageOf(x)
1926}
1927
1928// Deprecated: Use ResolveRevisionResponse.ProtoReflect.Descriptor instead.
1929func (*ResolveRevisionResponse) Descriptor() ([]byte, []int) {
1930	return file_ermite_git_proto_rawDescGZIP(), []int{21}
1931}
1932
1933func (x *ResolveRevisionResponse) GetCommitId() string {
1934	if x != nil {
1935		return x.CommitId
1936	}
1937	return ""
1938}
1939
1940func (x *ResolveRevisionResponse) GetRef() string {
1941	if x != nil {
1942		return x.Ref
1943	}
1944	return ""
1945}
1946
1947var File_ermite_git_proto protoreflect.FileDescriptor
1948
1949const file_ermite_git_proto_rawDesc = "" +
1950	"\n" +
1951	"\x10ermite/git.proto\x12\x06ermite\x1a\x12ermite/types.proto\"\x8a\x01\n" +
1952	"\x03Ref\x12\x12\n" +
1953	"\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n" +
1954	"\n" +
1955	"short_name\x18\x02 \x01(\tR\tshortName\x12#\n" +
1956	"\x04kind\x18\x03 \x01(\x0e2\x0f.ermite.RefKindR\x04kind\x12\x0e\n" +
1957	"\x02id\x18\x04 \x01(\tR\x02id\x12\x1b\n" +
1958	"\tcommit_id\x18\x05 \x01(\tR\bcommitId\"\x88\x01\n" +
1959	"\x0fListRefsRequest\x12\x12\n" +
1960	"\x04repo\x18\x01 \x01(\tR\x04repo\x12%\n" +
1961	"\x05kinds\x18\x02 \x03(\x0e2\x0f.ermite.RefKindR\x05kinds\x12\x1b\n" +
1962	"\tpage_size\x18\x03 \x01(\x05R\bpageSize\x12\x1d\n" +
1963	"\n" +
1964	"page_token\x18\x04 \x01(\tR\tpageToken\"[\n" +
1965	"\x10ListRefsResponse\x12\x1f\n" +
1966	"\x04refs\x18\x01 \x03(\v2\v.ermite.RefR\x04refs\x12&\n" +
1967	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xc3\x01\n" +
1968	"\tTreeEntry\x12\x12\n" +
1969	"\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" +
1970	"\x04path\x18\x02 \x01(\tR\x04path\x12%\n" +
1971	"\x04kind\x18\x03 \x01(\x0e2\x11.ermite.EntryKindR\x04kind\x12\x12\n" +
1972	"\x04mode\x18\x04 \x01(\rR\x04mode\x12\x0e\n" +
1973	"\x02id\x18\x05 \x01(\tR\x02id\x12\x12\n" +
1974	"\x04size\x18\x06 \x01(\x03R\x04size\x12/\n" +
1975	"\vlast_commit\x18\a \x01(\v2\x0e.ermite.CommitR\n" +
1976	"lastCommit\"\x84\x01\n" +
1977	"\x0eGetTreeRequest\x12\x12\n" +
1978	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1a\n" +
1979	"\brevision\x18\x02 \x01(\tR\brevision\x12\x12\n" +
1980	"\x04path\x18\x03 \x01(\tR\x04path\x12.\n" +
1981	"\x13include_last_commit\x18\x04 \x01(\bR\x11includeLastCommit\"\xc8\x01\n" +
1982	"\x0fGetTreeResponse\x12\x1b\n" +
1983	"\tcommit_id\x18\x01 \x01(\tR\bcommitId\x12\x17\n" +
1984	"\atree_id\x18\x02 \x01(\tR\x06treeId\x12+\n" +
1985	"\aentries\x18\x03 \x03(\v2\x11.ermite.TreeEntryR\aentries\x124\n" +
1986	"\x16last_commits_truncated\x18\x04 \x01(\bR\x14lastCommitsTruncated\x12\x1c\n" +
1987	"\ttruncated\x18\x05 \x01(\bR\ttruncated\"B\n" +
1988	"\x10ListPathsRequest\x12\x12\n" +
1989	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1a\n" +
1990	"\brevision\x18\x02 \x01(\tR\brevision\"}\n" +
1991	"\x11ListPathsResponse\x12\x1b\n" +
1992	"\tcommit_id\x18\x01 \x01(\tR\bcommitId\x12\x17\n" +
1993	"\atree_id\x18\x02 \x01(\tR\x06treeId\x12\x14\n" +
1994	"\x05paths\x18\x03 \x03(\tR\x05paths\x12\x1c\n" +
1995	"\ttruncated\x18\x04 \x01(\bR\ttruncated\"\x8d\x01\n" +
1996	"\bBlobInfo\x12\x0e\n" +
1997	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
1998	"\x04path\x18\x02 \x01(\tR\x04path\x12\x12\n" +
1999	"\x04size\x18\x03 \x01(\x03R\x04size\x12\x16\n" +
2000	"\x06binary\x18\x04 \x01(\bR\x06binary\x12\x1d\n" +
2001	"\n" +
2002	"media_type\x18\x05 \x01(\tR\tmediaType\x12\x12\n" +
2003	"\x04mode\x18\x06 \x01(\rR\x04mode\"T\n" +
2004	"\x0eGetBlobRequest\x12\x12\n" +
2005	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1a\n" +
2006	"\brevision\x18\x02 \x01(\tR\brevision\x12\x12\n" +
2007	"\x04path\x18\x03 \x01(\tR\x04path\"M\n" +
2008	"\x0fGetBlobResponse\x12$\n" +
2009	"\x04info\x18\x01 \x01(\v2\x10.ermite.BlobInfoR\x04info\x12\x14\n" +
2010	"\x05chunk\x18\x02 \x01(\fR\x05chunk\"\x94\x01\n" +
2011	"\x12ListCommitsRequest\x12\x12\n" +
2012	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1a\n" +
2013	"\brevision\x18\x02 \x01(\tR\brevision\x12\x12\n" +
2014	"\x04path\x18\x03 \x01(\tR\x04path\x12\x1b\n" +
2015	"\tpage_size\x18\x04 \x01(\x05R\bpageSize\x12\x1d\n" +
2016	"\n" +
2017	"page_token\x18\x05 \x01(\tR\tpageToken\"g\n" +
2018	"\x13ListCommitsResponse\x12(\n" +
2019	"\acommits\x18\x01 \x03(\v2\x0e.ermite.CommitR\acommits\x12&\n" +
2020	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"B\n" +
2021	"\x10GetCommitRequest\x12\x12\n" +
2022	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1a\n" +
2023	"\brevision\x18\x02 \x01(\tR\brevision\"\x86\x01\n" +
2024	"\x11GetCommitResponse\x12&\n" +
2025	"\x06commit\x18\x01 \x01(\v2\x0e.ermite.CommitR\x06commit\x12'\n" +
2026	"\x05stats\x18\x02 \x01(\v2\x11.ermite.DiffStatsR\x05stats\x12 \n" +
2027	"\x04diff\x18\x03 \x01(\v2\f.ermite.DiffR\x04diff\"l\n" +
2028	"\tDiffStats\x12#\n" +
2029	"\rfiles_changed\x18\x01 \x01(\x05R\ffilesChanged\x12\x1c\n" +
2030	"\tadditions\x18\x02 \x01(\x05R\tadditions\x12\x1c\n" +
2031	"\tdeletions\x18\x03 \x01(\x05R\tdeletions\"L\n" +
2032	"\x04Diff\x12&\n" +
2033	"\x05files\x18\x01 \x03(\v2\x10.ermite.FileDiffR\x05files\x12\x1c\n" +
2034	"\ttruncated\x18\x02 \x01(\bR\ttruncated\"\x86\x03\n" +
2035	"\bFileDiff\x12\x19\n" +
2036	"\bold_path\x18\x01 \x01(\tR\aoldPath\x12\x19\n" +
2037	"\bnew_path\x18\x02 \x01(\tR\anewPath\x12*\n" +
2038	"\x06status\x18\x03 \x01(\x0e2\x12.ermite.FileStatusR\x06status\x12\x19\n" +
2039	"\bold_mode\x18\x04 \x01(\rR\aoldMode\x12\x19\n" +
2040	"\bnew_mode\x18\x05 \x01(\rR\anewMode\x12\x15\n" +
2041	"\x06old_id\x18\x06 \x01(\tR\x05oldId\x12\x15\n" +
2042	"\x06new_id\x18\a \x01(\tR\x05newId\x12\x16\n" +
2043	"\x06binary\x18\b \x01(\bR\x06binary\x12\x1c\n" +
2044	"\tadditions\x18\t \x01(\x05R\tadditions\x12\x1c\n" +
2045	"\tdeletions\x18\n" +
2046	" \x01(\x05R\tdeletions\x12\x1e\n" +
2047	"\n" +
2048	"similarity\x18\v \x01(\x05R\n" +
2049	"similarity\x12\x1c\n" +
2050	"\ttruncated\x18\f \x01(\bR\ttruncated\x12\"\n" +
2051	"\x05hunks\x18\r \x03(\v2\f.ermite.HunkR\x05hunks\"\xb6\x01\n" +
2052	"\x04Hunk\x12\x1b\n" +
2053	"\told_start\x18\x01 \x01(\x05R\boldStart\x12\x1b\n" +
2054	"\told_lines\x18\x02 \x01(\x05R\boldLines\x12\x1b\n" +
2055	"\tnew_start\x18\x03 \x01(\x05R\bnewStart\x12\x1b\n" +
2056	"\tnew_lines\x18\x04 \x01(\x05R\bnewLines\x12\x16\n" +
2057	"\x06header\x18\x05 \x01(\tR\x06header\x12\"\n" +
2058	"\x05lines\x18\x06 \x03(\v2\f.ermite.LineR\x05lines\"\xa9\x01\n" +
2059	"\x04Line\x12$\n" +
2060	"\x04kind\x18\x01 \x01(\x0e2\x10.ermite.LineKindR\x04kind\x12\x1d\n" +
2061	"\n" +
2062	"old_number\x18\x02 \x01(\x05R\toldNumber\x12\x1d\n" +
2063	"\n" +
2064	"new_number\x18\x03 \x01(\x05R\tnewNumber\x12\x12\n" +
2065	"\x04text\x18\x04 \x01(\tR\x04text\x12)\n" +
2066	"\x11no_newline_at_eof\x18\x05 \x01(\bR\x0enoNewlineAtEof\"H\n" +
2067	"\x16ResolveRevisionRequest\x12\x12\n" +
2068	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1a\n" +
2069	"\brevision\x18\x02 \x01(\tR\brevision\"H\n" +
2070	"\x17ResolveRevisionResponse\x12\x1b\n" +
2071	"\tcommit_id\x18\x01 \x01(\tR\bcommitId\x12\x10\n" +
2072	"\x03ref\x18\x02 \x01(\tR\x03ref*]\n" +
2073	"\aRefKind\x12\x18\n" +
2074	"\x14REF_KIND_UNSPECIFIED\x10\x00\x12\x13\n" +
2075	"\x0fREF_KIND_BRANCH\x10\x01\x12\x10\n" +
2076	"\fREF_KIND_TAG\x10\x02\x12\x11\n" +
2077	"\rREF_KIND_HEAD\x10\x03*\xa3\x01\n" +
2078	"\tEntryKind\x12\x1a\n" +
2079	"\x16ENTRY_KIND_UNSPECIFIED\x10\x00\x12\x13\n" +
2080	"\x0fENTRY_KIND_FILE\x10\x01\x12\x19\n" +
2081	"\x15ENTRY_KIND_EXECUTABLE\x10\x02\x12\x18\n" +
2082	"\x14ENTRY_KIND_DIRECTORY\x10\x03\x12\x16\n" +
2083	"\x12ENTRY_KIND_SYMLINK\x10\x04\x12\x18\n" +
2084	"\x14ENTRY_KIND_SUBMODULE\x10\x05*\xc2\x01\n" +
2085	"\n" +
2086	"FileStatus\x12\x1b\n" +
2087	"\x17FILE_STATUS_UNSPECIFIED\x10\x00\x12\x15\n" +
2088	"\x11FILE_STATUS_ADDED\x10\x01\x12\x17\n" +
2089	"\x13FILE_STATUS_DELETED\x10\x02\x12\x18\n" +
2090	"\x14FILE_STATUS_MODIFIED\x10\x03\x12\x17\n" +
2091	"\x13FILE_STATUS_RENAMED\x10\x04\x12\x16\n" +
2092	"\x12FILE_STATUS_COPIED\x10\x05\x12\x1c\n" +
2093	"\x18FILE_STATUS_TYPE_CHANGED\x10\x06*l\n" +
2094	"\bLineKind\x12\x19\n" +
2095	"\x15LINE_KIND_UNSPECIFIED\x10\x00\x12\x15\n" +
2096	"\x11LINE_KIND_CONTEXT\x10\x01\x12\x16\n" +
2097	"\x12LINE_KIND_ADDITION\x10\x02\x12\x16\n" +
2098	"\x12LINE_KIND_DELETION\x10\x032\xe5\x03\n" +
2099	"\n" +
2100	"GitService\x12=\n" +
2101	"\bListRefs\x12\x17.ermite.ListRefsRequest\x1a\x18.ermite.ListRefsResponse\x12:\n" +
2102	"\aGetTree\x12\x16.ermite.GetTreeRequest\x1a\x17.ermite.GetTreeResponse\x12@\n" +
2103	"\tListPaths\x12\x18.ermite.ListPathsRequest\x1a\x19.ermite.ListPathsResponse\x12<\n" +
2104	"\aGetBlob\x12\x16.ermite.GetBlobRequest\x1a\x17.ermite.GetBlobResponse0\x01\x12F\n" +
2105	"\vListCommits\x12\x1a.ermite.ListCommitsRequest\x1a\x1b.ermite.ListCommitsResponse\x12@\n" +
2106	"\tGetCommit\x12\x18.ermite.GetCommitRequest\x1a\x19.ermite.GetCommitResponse\x12R\n" +
2107	"\x0fResolveRevision\x12\x1e.ermite.ResolveRevisionRequest\x1a\x1f.ermite.ResolveRevisionResponseBo\n" +
2108	"\n" +
2109	"com.ermiteB\bGitProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
2110
2111var (
2112	file_ermite_git_proto_rawDescOnce sync.Once
2113	file_ermite_git_proto_rawDescData []byte
2114)
2115
2116func file_ermite_git_proto_rawDescGZIP() []byte {
2117	file_ermite_git_proto_rawDescOnce.Do(func() {
2118		file_ermite_git_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_git_proto_rawDesc), len(file_ermite_git_proto_rawDesc)))
2119	})
2120	return file_ermite_git_proto_rawDescData
2121}
2122
2123var file_ermite_git_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
2124var file_ermite_git_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
2125var file_ermite_git_proto_goTypes = []any{
2126	(RefKind)(0),                    // 0: ermite.RefKind
2127	(EntryKind)(0),                  // 1: ermite.EntryKind
2128	(FileStatus)(0),                 // 2: ermite.FileStatus
2129	(LineKind)(0),                   // 3: ermite.LineKind
2130	(*Ref)(nil),                     // 4: ermite.Ref
2131	(*ListRefsRequest)(nil),         // 5: ermite.ListRefsRequest
2132	(*ListRefsResponse)(nil),        // 6: ermite.ListRefsResponse
2133	(*TreeEntry)(nil),               // 7: ermite.TreeEntry
2134	(*GetTreeRequest)(nil),          // 8: ermite.GetTreeRequest
2135	(*GetTreeResponse)(nil),         // 9: ermite.GetTreeResponse
2136	(*ListPathsRequest)(nil),        // 10: ermite.ListPathsRequest
2137	(*ListPathsResponse)(nil),       // 11: ermite.ListPathsResponse
2138	(*BlobInfo)(nil),                // 12: ermite.BlobInfo
2139	(*GetBlobRequest)(nil),          // 13: ermite.GetBlobRequest
2140	(*GetBlobResponse)(nil),         // 14: ermite.GetBlobResponse
2141	(*ListCommitsRequest)(nil),      // 15: ermite.ListCommitsRequest
2142	(*ListCommitsResponse)(nil),     // 16: ermite.ListCommitsResponse
2143	(*GetCommitRequest)(nil),        // 17: ermite.GetCommitRequest
2144	(*GetCommitResponse)(nil),       // 18: ermite.GetCommitResponse
2145	(*DiffStats)(nil),               // 19: ermite.DiffStats
2146	(*Diff)(nil),                    // 20: ermite.Diff
2147	(*FileDiff)(nil),                // 21: ermite.FileDiff
2148	(*Hunk)(nil),                    // 22: ermite.Hunk
2149	(*Line)(nil),                    // 23: ermite.Line
2150	(*ResolveRevisionRequest)(nil),  // 24: ermite.ResolveRevisionRequest
2151	(*ResolveRevisionResponse)(nil), // 25: ermite.ResolveRevisionResponse
2152	(*Commit)(nil),                  // 26: ermite.Commit
2153}
2154var file_ermite_git_proto_depIdxs = []int32{
2155	0,  // 0: ermite.Ref.kind:type_name -> ermite.RefKind
2156	0,  // 1: ermite.ListRefsRequest.kinds:type_name -> ermite.RefKind
2157	4,  // 2: ermite.ListRefsResponse.refs:type_name -> ermite.Ref
2158	1,  // 3: ermite.TreeEntry.kind:type_name -> ermite.EntryKind
2159	26, // 4: ermite.TreeEntry.last_commit:type_name -> ermite.Commit
2160	7,  // 5: ermite.GetTreeResponse.entries:type_name -> ermite.TreeEntry
2161	12, // 6: ermite.GetBlobResponse.info:type_name -> ermite.BlobInfo
2162	26, // 7: ermite.ListCommitsResponse.commits:type_name -> ermite.Commit
2163	26, // 8: ermite.GetCommitResponse.commit:type_name -> ermite.Commit
2164	19, // 9: ermite.GetCommitResponse.stats:type_name -> ermite.DiffStats
2165	20, // 10: ermite.GetCommitResponse.diff:type_name -> ermite.Diff
2166	21, // 11: ermite.Diff.files:type_name -> ermite.FileDiff
2167	2,  // 12: ermite.FileDiff.status:type_name -> ermite.FileStatus
2168	22, // 13: ermite.FileDiff.hunks:type_name -> ermite.Hunk
2169	23, // 14: ermite.Hunk.lines:type_name -> ermite.Line
2170	3,  // 15: ermite.Line.kind:type_name -> ermite.LineKind
2171	5,  // 16: ermite.GitService.ListRefs:input_type -> ermite.ListRefsRequest
2172	8,  // 17: ermite.GitService.GetTree:input_type -> ermite.GetTreeRequest
2173	10, // 18: ermite.GitService.ListPaths:input_type -> ermite.ListPathsRequest
2174	13, // 19: ermite.GitService.GetBlob:input_type -> ermite.GetBlobRequest
2175	15, // 20: ermite.GitService.ListCommits:input_type -> ermite.ListCommitsRequest
2176	17, // 21: ermite.GitService.GetCommit:input_type -> ermite.GetCommitRequest
2177	24, // 22: ermite.GitService.ResolveRevision:input_type -> ermite.ResolveRevisionRequest
2178	6,  // 23: ermite.GitService.ListRefs:output_type -> ermite.ListRefsResponse
2179	9,  // 24: ermite.GitService.GetTree:output_type -> ermite.GetTreeResponse
2180	11, // 25: ermite.GitService.ListPaths:output_type -> ermite.ListPathsResponse
2181	14, // 26: ermite.GitService.GetBlob:output_type -> ermite.GetBlobResponse
2182	16, // 27: ermite.GitService.ListCommits:output_type -> ermite.ListCommitsResponse
2183	18, // 28: ermite.GitService.GetCommit:output_type -> ermite.GetCommitResponse
2184	25, // 29: ermite.GitService.ResolveRevision:output_type -> ermite.ResolveRevisionResponse
2185	23, // [23:30] is the sub-list for method output_type
2186	16, // [16:23] is the sub-list for method input_type
2187	16, // [16:16] is the sub-list for extension type_name
2188	16, // [16:16] is the sub-list for extension extendee
2189	0,  // [0:16] is the sub-list for field type_name
2190}
2191
2192func init() { file_ermite_git_proto_init() }
2193func file_ermite_git_proto_init() {
2194	if File_ermite_git_proto != nil {
2195		return
2196	}
2197	file_ermite_types_proto_init()
2198	type x struct{}
2199	out := protoimpl.TypeBuilder{
2200		File: protoimpl.DescBuilder{
2201			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2202			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_git_proto_rawDesc), len(file_ermite_git_proto_rawDesc)),
2203			NumEnums:      4,
2204			NumMessages:   22,
2205			NumExtensions: 0,
2206			NumServices:   1,
2207		},
2208		GoTypes:           file_ermite_git_proto_goTypes,
2209		DependencyIndexes: file_ermite_git_proto_depIdxs,
2210		EnumInfos:         file_ermite_git_proto_enumTypes,
2211		MessageInfos:      file_ermite_git_proto_msgTypes,
2212	}.Build()
2213	File_ermite_git_proto = out.File
2214	file_ermite_git_proto_goTypes = nil
2215	file_ermite_git_proto_depIdxs = nil
2216}

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