v0.3.0 5c335b8

run.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/run.proto
8
9package ermite
10
11import (
12	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
15	reflect "reflect"
16	sync "sync"
17	unsafe "unsafe"
18)
19
20const (
21	// Verify that this generated code is sufficiently up-to-date.
22	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
23	// Verify that runtime/protoimpl is sufficiently up-to-date.
24	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
25)
26
27// Run is one execution of one workflow file for one event, like a GitHub
28// workflow run. A re-run keeps the run and adds an attempt.
29type Run struct {
30	state protoimpl.MessageState `protogen:"open.v1"`
31	// Repo is the name of the repository.
32	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
33	// Id identifies the run on the whole server: it is the "github.run_id".
34	// Increasing, never reused.
35	Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
36	// Number counts the runs of the same workflow file in the repository,
37	// starting at 1, never reused: it is the "github.run_number". It does not
38	// change on a re-run.
39	Number int64 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"`
40	// Attempt is the attempt this message describes: 1 for the first, one more
41	// after each RerunRun. ListRuns and events describe the latest attempt;
42	// GetRun can ask for another one.
43	Attempt int32 `protobuf:"varint,4,opt,name=attempt,proto3" json:"attempt,omitempty"`
44	// WorkflowPath is the path of the workflow file at sha, for example
45	// ".github/workflows/ci.yml".
46	WorkflowPath string `protobuf:"bytes,5,opt,name=workflow_path,json=workflowPath,proto3" json:"workflow_path,omitempty"`
47	// WorkflowName is the "name" of the workflow, or workflow_path when it has
48	// none (as GitHub does). It is the "github.workflow" of the run and the
49	// workflow name of its checks. See name for the name of the run itself.
50	WorkflowName string `protobuf:"bytes,6,opt,name=workflow_name,json=workflowName,proto3" json:"workflow_name,omitempty"`
51	// Title is GitHub's display title, at most 256 characters: the evaluated
52	// "run-name" of the workflow when it has one, else for a push to a branch
53	// the first line of the message of the commit sha, and for a push of a tag
54	// the name of the workflow registered for workflow_path (the "name" of that
55	// file on the default branch, else workflow_name).
56	Title string `protobuf:"bytes,7,opt,name=title,proto3" json:"title,omitempty"`
57	// Event is the event that triggered the run, in GitHub's name: "push" (push
58	// to a branch or a tag, and merge of a merge request), and from servers with
59	// the matching trigger "pull_request", "workflow_dispatch", "schedule" and
60	// "workflow_run". New values may be added; clients show the ones they do not
61	// know as they are.
62	Event string `protobuf:"bytes,8,opt,name=event,proto3" json:"event,omitempty"`
63	// Ref is the full ref name that was pushed, for example "refs/heads/main"
64	// or "refs/tags/v1.0.0".
65	Ref string `protobuf:"bytes,9,opt,name=ref,proto3" json:"ref,omitempty"`
66	// Sha is the full id of the commit the run is for.
67	Sha string `protobuf:"bytes,10,opt,name=sha,proto3" json:"sha,omitempty"`
68	// Actor names who triggered the run: the label of the token that pushed, or
69	// "root", or "owner" (a web session, a merge of the web UI), as
70	// MergeRequest.author. It is informational.
71	Actor string `protobuf:"bytes,11,opt,name=actor,proto3" json:"actor,omitempty"`
72	// Status is where this attempt is: QUEUED until a job starts, IN_PROGRESS
73	// while jobs run or wait, COMPLETED when every job is over.
74	Status CiStatus `protobuf:"varint,12,opt,name=status,proto3,enum=ermite.CiStatus" json:"status,omitempty"`
75	// Conclusion is how this attempt ended, from its jobs' conclusions like
76	// GitHub: CANCELLED if it was cancelled, else FAILURE if a job failed or
77	// timed out, else SUCCESS (also when jobs were skipped). Unset until
78	// status is COMPLETED.
79	Conclusion CiConclusion `protobuf:"varint,13,opt,name=conclusion,proto3,enum=ermite.CiConclusion" json:"conclusion,omitempty"`
80	// Error is set when the run failed without running a job because the
81	// workflow could not be used: an invalid workflow file (the run then has
82	// no jobs and conclusion FAILURE), as GitHub's "Invalid workflow file".
83	// It holds the errors with their positions, one per line, at most 8 KiB.
84	// Empty otherwise.
85	Error string `protobuf:"bytes,14,opt,name=error,proto3" json:"error,omitempty"`
86	// CreatedAt is when this attempt was created: for attempt 1 when the
87	// trigger was planned, for later ones when RerunRun was called.
88	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
89	// StartedAt is when the first job of this attempt was given to a runner.
90	// Unset until then.
91	StartedAt *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
92	// CompletedAt is when this attempt completed. Unset until then.
93	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
94	// Version counts the changes of this run on the server: it grows by at least
95	// one at every change and never goes back, also across attempts. Events are
96	// not delivered in order, and a client that holds two copies of a run keeps
97	// the one with the higher version and drops the other.
98	Version int64 `protobuf:"varint,18,opt,name=version,proto3" json:"version,omitempty"`
99	// Name is the name of the run, GitHub's "name" of a workflow run: the
100	// evaluated "run-name" of the workflow when it has one, else the same value
101	// as workflow_name. It is what GitHub lists as the run's name, whereas
102	// workflow_name stays the name of the workflow ("github.workflow") even when
103	// the workflow has a "run-name". A run stored before this field existed
104	// reads as workflow_name.
105	Name string `protobuf:"bytes,19,opt,name=name,proto3" json:"name,omitempty"`
106	// Trusted is true when the run may use secrets and a job token with write
107	// permissions: its actor is the owner, a "workflow_run" inherits it from the
108	// run that triggered it, and a re-run keeps it only if the original run had
109	// it and the caller of the re-run is the owner. It is false when the actor
110	// is a token limited to branches (see Job.trusted). It never goes from false
111	// to true. False for a run stored before this field existed and from servers
112	// without the feature "ci.secrets".
113	Trusted       bool `protobuf:"varint,20,opt,name=trusted,proto3" json:"trusted,omitempty"`
114	unknownFields protoimpl.UnknownFields
115	sizeCache     protoimpl.SizeCache
116}
117
118func (x *Run) Reset() {
119	*x = Run{}
120	mi := &file_ermite_run_proto_msgTypes[0]
121	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
122	ms.StoreMessageInfo(mi)
123}
124
125func (x *Run) String() string {
126	return protoimpl.X.MessageStringOf(x)
127}
128
129func (*Run) ProtoMessage() {}
130
131func (x *Run) ProtoReflect() protoreflect.Message {
132	mi := &file_ermite_run_proto_msgTypes[0]
133	if x != nil {
134		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
135		if ms.LoadMessageInfo() == nil {
136			ms.StoreMessageInfo(mi)
137		}
138		return ms
139	}
140	return mi.MessageOf(x)
141}
142
143// Deprecated: Use Run.ProtoReflect.Descriptor instead.
144func (*Run) Descriptor() ([]byte, []int) {
145	return file_ermite_run_proto_rawDescGZIP(), []int{0}
146}
147
148func (x *Run) GetRepo() string {
149	if x != nil {
150		return x.Repo
151	}
152	return ""
153}
154
155func (x *Run) GetId() int64 {
156	if x != nil {
157		return x.Id
158	}
159	return 0
160}
161
162func (x *Run) GetNumber() int64 {
163	if x != nil {
164		return x.Number
165	}
166	return 0
167}
168
169func (x *Run) GetAttempt() int32 {
170	if x != nil {
171		return x.Attempt
172	}
173	return 0
174}
175
176func (x *Run) GetWorkflowPath() string {
177	if x != nil {
178		return x.WorkflowPath
179	}
180	return ""
181}
182
183func (x *Run) GetWorkflowName() string {
184	if x != nil {
185		return x.WorkflowName
186	}
187	return ""
188}
189
190func (x *Run) GetTitle() string {
191	if x != nil {
192		return x.Title
193	}
194	return ""
195}
196
197func (x *Run) GetEvent() string {
198	if x != nil {
199		return x.Event
200	}
201	return ""
202}
203
204func (x *Run) GetRef() string {
205	if x != nil {
206		return x.Ref
207	}
208	return ""
209}
210
211func (x *Run) GetSha() string {
212	if x != nil {
213		return x.Sha
214	}
215	return ""
216}
217
218func (x *Run) GetActor() string {
219	if x != nil {
220		return x.Actor
221	}
222	return ""
223}
224
225func (x *Run) GetStatus() CiStatus {
226	if x != nil {
227		return x.Status
228	}
229	return CiStatus_CI_STATUS_UNSPECIFIED
230}
231
232func (x *Run) GetConclusion() CiConclusion {
233	if x != nil {
234		return x.Conclusion
235	}
236	return CiConclusion_CI_CONCLUSION_UNSPECIFIED
237}
238
239func (x *Run) GetError() string {
240	if x != nil {
241		return x.Error
242	}
243	return ""
244}
245
246func (x *Run) GetCreatedAt() *timestamppb.Timestamp {
247	if x != nil {
248		return x.CreatedAt
249	}
250	return nil
251}
252
253func (x *Run) GetStartedAt() *timestamppb.Timestamp {
254	if x != nil {
255		return x.StartedAt
256	}
257	return nil
258}
259
260func (x *Run) GetCompletedAt() *timestamppb.Timestamp {
261	if x != nil {
262		return x.CompletedAt
263	}
264	return nil
265}
266
267func (x *Run) GetVersion() int64 {
268	if x != nil {
269		return x.Version
270	}
271	return 0
272}
273
274func (x *Run) GetName() string {
275	if x != nil {
276		return x.Name
277	}
278	return ""
279}
280
281func (x *Run) GetTrusted() bool {
282	if x != nil {
283		return x.Trusted
284	}
285	return false
286}
287
288// RunJob is a job of a run as people see it: the state of one job instance
289// (one matrix combination is one job) in one attempt. It is not Job, which is
290// what a runner receives.
291type RunJob struct {
292	state protoimpl.MessageState `protogen:"open.v1"`
293	// Id is the Job.job_id. It is the same in every attempt.
294	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
295	// RunId is the run the job belongs to.
296	RunId int64 `protobuf:"varint,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
297	// Attempt is the attempt of the run in which this job executed. It is lower
298	// than the attempt of the run when the job was kept from an earlier attempt
299	// by a re-run of the failed jobs only; the log and steps are then those of
300	// that earlier attempt. Pass it to GetJob and GetJobLog.
301	Attempt int32 `protobuf:"varint,3,opt,name=attempt,proto3" json:"attempt,omitempty"`
302	// Repo is the name of the repository.
303	Repo string `protobuf:"bytes,4,opt,name=repo,proto3" json:"repo,omitempty"`
304	// Key is the key of the job under "jobs:" in the workflow (the
305	// "github.job"). Matrix instances of one job share it.
306	Key string `protobuf:"bytes,5,opt,name=key,proto3" json:"key,omitempty"`
307	// Name is the display name of the job, evaluated, with the matrix suffix as
308	// GitHub names them, for example "build (linux, 1.27)". It is also the
309	// name of the job's check.
310	Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
311	// Status is where the job is. A job waits QUEUED for a runner and for the
312	// jobs it needs, and PENDING for its concurrency group.
313	Status CiStatus `protobuf:"varint,7,opt,name=status,proto3,enum=ermite.CiStatus" json:"status,omitempty"`
314	// Conclusion is how the job ended. Unset until status is COMPLETED.
315	Conclusion CiConclusion `protobuf:"varint,8,opt,name=conclusion,proto3,enum=ermite.CiConclusion" json:"conclusion,omitempty"`
316	// Error explains a FAILURE, CANCELLED or TIMED_OUT that no step explains, in
317	// GitHub's words where it has them: the runner was lost ("The self-hosted
318	// runner: <name> lost communication with the server..."), it received a
319	// shutdown signal, no runner took the job within 24 hours, the log limit
320	// was reached, the workflow uses a feature that is not supported yet
321	// ("not supported yet: <feature>"). At most 4 KiB. Empty otherwise.
322	Error string `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
323	// Labels are the runs-on labels of the job, evaluated. Empty while the job
324	// is not planned yet.
325	Labels []string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty"`
326	// Needs are the keys of the jobs this job needs, for drawing the graph.
327	Needs []string `protobuf:"bytes,11,rep,name=needs,proto3" json:"needs,omitempty"`
328	// RunnerId is the id of the runner that executed or is executing the job.
329	// Empty while queued, and when the runner has since been removed (runner_name
330	// and isolation are kept).
331	RunnerId string `protobuf:"bytes,12,opt,name=runner_id,json=runnerId,proto3" json:"runner_id,omitempty"`
332	// RunnerName is the name of that runner. Empty while queued.
333	RunnerName string `protobuf:"bytes,13,opt,name=runner_name,json=runnerName,proto3" json:"runner_name,omitempty"`
334	// Isolation is how that runner isolated the job. UNSPECIFIED while queued.
335	Isolation RunnerIsolation `protobuf:"varint,14,opt,name=isolation,proto3,enum=ermite.RunnerIsolation" json:"isolation,omitempty"`
336	// Steps are the steps reported so far, ordered by number, including the
337	// implicit "Set up job" and "Complete job". Empty while queued. Always
338	// set, including in JobUpdated events.
339	Steps []*Step `protobuf:"bytes,15,rep,name=steps,proto3" json:"steps,omitempty"`
340	// CreatedAt is when the job was created (planned).
341	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
342	// StartedAt is when the job was given to a runner. Unset until then.
343	StartedAt *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
344	// CompletedAt is when the job completed. Unset until then.
345	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
346	// Version counts the changes of this job on the server (status, conclusion,
347	// runner, steps, with any attempt): it grows by at least one at every change
348	// and never goes back. A client that holds two copies of a job keeps the
349	// one with the higher version and drops the other, as for Run.version.
350	Version int64 `protobuf:"varint,19,opt,name=version,proto3" json:"version,omitempty"`
351	// ConcurrencyGroup is the evaluated concurrency group of the job (its
352	// "concurrency:", or the one of its workflow), compared without regard to
353	// case within the repository. Empty when the job has none and from servers
354	// without the feature "ci.concurrency". The job is PENDING while another job
355	// of the group runs or a newer one is waiting.
356	ConcurrencyGroup string `protobuf:"bytes,20,opt,name=concurrency_group,json=concurrencyGroup,proto3" json:"concurrency_group,omitempty"`
357	unknownFields    protoimpl.UnknownFields
358	sizeCache        protoimpl.SizeCache
359}
360
361func (x *RunJob) Reset() {
362	*x = RunJob{}
363	mi := &file_ermite_run_proto_msgTypes[1]
364	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
365	ms.StoreMessageInfo(mi)
366}
367
368func (x *RunJob) String() string {
369	return protoimpl.X.MessageStringOf(x)
370}
371
372func (*RunJob) ProtoMessage() {}
373
374func (x *RunJob) ProtoReflect() protoreflect.Message {
375	mi := &file_ermite_run_proto_msgTypes[1]
376	if x != nil {
377		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
378		if ms.LoadMessageInfo() == nil {
379			ms.StoreMessageInfo(mi)
380		}
381		return ms
382	}
383	return mi.MessageOf(x)
384}
385
386// Deprecated: Use RunJob.ProtoReflect.Descriptor instead.
387func (*RunJob) Descriptor() ([]byte, []int) {
388	return file_ermite_run_proto_rawDescGZIP(), []int{1}
389}
390
391func (x *RunJob) GetId() string {
392	if x != nil {
393		return x.Id
394	}
395	return ""
396}
397
398func (x *RunJob) GetRunId() int64 {
399	if x != nil {
400		return x.RunId
401	}
402	return 0
403}
404
405func (x *RunJob) GetAttempt() int32 {
406	if x != nil {
407		return x.Attempt
408	}
409	return 0
410}
411
412func (x *RunJob) GetRepo() string {
413	if x != nil {
414		return x.Repo
415	}
416	return ""
417}
418
419func (x *RunJob) GetKey() string {
420	if x != nil {
421		return x.Key
422	}
423	return ""
424}
425
426func (x *RunJob) GetName() string {
427	if x != nil {
428		return x.Name
429	}
430	return ""
431}
432
433func (x *RunJob) GetStatus() CiStatus {
434	if x != nil {
435		return x.Status
436	}
437	return CiStatus_CI_STATUS_UNSPECIFIED
438}
439
440func (x *RunJob) GetConclusion() CiConclusion {
441	if x != nil {
442		return x.Conclusion
443	}
444	return CiConclusion_CI_CONCLUSION_UNSPECIFIED
445}
446
447func (x *RunJob) GetError() string {
448	if x != nil {
449		return x.Error
450	}
451	return ""
452}
453
454func (x *RunJob) GetLabels() []string {
455	if x != nil {
456		return x.Labels
457	}
458	return nil
459}
460
461func (x *RunJob) GetNeeds() []string {
462	if x != nil {
463		return x.Needs
464	}
465	return nil
466}
467
468func (x *RunJob) GetRunnerId() string {
469	if x != nil {
470		return x.RunnerId
471	}
472	return ""
473}
474
475func (x *RunJob) GetRunnerName() string {
476	if x != nil {
477		return x.RunnerName
478	}
479	return ""
480}
481
482func (x *RunJob) GetIsolation() RunnerIsolation {
483	if x != nil {
484		return x.Isolation
485	}
486	return RunnerIsolation_RUNNER_ISOLATION_UNSPECIFIED
487}
488
489func (x *RunJob) GetSteps() []*Step {
490	if x != nil {
491		return x.Steps
492	}
493	return nil
494}
495
496func (x *RunJob) GetCreatedAt() *timestamppb.Timestamp {
497	if x != nil {
498		return x.CreatedAt
499	}
500	return nil
501}
502
503func (x *RunJob) GetStartedAt() *timestamppb.Timestamp {
504	if x != nil {
505		return x.StartedAt
506	}
507	return nil
508}
509
510func (x *RunJob) GetCompletedAt() *timestamppb.Timestamp {
511	if x != nil {
512		return x.CompletedAt
513	}
514	return nil
515}
516
517func (x *RunJob) GetVersion() int64 {
518	if x != nil {
519		return x.Version
520	}
521	return 0
522}
523
524func (x *RunJob) GetConcurrencyGroup() string {
525	if x != nil {
526		return x.ConcurrencyGroup
527	}
528	return ""
529}
530
531// Step is one step of a job, with where its lines are in the job log.
532type Step struct {
533	state protoimpl.MessageState `protogen:"open.v1"`
534	// Number is the 1-based number of the step in the job, the one the runner
535	// uses in UpdateJob and AppendLog.
536	Number int32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
537	// Name is the display name of the step.
538	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
539	// State is where the step is.
540	State StepState `protobuf:"varint,3,opt,name=state,proto3,enum=ermite.StepState" json:"state,omitempty"`
541	// Conclusion is how the step ended. Unset until state is COMPLETED.
542	Conclusion CiConclusion `protobuf:"varint,4,opt,name=conclusion,proto3,enum=ermite.CiConclusion" json:"conclusion,omitempty"`
543	// StartedAt is when the step started. Unset while PENDING.
544	StartedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
545	// CompletedAt is when the step ended. Unset until COMPLETED.
546	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
547	// LogStart is the number of the first line of the step in the job log (the
548	// offset of GetJobLogRequest and AppendLogRequest), counted from 0.
549	LogStart int64 `protobuf:"varint,7,opt,name=log_start,json=logStart,proto3" json:"log_start,omitempty"`
550	// LogEnd is the number of the line after the last one of the step. For an
551	// IN_PROGRESS step it is the number of lines held at the time of the
552	// call and grows; for a step without a line it equals log_start.
553	LogEnd int64 `protobuf:"varint,8,opt,name=log_end,json=logEnd,proto3" json:"log_end,omitempty"`
554	// Outcome is how the step ended before continue-on-error was applied, as
555	// StepUpdate.outcome: it differs from conclusion only for a failed step with
556	// continue-on-error. Unset until state is COMPLETED, and for a step stored
557	// by a server or runner before this field existed (read it as conclusion).
558	Outcome       CiConclusion `protobuf:"varint,9,opt,name=outcome,proto3,enum=ermite.CiConclusion" json:"outcome,omitempty"`
559	unknownFields protoimpl.UnknownFields
560	sizeCache     protoimpl.SizeCache
561}
562
563func (x *Step) Reset() {
564	*x = Step{}
565	mi := &file_ermite_run_proto_msgTypes[2]
566	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
567	ms.StoreMessageInfo(mi)
568}
569
570func (x *Step) String() string {
571	return protoimpl.X.MessageStringOf(x)
572}
573
574func (*Step) ProtoMessage() {}
575
576func (x *Step) ProtoReflect() protoreflect.Message {
577	mi := &file_ermite_run_proto_msgTypes[2]
578	if x != nil {
579		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
580		if ms.LoadMessageInfo() == nil {
581			ms.StoreMessageInfo(mi)
582		}
583		return ms
584	}
585	return mi.MessageOf(x)
586}
587
588// Deprecated: Use Step.ProtoReflect.Descriptor instead.
589func (*Step) Descriptor() ([]byte, []int) {
590	return file_ermite_run_proto_rawDescGZIP(), []int{2}
591}
592
593func (x *Step) GetNumber() int32 {
594	if x != nil {
595		return x.Number
596	}
597	return 0
598}
599
600func (x *Step) GetName() string {
601	if x != nil {
602		return x.Name
603	}
604	return ""
605}
606
607func (x *Step) GetState() StepState {
608	if x != nil {
609		return x.State
610	}
611	return StepState_STEP_STATE_UNSPECIFIED
612}
613
614func (x *Step) GetConclusion() CiConclusion {
615	if x != nil {
616		return x.Conclusion
617	}
618	return CiConclusion_CI_CONCLUSION_UNSPECIFIED
619}
620
621func (x *Step) GetStartedAt() *timestamppb.Timestamp {
622	if x != nil {
623		return x.StartedAt
624	}
625	return nil
626}
627
628func (x *Step) GetCompletedAt() *timestamppb.Timestamp {
629	if x != nil {
630		return x.CompletedAt
631	}
632	return nil
633}
634
635func (x *Step) GetLogStart() int64 {
636	if x != nil {
637		return x.LogStart
638	}
639	return 0
640}
641
642func (x *Step) GetLogEnd() int64 {
643	if x != nil {
644		return x.LogEnd
645	}
646	return 0
647}
648
649func (x *Step) GetOutcome() CiConclusion {
650	if x != nil {
651		return x.Outcome
652	}
653	return CiConclusion_CI_CONCLUSION_UNSPECIFIED
654}
655
656// Check is the result of one job on one commit, the unit shown next to a
657// commit or a merge request and counted by the merge rules. There is one per
658// job instance, named like GitHub's checks.
659type Check struct {
660	state protoimpl.MessageState `protogen:"open.v1"`
661	// Id identifies the check. It is opaque and stable across attempts.
662	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
663	// Repo is the name of the repository.
664	Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"`
665	// Sha is the full id of the commit.
666	Sha string `protobuf:"bytes,3,opt,name=sha,proto3" json:"sha,omitempty"`
667	// Name is the name of the check: the RunJob.name of the job.
668	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
669	// Status is where the check is.
670	Status CiStatus `protobuf:"varint,5,opt,name=status,proto3,enum=ermite.CiStatus" json:"status,omitempty"`
671	// Conclusion is how the check ended. Unset until status is COMPLETED. The
672	// value "stale" of GitHub is never used.
673	Conclusion CiConclusion `protobuf:"varint,6,opt,name=conclusion,proto3,enum=ermite.CiConclusion" json:"conclusion,omitempty"`
674	// RunId is the run of the job.
675	RunId int64 `protobuf:"varint,7,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
676	// JobId is the RunJob.id of the job, to open its page and log.
677	JobId string `protobuf:"bytes,8,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
678	// Attempt is the attempt the check describes: the latest attempt of the run.
679	Attempt int32 `protobuf:"varint,9,opt,name=attempt,proto3" json:"attempt,omitempty"`
680	// WorkflowName is the Run.workflow_name of the run.
681	WorkflowName string `protobuf:"bytes,10,opt,name=workflow_name,json=workflowName,proto3" json:"workflow_name,omitempty"`
682	// StartedAt is when the job was given to a runner. Unset while queued.
683	StartedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
684	// CompletedAt is when the job completed. Unset until then.
685	CompletedAt   *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
686	unknownFields protoimpl.UnknownFields
687	sizeCache     protoimpl.SizeCache
688}
689
690func (x *Check) Reset() {
691	*x = Check{}
692	mi := &file_ermite_run_proto_msgTypes[3]
693	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
694	ms.StoreMessageInfo(mi)
695}
696
697func (x *Check) String() string {
698	return protoimpl.X.MessageStringOf(x)
699}
700
701func (*Check) ProtoMessage() {}
702
703func (x *Check) ProtoReflect() protoreflect.Message {
704	mi := &file_ermite_run_proto_msgTypes[3]
705	if x != nil {
706		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
707		if ms.LoadMessageInfo() == nil {
708			ms.StoreMessageInfo(mi)
709		}
710		return ms
711	}
712	return mi.MessageOf(x)
713}
714
715// Deprecated: Use Check.ProtoReflect.Descriptor instead.
716func (*Check) Descriptor() ([]byte, []int) {
717	return file_ermite_run_proto_rawDescGZIP(), []int{3}
718}
719
720func (x *Check) GetId() string {
721	if x != nil {
722		return x.Id
723	}
724	return ""
725}
726
727func (x *Check) GetRepo() string {
728	if x != nil {
729		return x.Repo
730	}
731	return ""
732}
733
734func (x *Check) GetSha() string {
735	if x != nil {
736		return x.Sha
737	}
738	return ""
739}
740
741func (x *Check) GetName() string {
742	if x != nil {
743		return x.Name
744	}
745	return ""
746}
747
748func (x *Check) GetStatus() CiStatus {
749	if x != nil {
750		return x.Status
751	}
752	return CiStatus_CI_STATUS_UNSPECIFIED
753}
754
755func (x *Check) GetConclusion() CiConclusion {
756	if x != nil {
757		return x.Conclusion
758	}
759	return CiConclusion_CI_CONCLUSION_UNSPECIFIED
760}
761
762func (x *Check) GetRunId() int64 {
763	if x != nil {
764		return x.RunId
765	}
766	return 0
767}
768
769func (x *Check) GetJobId() string {
770	if x != nil {
771		return x.JobId
772	}
773	return ""
774}
775
776func (x *Check) GetAttempt() int32 {
777	if x != nil {
778		return x.Attempt
779	}
780	return 0
781}
782
783func (x *Check) GetWorkflowName() string {
784	if x != nil {
785		return x.WorkflowName
786	}
787	return ""
788}
789
790func (x *Check) GetStartedAt() *timestamppb.Timestamp {
791	if x != nil {
792		return x.StartedAt
793	}
794	return nil
795}
796
797func (x *Check) GetCompletedAt() *timestamppb.Timestamp {
798	if x != nil {
799		return x.CompletedAt
800	}
801	return nil
802}
803
804// Runner is a registered CI runner. It never contains the runner token nor its
805// hash.
806type Runner struct {
807	state protoimpl.MessageState `protogen:"open.v1"`
808	// Id identifies the runner in RemoveRunner. It is not a secret.
809	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
810	// Name is the unique name chosen at registration.
811	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
812	// Labels are all the labels the runner can match: the ones chosen at
813	// registration plus the implicit ones ("self-hosted", the os and the arch),
814	// lowercase, sorted.
815	Labels []string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"`
816	// Isolation is how the runner isolates jobs.
817	Isolation RunnerIsolation `protobuf:"varint,4,opt,name=isolation,proto3,enum=ermite.RunnerIsolation" json:"isolation,omitempty"`
818	// Version is the version of the runner software.
819	Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
820	// Arch is "x64" or "arm64".
821	Arch string `protobuf:"bytes,6,opt,name=arch,proto3" json:"arch,omitempty"`
822	// Os is "linux".
823	Os string `protobuf:"bytes,7,opt,name=os,proto3" json:"os,omitempty"`
824	// RegisteredAt is when the runner was registered.
825	RegisteredAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=registered_at,json=registeredAt,proto3" json:"registered_at,omitempty"`
826	// LastSeen is when the server last heard from the runner: a FetchJob poll or
827	// a heartbeat of one of its jobs. Unset if never. It may lag behind the real
828	// time by a short delay. A runner not seen for more than about 2 minutes is
829	// offline.
830	LastSeen *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"`
831	// Busy is true while the runner has a job in progress.
832	Busy          bool `protobuf:"varint,10,opt,name=busy,proto3" json:"busy,omitempty"`
833	unknownFields protoimpl.UnknownFields
834	sizeCache     protoimpl.SizeCache
835}
836
837func (x *Runner) Reset() {
838	*x = Runner{}
839	mi := &file_ermite_run_proto_msgTypes[4]
840	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
841	ms.StoreMessageInfo(mi)
842}
843
844func (x *Runner) String() string {
845	return protoimpl.X.MessageStringOf(x)
846}
847
848func (*Runner) ProtoMessage() {}
849
850func (x *Runner) ProtoReflect() protoreflect.Message {
851	mi := &file_ermite_run_proto_msgTypes[4]
852	if x != nil {
853		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
854		if ms.LoadMessageInfo() == nil {
855			ms.StoreMessageInfo(mi)
856		}
857		return ms
858	}
859	return mi.MessageOf(x)
860}
861
862// Deprecated: Use Runner.ProtoReflect.Descriptor instead.
863func (*Runner) Descriptor() ([]byte, []int) {
864	return file_ermite_run_proto_rawDescGZIP(), []int{4}
865}
866
867func (x *Runner) GetId() string {
868	if x != nil {
869		return x.Id
870	}
871	return ""
872}
873
874func (x *Runner) GetName() string {
875	if x != nil {
876		return x.Name
877	}
878	return ""
879}
880
881func (x *Runner) GetLabels() []string {
882	if x != nil {
883		return x.Labels
884	}
885	return nil
886}
887
888func (x *Runner) GetIsolation() RunnerIsolation {
889	if x != nil {
890		return x.Isolation
891	}
892	return RunnerIsolation_RUNNER_ISOLATION_UNSPECIFIED
893}
894
895func (x *Runner) GetVersion() string {
896	if x != nil {
897		return x.Version
898	}
899	return ""
900}
901
902func (x *Runner) GetArch() string {
903	if x != nil {
904		return x.Arch
905	}
906	return ""
907}
908
909func (x *Runner) GetOs() string {
910	if x != nil {
911		return x.Os
912	}
913	return ""
914}
915
916func (x *Runner) GetRegisteredAt() *timestamppb.Timestamp {
917	if x != nil {
918		return x.RegisteredAt
919	}
920	return nil
921}
922
923func (x *Runner) GetLastSeen() *timestamppb.Timestamp {
924	if x != nil {
925		return x.LastSeen
926	}
927	return nil
928}
929
930func (x *Runner) GetBusy() bool {
931	if x != nil {
932		return x.Busy
933	}
934	return false
935}
936
937// ListRunsRequest selects a page of runs.
938type ListRunsRequest struct {
939	state protoimpl.MessageState `protogen:"open.v1"`
940	// Repo is the repository name.
941	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
942	// PageSize is the maximum number of runs to return.
943	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
944	// PageToken is the next_page_token of a previous response. Empty for the
945	// first page.
946	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
947	// Workflow restricts the result to one workflow file: its path
948	// (".github/workflows/ci.yml") or its file name ("ci.yml"). Empty means
949	// every workflow. Ignored by servers without "ci.runs.filters".
950	Workflow string `protobuf:"bytes,4,opt,name=workflow,proto3" json:"workflow,omitempty"`
951	// Branch restricts the result to the runs whose ref is this branch, by
952	// short name ("main"). Empty means every ref. Ignored by servers without
953	// "ci.runs.filters".
954	Branch string `protobuf:"bytes,5,opt,name=branch,proto3" json:"branch,omitempty"`
955	// Status restricts the result to the runs whose latest attempt has this
956	// status. CI_STATUS_UNSPECIFIED means every status. Ignored by servers
957	// without "ci.runs.filters".
958	Status        CiStatus `protobuf:"varint,6,opt,name=status,proto3,enum=ermite.CiStatus" json:"status,omitempty"`
959	unknownFields protoimpl.UnknownFields
960	sizeCache     protoimpl.SizeCache
961}
962
963func (x *ListRunsRequest) Reset() {
964	*x = ListRunsRequest{}
965	mi := &file_ermite_run_proto_msgTypes[5]
966	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
967	ms.StoreMessageInfo(mi)
968}
969
970func (x *ListRunsRequest) String() string {
971	return protoimpl.X.MessageStringOf(x)
972}
973
974func (*ListRunsRequest) ProtoMessage() {}
975
976func (x *ListRunsRequest) ProtoReflect() protoreflect.Message {
977	mi := &file_ermite_run_proto_msgTypes[5]
978	if x != nil {
979		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
980		if ms.LoadMessageInfo() == nil {
981			ms.StoreMessageInfo(mi)
982		}
983		return ms
984	}
985	return mi.MessageOf(x)
986}
987
988// Deprecated: Use ListRunsRequest.ProtoReflect.Descriptor instead.
989func (*ListRunsRequest) Descriptor() ([]byte, []int) {
990	return file_ermite_run_proto_rawDescGZIP(), []int{5}
991}
992
993func (x *ListRunsRequest) GetRepo() string {
994	if x != nil {
995		return x.Repo
996	}
997	return ""
998}
999
1000func (x *ListRunsRequest) GetPageSize() int32 {
1001	if x != nil {
1002		return x.PageSize
1003	}
1004	return 0
1005}
1006
1007func (x *ListRunsRequest) GetPageToken() string {
1008	if x != nil {
1009		return x.PageToken
1010	}
1011	return ""
1012}
1013
1014func (x *ListRunsRequest) GetWorkflow() string {
1015	if x != nil {
1016		return x.Workflow
1017	}
1018	return ""
1019}
1020
1021func (x *ListRunsRequest) GetBranch() string {
1022	if x != nil {
1023		return x.Branch
1024	}
1025	return ""
1026}
1027
1028func (x *ListRunsRequest) GetStatus() CiStatus {
1029	if x != nil {
1030		return x.Status
1031	}
1032	return CiStatus_CI_STATUS_UNSPECIFIED
1033}
1034
1035// ListRunsResponse is one page of runs.
1036type ListRunsResponse struct {
1037	state protoimpl.MessageState `protogen:"open.v1"`
1038	// Runs are the runs of this page, highest id first, without jobs.
1039	Runs []*Run `protobuf:"bytes,1,rep,name=runs,proto3" json:"runs,omitempty"`
1040	// NextPageToken is passed as page_token to get the next page. Empty when
1041	// there is no next page.
1042	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1043	unknownFields protoimpl.UnknownFields
1044	sizeCache     protoimpl.SizeCache
1045}
1046
1047func (x *ListRunsResponse) Reset() {
1048	*x = ListRunsResponse{}
1049	mi := &file_ermite_run_proto_msgTypes[6]
1050	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1051	ms.StoreMessageInfo(mi)
1052}
1053
1054func (x *ListRunsResponse) String() string {
1055	return protoimpl.X.MessageStringOf(x)
1056}
1057
1058func (*ListRunsResponse) ProtoMessage() {}
1059
1060func (x *ListRunsResponse) ProtoReflect() protoreflect.Message {
1061	mi := &file_ermite_run_proto_msgTypes[6]
1062	if x != nil {
1063		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1064		if ms.LoadMessageInfo() == nil {
1065			ms.StoreMessageInfo(mi)
1066		}
1067		return ms
1068	}
1069	return mi.MessageOf(x)
1070}
1071
1072// Deprecated: Use ListRunsResponse.ProtoReflect.Descriptor instead.
1073func (*ListRunsResponse) Descriptor() ([]byte, []int) {
1074	return file_ermite_run_proto_rawDescGZIP(), []int{6}
1075}
1076
1077func (x *ListRunsResponse) GetRuns() []*Run {
1078	if x != nil {
1079		return x.Runs
1080	}
1081	return nil
1082}
1083
1084func (x *ListRunsResponse) GetNextPageToken() string {
1085	if x != nil {
1086		return x.NextPageToken
1087	}
1088	return ""
1089}
1090
1091// GetRunRequest selects a run.
1092type GetRunRequest struct {
1093	state protoimpl.MessageState `protogen:"open.v1"`
1094	// Repo is the repository name.
1095	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1096	// RunId is the Run.id.
1097	RunId int64 `protobuf:"varint,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
1098	// Attempt is the attempt to read. 0 means the latest.
1099	Attempt       int32 `protobuf:"varint,3,opt,name=attempt,proto3" json:"attempt,omitempty"`
1100	unknownFields protoimpl.UnknownFields
1101	sizeCache     protoimpl.SizeCache
1102}
1103
1104func (x *GetRunRequest) Reset() {
1105	*x = GetRunRequest{}
1106	mi := &file_ermite_run_proto_msgTypes[7]
1107	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1108	ms.StoreMessageInfo(mi)
1109}
1110
1111func (x *GetRunRequest) String() string {
1112	return protoimpl.X.MessageStringOf(x)
1113}
1114
1115func (*GetRunRequest) ProtoMessage() {}
1116
1117func (x *GetRunRequest) ProtoReflect() protoreflect.Message {
1118	mi := &file_ermite_run_proto_msgTypes[7]
1119	if x != nil {
1120		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1121		if ms.LoadMessageInfo() == nil {
1122			ms.StoreMessageInfo(mi)
1123		}
1124		return ms
1125	}
1126	return mi.MessageOf(x)
1127}
1128
1129// Deprecated: Use GetRunRequest.ProtoReflect.Descriptor instead.
1130func (*GetRunRequest) Descriptor() ([]byte, []int) {
1131	return file_ermite_run_proto_rawDescGZIP(), []int{7}
1132}
1133
1134func (x *GetRunRequest) GetRepo() string {
1135	if x != nil {
1136		return x.Repo
1137	}
1138	return ""
1139}
1140
1141func (x *GetRunRequest) GetRunId() int64 {
1142	if x != nil {
1143		return x.RunId
1144	}
1145	return 0
1146}
1147
1148func (x *GetRunRequest) GetAttempt() int32 {
1149	if x != nil {
1150		return x.Attempt
1151	}
1152	return 0
1153}
1154
1155// GetRunResponse holds a run with its jobs.
1156type GetRunResponse struct {
1157	state protoimpl.MessageState `protogen:"open.v1"`
1158	// Run is the run, as of the attempt asked.
1159	Run *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"`
1160	// Jobs are the jobs of that attempt, with their steps, in the order of the
1161	// workflow file (matrix instances in the order of the matrix). Jobs kept from
1162	// an earlier attempt by a re-run of failed jobs are included, with their own
1163	// RunJob.attempt. Empty for a run that failed on an invalid workflow file.
1164	Jobs []*RunJob `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"`
1165	// LatestAttempt is the latest attempt of the run, to offer the other ones.
1166	LatestAttempt int32 `protobuf:"varint,3,opt,name=latest_attempt,json=latestAttempt,proto3" json:"latest_attempt,omitempty"`
1167	unknownFields protoimpl.UnknownFields
1168	sizeCache     protoimpl.SizeCache
1169}
1170
1171func (x *GetRunResponse) Reset() {
1172	*x = GetRunResponse{}
1173	mi := &file_ermite_run_proto_msgTypes[8]
1174	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1175	ms.StoreMessageInfo(mi)
1176}
1177
1178func (x *GetRunResponse) String() string {
1179	return protoimpl.X.MessageStringOf(x)
1180}
1181
1182func (*GetRunResponse) ProtoMessage() {}
1183
1184func (x *GetRunResponse) ProtoReflect() protoreflect.Message {
1185	mi := &file_ermite_run_proto_msgTypes[8]
1186	if x != nil {
1187		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1188		if ms.LoadMessageInfo() == nil {
1189			ms.StoreMessageInfo(mi)
1190		}
1191		return ms
1192	}
1193	return mi.MessageOf(x)
1194}
1195
1196// Deprecated: Use GetRunResponse.ProtoReflect.Descriptor instead.
1197func (*GetRunResponse) Descriptor() ([]byte, []int) {
1198	return file_ermite_run_proto_rawDescGZIP(), []int{8}
1199}
1200
1201func (x *GetRunResponse) GetRun() *Run {
1202	if x != nil {
1203		return x.Run
1204	}
1205	return nil
1206}
1207
1208func (x *GetRunResponse) GetJobs() []*RunJob {
1209	if x != nil {
1210		return x.Jobs
1211	}
1212	return nil
1213}
1214
1215func (x *GetRunResponse) GetLatestAttempt() int32 {
1216	if x != nil {
1217		return x.LatestAttempt
1218	}
1219	return 0
1220}
1221
1222// GetJobRequest selects a job.
1223type GetJobRequest struct {
1224	state protoimpl.MessageState `protogen:"open.v1"`
1225	// Repo is the repository name.
1226	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1227	// JobId is the RunJob.id.
1228	JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
1229	// Attempt is the RunJob.attempt to read. 0 means the latest.
1230	Attempt       int32 `protobuf:"varint,3,opt,name=attempt,proto3" json:"attempt,omitempty"`
1231	unknownFields protoimpl.UnknownFields
1232	sizeCache     protoimpl.SizeCache
1233}
1234
1235func (x *GetJobRequest) Reset() {
1236	*x = GetJobRequest{}
1237	mi := &file_ermite_run_proto_msgTypes[9]
1238	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1239	ms.StoreMessageInfo(mi)
1240}
1241
1242func (x *GetJobRequest) String() string {
1243	return protoimpl.X.MessageStringOf(x)
1244}
1245
1246func (*GetJobRequest) ProtoMessage() {}
1247
1248func (x *GetJobRequest) ProtoReflect() protoreflect.Message {
1249	mi := &file_ermite_run_proto_msgTypes[9]
1250	if x != nil {
1251		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1252		if ms.LoadMessageInfo() == nil {
1253			ms.StoreMessageInfo(mi)
1254		}
1255		return ms
1256	}
1257	return mi.MessageOf(x)
1258}
1259
1260// Deprecated: Use GetJobRequest.ProtoReflect.Descriptor instead.
1261func (*GetJobRequest) Descriptor() ([]byte, []int) {
1262	return file_ermite_run_proto_rawDescGZIP(), []int{9}
1263}
1264
1265func (x *GetJobRequest) GetRepo() string {
1266	if x != nil {
1267		return x.Repo
1268	}
1269	return ""
1270}
1271
1272func (x *GetJobRequest) GetJobId() string {
1273	if x != nil {
1274		return x.JobId
1275	}
1276	return ""
1277}
1278
1279func (x *GetJobRequest) GetAttempt() int32 {
1280	if x != nil {
1281		return x.Attempt
1282	}
1283	return 0
1284}
1285
1286// GetJobResponse holds a job.
1287type GetJobResponse struct {
1288	state protoimpl.MessageState `protogen:"open.v1"`
1289	// Job is the job with its steps.
1290	Job           *RunJob `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
1291	unknownFields protoimpl.UnknownFields
1292	sizeCache     protoimpl.SizeCache
1293}
1294
1295func (x *GetJobResponse) Reset() {
1296	*x = GetJobResponse{}
1297	mi := &file_ermite_run_proto_msgTypes[10]
1298	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1299	ms.StoreMessageInfo(mi)
1300}
1301
1302func (x *GetJobResponse) String() string {
1303	return protoimpl.X.MessageStringOf(x)
1304}
1305
1306func (*GetJobResponse) ProtoMessage() {}
1307
1308func (x *GetJobResponse) ProtoReflect() protoreflect.Message {
1309	mi := &file_ermite_run_proto_msgTypes[10]
1310	if x != nil {
1311		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1312		if ms.LoadMessageInfo() == nil {
1313			ms.StoreMessageInfo(mi)
1314		}
1315		return ms
1316	}
1317	return mi.MessageOf(x)
1318}
1319
1320// Deprecated: Use GetJobResponse.ProtoReflect.Descriptor instead.
1321func (*GetJobResponse) Descriptor() ([]byte, []int) {
1322	return file_ermite_run_proto_rawDescGZIP(), []int{10}
1323}
1324
1325func (x *GetJobResponse) GetJob() *RunJob {
1326	if x != nil {
1327		return x.Job
1328	}
1329	return nil
1330}
1331
1332// ListAnnotationsRequest selects the annotations of a run.
1333type ListAnnotationsRequest struct {
1334	state protoimpl.MessageState `protogen:"open.v1"`
1335	// Repo is the repository name.
1336	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1337	// RunId is the Run.id.
1338	RunId int64 `protobuf:"varint,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
1339	// Attempt is the attempt to read. 0 means the latest, and then each job
1340	// contributes the annotations of its own RunJob.attempt (not necessarily the
1341	// latest attempt of the run, see ListAnnotations).
1342	Attempt int32 `protobuf:"varint,3,opt,name=attempt,proto3" json:"attempt,omitempty"`
1343	// JobId restricts the result to one job (RunJob.id). Empty means every job
1344	// of the run.
1345	JobId         string `protobuf:"bytes,4,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
1346	unknownFields protoimpl.UnknownFields
1347	sizeCache     protoimpl.SizeCache
1348}
1349
1350func (x *ListAnnotationsRequest) Reset() {
1351	*x = ListAnnotationsRequest{}
1352	mi := &file_ermite_run_proto_msgTypes[11]
1353	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1354	ms.StoreMessageInfo(mi)
1355}
1356
1357func (x *ListAnnotationsRequest) String() string {
1358	return protoimpl.X.MessageStringOf(x)
1359}
1360
1361func (*ListAnnotationsRequest) ProtoMessage() {}
1362
1363func (x *ListAnnotationsRequest) ProtoReflect() protoreflect.Message {
1364	mi := &file_ermite_run_proto_msgTypes[11]
1365	if x != nil {
1366		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1367		if ms.LoadMessageInfo() == nil {
1368			ms.StoreMessageInfo(mi)
1369		}
1370		return ms
1371	}
1372	return mi.MessageOf(x)
1373}
1374
1375// Deprecated: Use ListAnnotationsRequest.ProtoReflect.Descriptor instead.
1376func (*ListAnnotationsRequest) Descriptor() ([]byte, []int) {
1377	return file_ermite_run_proto_rawDescGZIP(), []int{11}
1378}
1379
1380func (x *ListAnnotationsRequest) GetRepo() string {
1381	if x != nil {
1382		return x.Repo
1383	}
1384	return ""
1385}
1386
1387func (x *ListAnnotationsRequest) GetRunId() int64 {
1388	if x != nil {
1389		return x.RunId
1390	}
1391	return 0
1392}
1393
1394func (x *ListAnnotationsRequest) GetAttempt() int32 {
1395	if x != nil {
1396		return x.Attempt
1397	}
1398	return 0
1399}
1400
1401func (x *ListAnnotationsRequest) GetJobId() string {
1402	if x != nil {
1403		return x.JobId
1404	}
1405	return ""
1406}
1407
1408// ListAnnotationsResponse holds the annotations of a run.
1409type ListAnnotationsResponse struct {
1410	state protoimpl.MessageState `protogen:"open.v1"`
1411	// Annotations are the annotations, at most 1,000.
1412	Annotations []*JobAnnotation `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"`
1413	// Truncated is true when there are more annotations than annotations holds.
1414	Truncated     bool `protobuf:"varint,2,opt,name=truncated,proto3" json:"truncated,omitempty"`
1415	unknownFields protoimpl.UnknownFields
1416	sizeCache     protoimpl.SizeCache
1417}
1418
1419func (x *ListAnnotationsResponse) Reset() {
1420	*x = ListAnnotationsResponse{}
1421	mi := &file_ermite_run_proto_msgTypes[12]
1422	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1423	ms.StoreMessageInfo(mi)
1424}
1425
1426func (x *ListAnnotationsResponse) String() string {
1427	return protoimpl.X.MessageStringOf(x)
1428}
1429
1430func (*ListAnnotationsResponse) ProtoMessage() {}
1431
1432func (x *ListAnnotationsResponse) ProtoReflect() protoreflect.Message {
1433	mi := &file_ermite_run_proto_msgTypes[12]
1434	if x != nil {
1435		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1436		if ms.LoadMessageInfo() == nil {
1437			ms.StoreMessageInfo(mi)
1438		}
1439		return ms
1440	}
1441	return mi.MessageOf(x)
1442}
1443
1444// Deprecated: Use ListAnnotationsResponse.ProtoReflect.Descriptor instead.
1445func (*ListAnnotationsResponse) Descriptor() ([]byte, []int) {
1446	return file_ermite_run_proto_rawDescGZIP(), []int{12}
1447}
1448
1449func (x *ListAnnotationsResponse) GetAnnotations() []*JobAnnotation {
1450	if x != nil {
1451		return x.Annotations
1452	}
1453	return nil
1454}
1455
1456func (x *ListAnnotationsResponse) GetTruncated() bool {
1457	if x != nil {
1458		return x.Truncated
1459	}
1460	return false
1461}
1462
1463// JobAnnotation is an annotation with the job it belongs to.
1464type JobAnnotation struct {
1465	state protoimpl.MessageState `protogen:"open.v1"`
1466	// JobId is the RunJob.id of the job.
1467	JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
1468	// Annotation is the annotation as the runner sent it, after the server
1469	// checked it. Its step_number is the step of the job.
1470	Annotation    *Annotation `protobuf:"bytes,2,opt,name=annotation,proto3" json:"annotation,omitempty"`
1471	unknownFields protoimpl.UnknownFields
1472	sizeCache     protoimpl.SizeCache
1473}
1474
1475func (x *JobAnnotation) Reset() {
1476	*x = JobAnnotation{}
1477	mi := &file_ermite_run_proto_msgTypes[13]
1478	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1479	ms.StoreMessageInfo(mi)
1480}
1481
1482func (x *JobAnnotation) String() string {
1483	return protoimpl.X.MessageStringOf(x)
1484}
1485
1486func (*JobAnnotation) ProtoMessage() {}
1487
1488func (x *JobAnnotation) ProtoReflect() protoreflect.Message {
1489	mi := &file_ermite_run_proto_msgTypes[13]
1490	if x != nil {
1491		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1492		if ms.LoadMessageInfo() == nil {
1493			ms.StoreMessageInfo(mi)
1494		}
1495		return ms
1496	}
1497	return mi.MessageOf(x)
1498}
1499
1500// Deprecated: Use JobAnnotation.ProtoReflect.Descriptor instead.
1501func (*JobAnnotation) Descriptor() ([]byte, []int) {
1502	return file_ermite_run_proto_rawDescGZIP(), []int{13}
1503}
1504
1505func (x *JobAnnotation) GetJobId() string {
1506	if x != nil {
1507		return x.JobId
1508	}
1509	return ""
1510}
1511
1512func (x *JobAnnotation) GetAnnotation() *Annotation {
1513	if x != nil {
1514		return x.Annotation
1515	}
1516	return nil
1517}
1518
1519// GetStepSummariesRequest selects a job.
1520type GetStepSummariesRequest struct {
1521	state protoimpl.MessageState `protogen:"open.v1"`
1522	// Repo is the repository name.
1523	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1524	// JobId is the RunJob.id.
1525	JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
1526	// Attempt is the RunJob.attempt to read. 0 means the latest.
1527	Attempt       int32 `protobuf:"varint,3,opt,name=attempt,proto3" json:"attempt,omitempty"`
1528	unknownFields protoimpl.UnknownFields
1529	sizeCache     protoimpl.SizeCache
1530}
1531
1532func (x *GetStepSummariesRequest) Reset() {
1533	*x = GetStepSummariesRequest{}
1534	mi := &file_ermite_run_proto_msgTypes[14]
1535	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1536	ms.StoreMessageInfo(mi)
1537}
1538
1539func (x *GetStepSummariesRequest) String() string {
1540	return protoimpl.X.MessageStringOf(x)
1541}
1542
1543func (*GetStepSummariesRequest) ProtoMessage() {}
1544
1545func (x *GetStepSummariesRequest) ProtoReflect() protoreflect.Message {
1546	mi := &file_ermite_run_proto_msgTypes[14]
1547	if x != nil {
1548		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1549		if ms.LoadMessageInfo() == nil {
1550			ms.StoreMessageInfo(mi)
1551		}
1552		return ms
1553	}
1554	return mi.MessageOf(x)
1555}
1556
1557// Deprecated: Use GetStepSummariesRequest.ProtoReflect.Descriptor instead.
1558func (*GetStepSummariesRequest) Descriptor() ([]byte, []int) {
1559	return file_ermite_run_proto_rawDescGZIP(), []int{14}
1560}
1561
1562func (x *GetStepSummariesRequest) GetRepo() string {
1563	if x != nil {
1564		return x.Repo
1565	}
1566	return ""
1567}
1568
1569func (x *GetStepSummariesRequest) GetJobId() string {
1570	if x != nil {
1571		return x.JobId
1572	}
1573	return ""
1574}
1575
1576func (x *GetStepSummariesRequest) GetAttempt() int32 {
1577	if x != nil {
1578		return x.Attempt
1579	}
1580	return 0
1581}
1582
1583// GetStepSummariesResponse holds the summaries of a job.
1584type GetStepSummariesResponse struct {
1585	state protoimpl.MessageState `protogen:"open.v1"`
1586	// Summaries are the summaries of the steps that have one, ordered by step
1587	// number: at most 20, the first 20 steps having one.
1588	Summaries []*StepSummary `protobuf:"bytes,1,rep,name=summaries,proto3" json:"summaries,omitempty"`
1589	// Truncated is true when the job has more than 20 steps with a summary and
1590	// summaries holds only the first 20.
1591	Truncated     bool `protobuf:"varint,2,opt,name=truncated,proto3" json:"truncated,omitempty"`
1592	unknownFields protoimpl.UnknownFields
1593	sizeCache     protoimpl.SizeCache
1594}
1595
1596func (x *GetStepSummariesResponse) Reset() {
1597	*x = GetStepSummariesResponse{}
1598	mi := &file_ermite_run_proto_msgTypes[15]
1599	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1600	ms.StoreMessageInfo(mi)
1601}
1602
1603func (x *GetStepSummariesResponse) String() string {
1604	return protoimpl.X.MessageStringOf(x)
1605}
1606
1607func (*GetStepSummariesResponse) ProtoMessage() {}
1608
1609func (x *GetStepSummariesResponse) ProtoReflect() protoreflect.Message {
1610	mi := &file_ermite_run_proto_msgTypes[15]
1611	if x != nil {
1612		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1613		if ms.LoadMessageInfo() == nil {
1614			ms.StoreMessageInfo(mi)
1615		}
1616		return ms
1617	}
1618	return mi.MessageOf(x)
1619}
1620
1621// Deprecated: Use GetStepSummariesResponse.ProtoReflect.Descriptor instead.
1622func (*GetStepSummariesResponse) Descriptor() ([]byte, []int) {
1623	return file_ermite_run_proto_rawDescGZIP(), []int{15}
1624}
1625
1626func (x *GetStepSummariesResponse) GetSummaries() []*StepSummary {
1627	if x != nil {
1628		return x.Summaries
1629	}
1630	return nil
1631}
1632
1633func (x *GetStepSummariesResponse) GetTruncated() bool {
1634	if x != nil {
1635		return x.Truncated
1636	}
1637	return false
1638}
1639
1640// StepSummary is the job summary of one step.
1641type StepSummary struct {
1642	state protoimpl.MessageState `protogen:"open.v1"`
1643	// StepNumber is the number of the step (see Step.number).
1644	StepNumber int32 `protobuf:"varint,1,opt,name=step_number,json=stepNumber,proto3" json:"step_number,omitempty"`
1645	// Markdown is the summary as uploaded, at most 1 MiB. Clients render it
1646	// safely: it is untrusted content (raw HTML and script URLs must not run).
1647	Markdown      string `protobuf:"bytes,2,opt,name=markdown,proto3" json:"markdown,omitempty"`
1648	unknownFields protoimpl.UnknownFields
1649	sizeCache     protoimpl.SizeCache
1650}
1651
1652func (x *StepSummary) Reset() {
1653	*x = StepSummary{}
1654	mi := &file_ermite_run_proto_msgTypes[16]
1655	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1656	ms.StoreMessageInfo(mi)
1657}
1658
1659func (x *StepSummary) String() string {
1660	return protoimpl.X.MessageStringOf(x)
1661}
1662
1663func (*StepSummary) ProtoMessage() {}
1664
1665func (x *StepSummary) ProtoReflect() protoreflect.Message {
1666	mi := &file_ermite_run_proto_msgTypes[16]
1667	if x != nil {
1668		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1669		if ms.LoadMessageInfo() == nil {
1670			ms.StoreMessageInfo(mi)
1671		}
1672		return ms
1673	}
1674	return mi.MessageOf(x)
1675}
1676
1677// Deprecated: Use StepSummary.ProtoReflect.Descriptor instead.
1678func (*StepSummary) Descriptor() ([]byte, []int) {
1679	return file_ermite_run_proto_rawDescGZIP(), []int{16}
1680}
1681
1682func (x *StepSummary) GetStepNumber() int32 {
1683	if x != nil {
1684		return x.StepNumber
1685	}
1686	return 0
1687}
1688
1689func (x *StepSummary) GetMarkdown() string {
1690	if x != nil {
1691		return x.Markdown
1692	}
1693	return ""
1694}
1695
1696// GetJobLogRequest selects the lines to stream.
1697type GetJobLogRequest struct {
1698	state protoimpl.MessageState `protogen:"open.v1"`
1699	// Repo is the repository name.
1700	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1701	// JobId is the RunJob.id.
1702	JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
1703	// Attempt is the RunJob.attempt whose log to read. 0 means the latest.
1704	Attempt int32 `protobuf:"varint,3,opt,name=attempt,proto3" json:"attempt,omitempty"`
1705	// Offset is the number of the first line to send, counted from 0 across all
1706	// steps (see Step.log_start). Negative is invalid_argument.
1707	Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
1708	// Follow keeps the stream open while the job runs. See GetJobLog.
1709	Follow        bool `protobuf:"varint,5,opt,name=follow,proto3" json:"follow,omitempty"`
1710	unknownFields protoimpl.UnknownFields
1711	sizeCache     protoimpl.SizeCache
1712}
1713
1714func (x *GetJobLogRequest) Reset() {
1715	*x = GetJobLogRequest{}
1716	mi := &file_ermite_run_proto_msgTypes[17]
1717	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1718	ms.StoreMessageInfo(mi)
1719}
1720
1721func (x *GetJobLogRequest) String() string {
1722	return protoimpl.X.MessageStringOf(x)
1723}
1724
1725func (*GetJobLogRequest) ProtoMessage() {}
1726
1727func (x *GetJobLogRequest) ProtoReflect() protoreflect.Message {
1728	mi := &file_ermite_run_proto_msgTypes[17]
1729	if x != nil {
1730		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1731		if ms.LoadMessageInfo() == nil {
1732			ms.StoreMessageInfo(mi)
1733		}
1734		return ms
1735	}
1736	return mi.MessageOf(x)
1737}
1738
1739// Deprecated: Use GetJobLogRequest.ProtoReflect.Descriptor instead.
1740func (*GetJobLogRequest) Descriptor() ([]byte, []int) {
1741	return file_ermite_run_proto_rawDescGZIP(), []int{17}
1742}
1743
1744func (x *GetJobLogRequest) GetRepo() string {
1745	if x != nil {
1746		return x.Repo
1747	}
1748	return ""
1749}
1750
1751func (x *GetJobLogRequest) GetJobId() string {
1752	if x != nil {
1753		return x.JobId
1754	}
1755	return ""
1756}
1757
1758func (x *GetJobLogRequest) GetAttempt() int32 {
1759	if x != nil {
1760		return x.Attempt
1761	}
1762	return 0
1763}
1764
1765func (x *GetJobLogRequest) GetOffset() int64 {
1766	if x != nil {
1767		return x.Offset
1768	}
1769	return 0
1770}
1771
1772func (x *GetJobLogRequest) GetFollow() bool {
1773	if x != nil {
1774		return x.Follow
1775	}
1776	return false
1777}
1778
1779// GetJobLogResponse is one message of the log stream.
1780type GetJobLogResponse struct {
1781	state protoimpl.MessageState `protogen:"open.v1"`
1782	// Offset is the number of the first line of lines.
1783	Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
1784	// Lines are consecutive lines of the log, at most 1,000, at most 64 KiB of
1785	// text in total. Never empty.
1786	Lines         []*JobLogLine `protobuf:"bytes,2,rep,name=lines,proto3" json:"lines,omitempty"`
1787	unknownFields protoimpl.UnknownFields
1788	sizeCache     protoimpl.SizeCache
1789}
1790
1791func (x *GetJobLogResponse) Reset() {
1792	*x = GetJobLogResponse{}
1793	mi := &file_ermite_run_proto_msgTypes[18]
1794	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1795	ms.StoreMessageInfo(mi)
1796}
1797
1798func (x *GetJobLogResponse) String() string {
1799	return protoimpl.X.MessageStringOf(x)
1800}
1801
1802func (*GetJobLogResponse) ProtoMessage() {}
1803
1804func (x *GetJobLogResponse) ProtoReflect() protoreflect.Message {
1805	mi := &file_ermite_run_proto_msgTypes[18]
1806	if x != nil {
1807		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1808		if ms.LoadMessageInfo() == nil {
1809			ms.StoreMessageInfo(mi)
1810		}
1811		return ms
1812	}
1813	return mi.MessageOf(x)
1814}
1815
1816// Deprecated: Use GetJobLogResponse.ProtoReflect.Descriptor instead.
1817func (*GetJobLogResponse) Descriptor() ([]byte, []int) {
1818	return file_ermite_run_proto_rawDescGZIP(), []int{18}
1819}
1820
1821func (x *GetJobLogResponse) GetOffset() int64 {
1822	if x != nil {
1823		return x.Offset
1824	}
1825	return 0
1826}
1827
1828func (x *GetJobLogResponse) GetLines() []*JobLogLine {
1829	if x != nil {
1830		return x.Lines
1831	}
1832	return nil
1833}
1834
1835// JobLogLine is one line of a job log, as the runner sent it.
1836type JobLogLine struct {
1837	state protoimpl.MessageState `protogen:"open.v1"`
1838	// Step is the number of the step the line belongs to.
1839	Step int32 `protobuf:"varint,1,opt,name=step,proto3" json:"step,omitempty"`
1840	// Time is when the runner produced the line, with nanosecond precision.
1841	Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"`
1842	// Text is the line without its terminator, as in LogLine.text, including the
1843	// "##[group]" and "##[endgroup]" markers. Clients show it escaped.
1844	Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"`
1845	// Continued is true when the line continues the line before it, which was
1846	// too long for the runner to send whole (see LogLine.continued). Pieces keep
1847	// their own line numbers, so offsets are the same as the runner's; a client
1848	// that shows lines joins a continued line to the previous one. The raw log
1849	// file already has them joined.
1850	Continued     bool `protobuf:"varint,4,opt,name=continued,proto3" json:"continued,omitempty"`
1851	unknownFields protoimpl.UnknownFields
1852	sizeCache     protoimpl.SizeCache
1853}
1854
1855func (x *JobLogLine) Reset() {
1856	*x = JobLogLine{}
1857	mi := &file_ermite_run_proto_msgTypes[19]
1858	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1859	ms.StoreMessageInfo(mi)
1860}
1861
1862func (x *JobLogLine) String() string {
1863	return protoimpl.X.MessageStringOf(x)
1864}
1865
1866func (*JobLogLine) ProtoMessage() {}
1867
1868func (x *JobLogLine) ProtoReflect() protoreflect.Message {
1869	mi := &file_ermite_run_proto_msgTypes[19]
1870	if x != nil {
1871		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1872		if ms.LoadMessageInfo() == nil {
1873			ms.StoreMessageInfo(mi)
1874		}
1875		return ms
1876	}
1877	return mi.MessageOf(x)
1878}
1879
1880// Deprecated: Use JobLogLine.ProtoReflect.Descriptor instead.
1881func (*JobLogLine) Descriptor() ([]byte, []int) {
1882	return file_ermite_run_proto_rawDescGZIP(), []int{19}
1883}
1884
1885func (x *JobLogLine) GetStep() int32 {
1886	if x != nil {
1887		return x.Step
1888	}
1889	return 0
1890}
1891
1892func (x *JobLogLine) GetTime() *timestamppb.Timestamp {
1893	if x != nil {
1894		return x.Time
1895	}
1896	return nil
1897}
1898
1899func (x *JobLogLine) GetText() string {
1900	if x != nil {
1901		return x.Text
1902	}
1903	return ""
1904}
1905
1906func (x *JobLogLine) GetContinued() bool {
1907	if x != nil {
1908		return x.Continued
1909	}
1910	return false
1911}
1912
1913// CancelRunRequest names the run to cancel.
1914type CancelRunRequest struct {
1915	state protoimpl.MessageState `protogen:"open.v1"`
1916	// Repo is the repository name.
1917	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
1918	// RunId is the Run.id.
1919	RunId         int64 `protobuf:"varint,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
1920	unknownFields protoimpl.UnknownFields
1921	sizeCache     protoimpl.SizeCache
1922}
1923
1924func (x *CancelRunRequest) Reset() {
1925	*x = CancelRunRequest{}
1926	mi := &file_ermite_run_proto_msgTypes[20]
1927	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1928	ms.StoreMessageInfo(mi)
1929}
1930
1931func (x *CancelRunRequest) String() string {
1932	return protoimpl.X.MessageStringOf(x)
1933}
1934
1935func (*CancelRunRequest) ProtoMessage() {}
1936
1937func (x *CancelRunRequest) ProtoReflect() protoreflect.Message {
1938	mi := &file_ermite_run_proto_msgTypes[20]
1939	if x != nil {
1940		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1941		if ms.LoadMessageInfo() == nil {
1942			ms.StoreMessageInfo(mi)
1943		}
1944		return ms
1945	}
1946	return mi.MessageOf(x)
1947}
1948
1949// Deprecated: Use CancelRunRequest.ProtoReflect.Descriptor instead.
1950func (*CancelRunRequest) Descriptor() ([]byte, []int) {
1951	return file_ermite_run_proto_rawDescGZIP(), []int{20}
1952}
1953
1954func (x *CancelRunRequest) GetRepo() string {
1955	if x != nil {
1956		return x.Repo
1957	}
1958	return ""
1959}
1960
1961func (x *CancelRunRequest) GetRunId() int64 {
1962	if x != nil {
1963		return x.RunId
1964	}
1965	return 0
1966}
1967
1968// CancelRunResponse holds the run after the request.
1969type CancelRunResponse struct {
1970	state protoimpl.MessageState `protogen:"open.v1"`
1971	// Run is the latest attempt of the run.
1972	Run           *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"`
1973	unknownFields protoimpl.UnknownFields
1974	sizeCache     protoimpl.SizeCache
1975}
1976
1977func (x *CancelRunResponse) Reset() {
1978	*x = CancelRunResponse{}
1979	mi := &file_ermite_run_proto_msgTypes[21]
1980	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1981	ms.StoreMessageInfo(mi)
1982}
1983
1984func (x *CancelRunResponse) String() string {
1985	return protoimpl.X.MessageStringOf(x)
1986}
1987
1988func (*CancelRunResponse) ProtoMessage() {}
1989
1990func (x *CancelRunResponse) ProtoReflect() protoreflect.Message {
1991	mi := &file_ermite_run_proto_msgTypes[21]
1992	if x != nil {
1993		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1994		if ms.LoadMessageInfo() == nil {
1995			ms.StoreMessageInfo(mi)
1996		}
1997		return ms
1998	}
1999	return mi.MessageOf(x)
2000}
2001
2002// Deprecated: Use CancelRunResponse.ProtoReflect.Descriptor instead.
2003func (*CancelRunResponse) Descriptor() ([]byte, []int) {
2004	return file_ermite_run_proto_rawDescGZIP(), []int{21}
2005}
2006
2007func (x *CancelRunResponse) GetRun() *Run {
2008	if x != nil {
2009		return x.Run
2010	}
2011	return nil
2012}
2013
2014// RerunRunRequest names the run to run again.
2015type RerunRunRequest struct {
2016	state protoimpl.MessageState `protogen:"open.v1"`
2017	// Repo is the repository name.
2018	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2019	// RunId is the Run.id.
2020	RunId int64 `protobuf:"varint,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
2021	// FailedOnly runs again only the jobs of the latest attempt that did not
2022	// succeed (conclusion FAILURE, CANCELLED, TIMED_OUT or ACTION_REQUIRED) and
2023	// the jobs that need them, directly or not, even if they were skipped. The
2024	// other jobs keep their result, steps and log from the earlier attempt. When
2025	// false, every job runs again.
2026	FailedOnly    bool `protobuf:"varint,3,opt,name=failed_only,json=failedOnly,proto3" json:"failed_only,omitempty"`
2027	unknownFields protoimpl.UnknownFields
2028	sizeCache     protoimpl.SizeCache
2029}
2030
2031func (x *RerunRunRequest) Reset() {
2032	*x = RerunRunRequest{}
2033	mi := &file_ermite_run_proto_msgTypes[22]
2034	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2035	ms.StoreMessageInfo(mi)
2036}
2037
2038func (x *RerunRunRequest) String() string {
2039	return protoimpl.X.MessageStringOf(x)
2040}
2041
2042func (*RerunRunRequest) ProtoMessage() {}
2043
2044func (x *RerunRunRequest) ProtoReflect() protoreflect.Message {
2045	mi := &file_ermite_run_proto_msgTypes[22]
2046	if x != nil {
2047		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2048		if ms.LoadMessageInfo() == nil {
2049			ms.StoreMessageInfo(mi)
2050		}
2051		return ms
2052	}
2053	return mi.MessageOf(x)
2054}
2055
2056// Deprecated: Use RerunRunRequest.ProtoReflect.Descriptor instead.
2057func (*RerunRunRequest) Descriptor() ([]byte, []int) {
2058	return file_ermite_run_proto_rawDescGZIP(), []int{22}
2059}
2060
2061func (x *RerunRunRequest) GetRepo() string {
2062	if x != nil {
2063		return x.Repo
2064	}
2065	return ""
2066}
2067
2068func (x *RerunRunRequest) GetRunId() int64 {
2069	if x != nil {
2070		return x.RunId
2071	}
2072	return 0
2073}
2074
2075func (x *RerunRunRequest) GetFailedOnly() bool {
2076	if x != nil {
2077		return x.FailedOnly
2078	}
2079	return false
2080}
2081
2082// RerunRunResponse holds the new attempt.
2083type RerunRunResponse struct {
2084	state protoimpl.MessageState `protogen:"open.v1"`
2085	// Run is the run as of the new attempt, QUEUED.
2086	Run           *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"`
2087	unknownFields protoimpl.UnknownFields
2088	sizeCache     protoimpl.SizeCache
2089}
2090
2091func (x *RerunRunResponse) Reset() {
2092	*x = RerunRunResponse{}
2093	mi := &file_ermite_run_proto_msgTypes[23]
2094	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2095	ms.StoreMessageInfo(mi)
2096}
2097
2098func (x *RerunRunResponse) String() string {
2099	return protoimpl.X.MessageStringOf(x)
2100}
2101
2102func (*RerunRunResponse) ProtoMessage() {}
2103
2104func (x *RerunRunResponse) ProtoReflect() protoreflect.Message {
2105	mi := &file_ermite_run_proto_msgTypes[23]
2106	if x != nil {
2107		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2108		if ms.LoadMessageInfo() == nil {
2109			ms.StoreMessageInfo(mi)
2110		}
2111		return ms
2112	}
2113	return mi.MessageOf(x)
2114}
2115
2116// Deprecated: Use RerunRunResponse.ProtoReflect.Descriptor instead.
2117func (*RerunRunResponse) Descriptor() ([]byte, []int) {
2118	return file_ermite_run_proto_rawDescGZIP(), []int{23}
2119}
2120
2121func (x *RerunRunResponse) GetRun() *Run {
2122	if x != nil {
2123		return x.Run
2124	}
2125	return nil
2126}
2127
2128// DispatchWorkflowRequest names the workflow to run and its inputs.
2129type DispatchWorkflowRequest struct {
2130	state protoimpl.MessageState `protogen:"open.v1"`
2131	// Repo is the repository name.
2132	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2133	// WorkflowPath is the path of the workflow file at ref, for example
2134	// ".github/workflows/ci.yml", or its file name ("ci.yml").
2135	WorkflowPath string `protobuf:"bytes,2,opt,name=workflow_path,json=workflowPath,proto3" json:"workflow_path,omitempty"`
2136	// Ref is the branch or tag to run on, by short name ("main") or full name
2137	// ("refs/heads/main"). Empty means the default branch of the repository.
2138	Ref string `protobuf:"bytes,3,opt,name=ref,proto3" json:"ref,omitempty"`
2139	// Inputs are the values of the "inputs" of the workflow's
2140	// "workflow_dispatch" by name, as strings: a boolean is "true" or "false", a
2141	// number its decimal text. An input left out takes its default.
2142	Inputs        map[string]string `protobuf:"bytes,4,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
2143	unknownFields protoimpl.UnknownFields
2144	sizeCache     protoimpl.SizeCache
2145}
2146
2147func (x *DispatchWorkflowRequest) Reset() {
2148	*x = DispatchWorkflowRequest{}
2149	mi := &file_ermite_run_proto_msgTypes[24]
2150	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2151	ms.StoreMessageInfo(mi)
2152}
2153
2154func (x *DispatchWorkflowRequest) String() string {
2155	return protoimpl.X.MessageStringOf(x)
2156}
2157
2158func (*DispatchWorkflowRequest) ProtoMessage() {}
2159
2160func (x *DispatchWorkflowRequest) ProtoReflect() protoreflect.Message {
2161	mi := &file_ermite_run_proto_msgTypes[24]
2162	if x != nil {
2163		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2164		if ms.LoadMessageInfo() == nil {
2165			ms.StoreMessageInfo(mi)
2166		}
2167		return ms
2168	}
2169	return mi.MessageOf(x)
2170}
2171
2172// Deprecated: Use DispatchWorkflowRequest.ProtoReflect.Descriptor instead.
2173func (*DispatchWorkflowRequest) Descriptor() ([]byte, []int) {
2174	return file_ermite_run_proto_rawDescGZIP(), []int{24}
2175}
2176
2177func (x *DispatchWorkflowRequest) GetRepo() string {
2178	if x != nil {
2179		return x.Repo
2180	}
2181	return ""
2182}
2183
2184func (x *DispatchWorkflowRequest) GetWorkflowPath() string {
2185	if x != nil {
2186		return x.WorkflowPath
2187	}
2188	return ""
2189}
2190
2191func (x *DispatchWorkflowRequest) GetRef() string {
2192	if x != nil {
2193		return x.Ref
2194	}
2195	return ""
2196}
2197
2198func (x *DispatchWorkflowRequest) GetInputs() map[string]string {
2199	if x != nil {
2200		return x.Inputs
2201	}
2202	return nil
2203}
2204
2205// DispatchWorkflowResponse holds the new run.
2206type DispatchWorkflowResponse struct {
2207	state protoimpl.MessageState `protogen:"open.v1"`
2208	// Run is the new run, QUEUED, attempt 1.
2209	Run           *Run `protobuf:"bytes,1,opt,name=run,proto3" json:"run,omitempty"`
2210	unknownFields protoimpl.UnknownFields
2211	sizeCache     protoimpl.SizeCache
2212}
2213
2214func (x *DispatchWorkflowResponse) Reset() {
2215	*x = DispatchWorkflowResponse{}
2216	mi := &file_ermite_run_proto_msgTypes[25]
2217	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2218	ms.StoreMessageInfo(mi)
2219}
2220
2221func (x *DispatchWorkflowResponse) String() string {
2222	return protoimpl.X.MessageStringOf(x)
2223}
2224
2225func (*DispatchWorkflowResponse) ProtoMessage() {}
2226
2227func (x *DispatchWorkflowResponse) ProtoReflect() protoreflect.Message {
2228	mi := &file_ermite_run_proto_msgTypes[25]
2229	if x != nil {
2230		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2231		if ms.LoadMessageInfo() == nil {
2232			ms.StoreMessageInfo(mi)
2233		}
2234		return ms
2235	}
2236	return mi.MessageOf(x)
2237}
2238
2239// Deprecated: Use DispatchWorkflowResponse.ProtoReflect.Descriptor instead.
2240func (*DispatchWorkflowResponse) Descriptor() ([]byte, []int) {
2241	return file_ermite_run_proto_rawDescGZIP(), []int{25}
2242}
2243
2244func (x *DispatchWorkflowResponse) GetRun() *Run {
2245	if x != nil {
2246		return x.Run
2247	}
2248	return nil
2249}
2250
2251// ListChecksRequest names the commit.
2252type ListChecksRequest struct {
2253	state protoimpl.MessageState `protogen:"open.v1"`
2254	// Repo is the repository name.
2255	Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"`
2256	// Sha is the full commit id (40 lowercase hexadecimal characters for SHA-1).
2257	// Abbreviations and names are invalid_argument.
2258	Sha           string `protobuf:"bytes,2,opt,name=sha,proto3" json:"sha,omitempty"`
2259	unknownFields protoimpl.UnknownFields
2260	sizeCache     protoimpl.SizeCache
2261}
2262
2263func (x *ListChecksRequest) Reset() {
2264	*x = ListChecksRequest{}
2265	mi := &file_ermite_run_proto_msgTypes[26]
2266	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2267	ms.StoreMessageInfo(mi)
2268}
2269
2270func (x *ListChecksRequest) String() string {
2271	return protoimpl.X.MessageStringOf(x)
2272}
2273
2274func (*ListChecksRequest) ProtoMessage() {}
2275
2276func (x *ListChecksRequest) ProtoReflect() protoreflect.Message {
2277	mi := &file_ermite_run_proto_msgTypes[26]
2278	if x != nil {
2279		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2280		if ms.LoadMessageInfo() == nil {
2281			ms.StoreMessageInfo(mi)
2282		}
2283		return ms
2284	}
2285	return mi.MessageOf(x)
2286}
2287
2288// Deprecated: Use ListChecksRequest.ProtoReflect.Descriptor instead.
2289func (*ListChecksRequest) Descriptor() ([]byte, []int) {
2290	return file_ermite_run_proto_rawDescGZIP(), []int{26}
2291}
2292
2293func (x *ListChecksRequest) GetRepo() string {
2294	if x != nil {
2295		return x.Repo
2296	}
2297	return ""
2298}
2299
2300func (x *ListChecksRequest) GetSha() string {
2301	if x != nil {
2302		return x.Sha
2303	}
2304	return ""
2305}
2306
2307// ListChecksResponse holds the checks of a commit.
2308type ListChecksResponse struct {
2309	state protoimpl.MessageState `protogen:"open.v1"`
2310	// Checks are the checks of the commit, one per job of the latest attempt of
2311	// each run, ordered by creation time then name.
2312	Checks []*Check `protobuf:"bytes,1,rep,name=checks,proto3" json:"checks,omitempty"`
2313	// Truncated is true when the commit has more checks than checks holds.
2314	Truncated     bool `protobuf:"varint,2,opt,name=truncated,proto3" json:"truncated,omitempty"`
2315	unknownFields protoimpl.UnknownFields
2316	sizeCache     protoimpl.SizeCache
2317}
2318
2319func (x *ListChecksResponse) Reset() {
2320	*x = ListChecksResponse{}
2321	mi := &file_ermite_run_proto_msgTypes[27]
2322	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2323	ms.StoreMessageInfo(mi)
2324}
2325
2326func (x *ListChecksResponse) String() string {
2327	return protoimpl.X.MessageStringOf(x)
2328}
2329
2330func (*ListChecksResponse) ProtoMessage() {}
2331
2332func (x *ListChecksResponse) ProtoReflect() protoreflect.Message {
2333	mi := &file_ermite_run_proto_msgTypes[27]
2334	if x != nil {
2335		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2336		if ms.LoadMessageInfo() == nil {
2337			ms.StoreMessageInfo(mi)
2338		}
2339		return ms
2340	}
2341	return mi.MessageOf(x)
2342}
2343
2344// Deprecated: Use ListChecksResponse.ProtoReflect.Descriptor instead.
2345func (*ListChecksResponse) Descriptor() ([]byte, []int) {
2346	return file_ermite_run_proto_rawDescGZIP(), []int{27}
2347}
2348
2349func (x *ListChecksResponse) GetChecks() []*Check {
2350	if x != nil {
2351		return x.Checks
2352	}
2353	return nil
2354}
2355
2356func (x *ListChecksResponse) GetTruncated() bool {
2357	if x != nil {
2358		return x.Truncated
2359	}
2360	return false
2361}
2362
2363// ListRunnersRequest selects a page of runners.
2364type ListRunnersRequest struct {
2365	state protoimpl.MessageState `protogen:"open.v1"`
2366	// PageSize is the maximum number of runners to return.
2367	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
2368	// PageToken is the next_page_token of a previous response. Empty for the
2369	// first page.
2370	PageToken     string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
2371	unknownFields protoimpl.UnknownFields
2372	sizeCache     protoimpl.SizeCache
2373}
2374
2375func (x *ListRunnersRequest) Reset() {
2376	*x = ListRunnersRequest{}
2377	mi := &file_ermite_run_proto_msgTypes[28]
2378	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2379	ms.StoreMessageInfo(mi)
2380}
2381
2382func (x *ListRunnersRequest) String() string {
2383	return protoimpl.X.MessageStringOf(x)
2384}
2385
2386func (*ListRunnersRequest) ProtoMessage() {}
2387
2388func (x *ListRunnersRequest) ProtoReflect() protoreflect.Message {
2389	mi := &file_ermite_run_proto_msgTypes[28]
2390	if x != nil {
2391		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2392		if ms.LoadMessageInfo() == nil {
2393			ms.StoreMessageInfo(mi)
2394		}
2395		return ms
2396	}
2397	return mi.MessageOf(x)
2398}
2399
2400// Deprecated: Use ListRunnersRequest.ProtoReflect.Descriptor instead.
2401func (*ListRunnersRequest) Descriptor() ([]byte, []int) {
2402	return file_ermite_run_proto_rawDescGZIP(), []int{28}
2403}
2404
2405func (x *ListRunnersRequest) GetPageSize() int32 {
2406	if x != nil {
2407		return x.PageSize
2408	}
2409	return 0
2410}
2411
2412func (x *ListRunnersRequest) GetPageToken() string {
2413	if x != nil {
2414		return x.PageToken
2415	}
2416	return ""
2417}
2418
2419// ListRunnersResponse is one page of runners.
2420type ListRunnersResponse struct {
2421	state protoimpl.MessageState `protogen:"open.v1"`
2422	// Runners are the runners of this page, ordered by name.
2423	Runners []*Runner `protobuf:"bytes,1,rep,name=runners,proto3" json:"runners,omitempty"`
2424	// NextPageToken is passed as page_token to get the next page. Empty when
2425	// there is no next page.
2426	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
2427	unknownFields protoimpl.UnknownFields
2428	sizeCache     protoimpl.SizeCache
2429}
2430
2431func (x *ListRunnersResponse) Reset() {
2432	*x = ListRunnersResponse{}
2433	mi := &file_ermite_run_proto_msgTypes[29]
2434	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2435	ms.StoreMessageInfo(mi)
2436}
2437
2438func (x *ListRunnersResponse) String() string {
2439	return protoimpl.X.MessageStringOf(x)
2440}
2441
2442func (*ListRunnersResponse) ProtoMessage() {}
2443
2444func (x *ListRunnersResponse) ProtoReflect() protoreflect.Message {
2445	mi := &file_ermite_run_proto_msgTypes[29]
2446	if x != nil {
2447		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2448		if ms.LoadMessageInfo() == nil {
2449			ms.StoreMessageInfo(mi)
2450		}
2451		return ms
2452	}
2453	return mi.MessageOf(x)
2454}
2455
2456// Deprecated: Use ListRunnersResponse.ProtoReflect.Descriptor instead.
2457func (*ListRunnersResponse) Descriptor() ([]byte, []int) {
2458	return file_ermite_run_proto_rawDescGZIP(), []int{29}
2459}
2460
2461func (x *ListRunnersResponse) GetRunners() []*Runner {
2462	if x != nil {
2463		return x.Runners
2464	}
2465	return nil
2466}
2467
2468func (x *ListRunnersResponse) GetNextPageToken() string {
2469	if x != nil {
2470		return x.NextPageToken
2471	}
2472	return ""
2473}
2474
2475// RemoveRunnerRequest names the runner to remove.
2476type RemoveRunnerRequest struct {
2477	state protoimpl.MessageState `protogen:"open.v1"`
2478	// RunnerId is the Runner.id.
2479	RunnerId      string `protobuf:"bytes,1,opt,name=runner_id,json=runnerId,proto3" json:"runner_id,omitempty"`
2480	unknownFields protoimpl.UnknownFields
2481	sizeCache     protoimpl.SizeCache
2482}
2483
2484func (x *RemoveRunnerRequest) Reset() {
2485	*x = RemoveRunnerRequest{}
2486	mi := &file_ermite_run_proto_msgTypes[30]
2487	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2488	ms.StoreMessageInfo(mi)
2489}
2490
2491func (x *RemoveRunnerRequest) String() string {
2492	return protoimpl.X.MessageStringOf(x)
2493}
2494
2495func (*RemoveRunnerRequest) ProtoMessage() {}
2496
2497func (x *RemoveRunnerRequest) ProtoReflect() protoreflect.Message {
2498	mi := &file_ermite_run_proto_msgTypes[30]
2499	if x != nil {
2500		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2501		if ms.LoadMessageInfo() == nil {
2502			ms.StoreMessageInfo(mi)
2503		}
2504		return ms
2505	}
2506	return mi.MessageOf(x)
2507}
2508
2509// Deprecated: Use RemoveRunnerRequest.ProtoReflect.Descriptor instead.
2510func (*RemoveRunnerRequest) Descriptor() ([]byte, []int) {
2511	return file_ermite_run_proto_rawDescGZIP(), []int{30}
2512}
2513
2514func (x *RemoveRunnerRequest) GetRunnerId() string {
2515	if x != nil {
2516		return x.RunnerId
2517	}
2518	return ""
2519}
2520
2521// RemoveRunnerResponse is empty.
2522type RemoveRunnerResponse struct {
2523	state         protoimpl.MessageState `protogen:"open.v1"`
2524	unknownFields protoimpl.UnknownFields
2525	sizeCache     protoimpl.SizeCache
2526}
2527
2528func (x *RemoveRunnerResponse) Reset() {
2529	*x = RemoveRunnerResponse{}
2530	mi := &file_ermite_run_proto_msgTypes[31]
2531	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2532	ms.StoreMessageInfo(mi)
2533}
2534
2535func (x *RemoveRunnerResponse) String() string {
2536	return protoimpl.X.MessageStringOf(x)
2537}
2538
2539func (*RemoveRunnerResponse) ProtoMessage() {}
2540
2541func (x *RemoveRunnerResponse) ProtoReflect() protoreflect.Message {
2542	mi := &file_ermite_run_proto_msgTypes[31]
2543	if x != nil {
2544		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2545		if ms.LoadMessageInfo() == nil {
2546			ms.StoreMessageInfo(mi)
2547		}
2548		return ms
2549	}
2550	return mi.MessageOf(x)
2551}
2552
2553// Deprecated: Use RemoveRunnerResponse.ProtoReflect.Descriptor instead.
2554func (*RemoveRunnerResponse) Descriptor() ([]byte, []int) {
2555	return file_ermite_run_proto_rawDescGZIP(), []int{31}
2556}
2557
2558var File_ermite_run_proto protoreflect.FileDescriptor
2559
2560const file_ermite_run_proto_rawDesc = "" +
2561	"\n" +
2562	"\x10ermite/run.proto\x12\x06ermite\x1a\x13ermite/runner.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x04\n" +
2563	"\x03Run\x12\x12\n" +
2564	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x0e\n" +
2565	"\x02id\x18\x02 \x01(\x03R\x02id\x12\x16\n" +
2566	"\x06number\x18\x03 \x01(\x03R\x06number\x12\x18\n" +
2567	"\aattempt\x18\x04 \x01(\x05R\aattempt\x12#\n" +
2568	"\rworkflow_path\x18\x05 \x01(\tR\fworkflowPath\x12#\n" +
2569	"\rworkflow_name\x18\x06 \x01(\tR\fworkflowName\x12\x14\n" +
2570	"\x05title\x18\a \x01(\tR\x05title\x12\x14\n" +
2571	"\x05event\x18\b \x01(\tR\x05event\x12\x10\n" +
2572	"\x03ref\x18\t \x01(\tR\x03ref\x12\x10\n" +
2573	"\x03sha\x18\n" +
2574	" \x01(\tR\x03sha\x12\x14\n" +
2575	"\x05actor\x18\v \x01(\tR\x05actor\x12(\n" +
2576	"\x06status\x18\f \x01(\x0e2\x10.ermite.CiStatusR\x06status\x124\n" +
2577	"\n" +
2578	"conclusion\x18\r \x01(\x0e2\x14.ermite.CiConclusionR\n" +
2579	"conclusion\x12\x14\n" +
2580	"\x05error\x18\x0e \x01(\tR\x05error\x129\n" +
2581	"\n" +
2582	"created_at\x18\x0f \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
2583	"\n" +
2584	"started_at\x18\x10 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
2585	"\fcompleted_at\x18\x11 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12\x18\n" +
2586	"\aversion\x18\x12 \x01(\x03R\aversion\x12\x12\n" +
2587	"\x04name\x18\x13 \x01(\tR\x04name\x12\x18\n" +
2588	"\atrusted\x18\x14 \x01(\bR\atrusted\"\xbc\x05\n" +
2589	"\x06RunJob\x12\x0e\n" +
2590	"\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n" +
2591	"\x06run_id\x18\x02 \x01(\x03R\x05runId\x12\x18\n" +
2592	"\aattempt\x18\x03 \x01(\x05R\aattempt\x12\x12\n" +
2593	"\x04repo\x18\x04 \x01(\tR\x04repo\x12\x10\n" +
2594	"\x03key\x18\x05 \x01(\tR\x03key\x12\x12\n" +
2595	"\x04name\x18\x06 \x01(\tR\x04name\x12(\n" +
2596	"\x06status\x18\a \x01(\x0e2\x10.ermite.CiStatusR\x06status\x124\n" +
2597	"\n" +
2598	"conclusion\x18\b \x01(\x0e2\x14.ermite.CiConclusionR\n" +
2599	"conclusion\x12\x14\n" +
2600	"\x05error\x18\t \x01(\tR\x05error\x12\x16\n" +
2601	"\x06labels\x18\n" +
2602	" \x03(\tR\x06labels\x12\x14\n" +
2603	"\x05needs\x18\v \x03(\tR\x05needs\x12\x1b\n" +
2604	"\trunner_id\x18\f \x01(\tR\brunnerId\x12\x1f\n" +
2605	"\vrunner_name\x18\r \x01(\tR\n" +
2606	"runnerName\x125\n" +
2607	"\tisolation\x18\x0e \x01(\x0e2\x17.ermite.RunnerIsolationR\tisolation\x12\"\n" +
2608	"\x05steps\x18\x0f \x03(\v2\f.ermite.StepR\x05steps\x129\n" +
2609	"\n" +
2610	"created_at\x18\x10 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
2611	"\n" +
2612	"started_at\x18\x11 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
2613	"\fcompleted_at\x18\x12 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12\x18\n" +
2614	"\aversion\x18\x13 \x01(\x03R\aversion\x12+\n" +
2615	"\x11concurrency_group\x18\x14 \x01(\tR\x10concurrencyGroup\"\xf1\x02\n" +
2616	"\x04Step\x12\x16\n" +
2617	"\x06number\x18\x01 \x01(\x05R\x06number\x12\x12\n" +
2618	"\x04name\x18\x02 \x01(\tR\x04name\x12'\n" +
2619	"\x05state\x18\x03 \x01(\x0e2\x11.ermite.StepStateR\x05state\x124\n" +
2620	"\n" +
2621	"conclusion\x18\x04 \x01(\x0e2\x14.ermite.CiConclusionR\n" +
2622	"conclusion\x129\n" +
2623	"\n" +
2624	"started_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
2625	"\fcompleted_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12\x1b\n" +
2626	"\tlog_start\x18\a \x01(\x03R\blogStart\x12\x17\n" +
2627	"\alog_end\x18\b \x01(\x03R\x06logEnd\x12.\n" +
2628	"\aoutcome\x18\t \x01(\x0e2\x14.ermite.CiConclusionR\aoutcome\"\x98\x03\n" +
2629	"\x05Check\x12\x0e\n" +
2630	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
2631	"\x04repo\x18\x02 \x01(\tR\x04repo\x12\x10\n" +
2632	"\x03sha\x18\x03 \x01(\tR\x03sha\x12\x12\n" +
2633	"\x04name\x18\x04 \x01(\tR\x04name\x12(\n" +
2634	"\x06status\x18\x05 \x01(\x0e2\x10.ermite.CiStatusR\x06status\x124\n" +
2635	"\n" +
2636	"conclusion\x18\x06 \x01(\x0e2\x14.ermite.CiConclusionR\n" +
2637	"conclusion\x12\x15\n" +
2638	"\x06run_id\x18\a \x01(\x03R\x05runId\x12\x15\n" +
2639	"\x06job_id\x18\b \x01(\tR\x05jobId\x12\x18\n" +
2640	"\aattempt\x18\t \x01(\x05R\aattempt\x12#\n" +
2641	"\rworkflow_name\x18\n" +
2642	" \x01(\tR\fworkflowName\x129\n" +
2643	"\n" +
2644	"started_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
2645	"\fcompleted_at\x18\f \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\"\xc7\x02\n" +
2646	"\x06Runner\x12\x0e\n" +
2647	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
2648	"\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" +
2649	"\x06labels\x18\x03 \x03(\tR\x06labels\x125\n" +
2650	"\tisolation\x18\x04 \x01(\x0e2\x17.ermite.RunnerIsolationR\tisolation\x12\x18\n" +
2651	"\aversion\x18\x05 \x01(\tR\aversion\x12\x12\n" +
2652	"\x04arch\x18\x06 \x01(\tR\x04arch\x12\x0e\n" +
2653	"\x02os\x18\a \x01(\tR\x02os\x12?\n" +
2654	"\rregistered_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\fregisteredAt\x127\n" +
2655	"\tlast_seen\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\blastSeen\x12\x12\n" +
2656	"\x04busy\x18\n" +
2657	" \x01(\bR\x04busy\"\xbf\x01\n" +
2658	"\x0fListRunsRequest\x12\x12\n" +
2659	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1b\n" +
2660	"\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" +
2661	"\n" +
2662	"page_token\x18\x03 \x01(\tR\tpageToken\x12\x1a\n" +
2663	"\bworkflow\x18\x04 \x01(\tR\bworkflow\x12\x16\n" +
2664	"\x06branch\x18\x05 \x01(\tR\x06branch\x12(\n" +
2665	"\x06status\x18\x06 \x01(\x0e2\x10.ermite.CiStatusR\x06status\"[\n" +
2666	"\x10ListRunsResponse\x12\x1f\n" +
2667	"\x04runs\x18\x01 \x03(\v2\v.ermite.RunR\x04runs\x12&\n" +
2668	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"T\n" +
2669	"\rGetRunRequest\x12\x12\n" +
2670	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2671	"\x06run_id\x18\x02 \x01(\x03R\x05runId\x12\x18\n" +
2672	"\aattempt\x18\x03 \x01(\x05R\aattempt\"z\n" +
2673	"\x0eGetRunResponse\x12\x1d\n" +
2674	"\x03run\x18\x01 \x01(\v2\v.ermite.RunR\x03run\x12\"\n" +
2675	"\x04jobs\x18\x02 \x03(\v2\x0e.ermite.RunJobR\x04jobs\x12%\n" +
2676	"\x0elatest_attempt\x18\x03 \x01(\x05R\rlatestAttempt\"T\n" +
2677	"\rGetJobRequest\x12\x12\n" +
2678	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2679	"\x06job_id\x18\x02 \x01(\tR\x05jobId\x12\x18\n" +
2680	"\aattempt\x18\x03 \x01(\x05R\aattempt\"2\n" +
2681	"\x0eGetJobResponse\x12 \n" +
2682	"\x03job\x18\x01 \x01(\v2\x0e.ermite.RunJobR\x03job\"t\n" +
2683	"\x16ListAnnotationsRequest\x12\x12\n" +
2684	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2685	"\x06run_id\x18\x02 \x01(\x03R\x05runId\x12\x18\n" +
2686	"\aattempt\x18\x03 \x01(\x05R\aattempt\x12\x15\n" +
2687	"\x06job_id\x18\x04 \x01(\tR\x05jobId\"p\n" +
2688	"\x17ListAnnotationsResponse\x127\n" +
2689	"\vannotations\x18\x01 \x03(\v2\x15.ermite.JobAnnotationR\vannotations\x12\x1c\n" +
2690	"\ttruncated\x18\x02 \x01(\bR\ttruncated\"Z\n" +
2691	"\rJobAnnotation\x12\x15\n" +
2692	"\x06job_id\x18\x01 \x01(\tR\x05jobId\x122\n" +
2693	"\n" +
2694	"annotation\x18\x02 \x01(\v2\x12.ermite.AnnotationR\n" +
2695	"annotation\"^\n" +
2696	"\x17GetStepSummariesRequest\x12\x12\n" +
2697	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2698	"\x06job_id\x18\x02 \x01(\tR\x05jobId\x12\x18\n" +
2699	"\aattempt\x18\x03 \x01(\x05R\aattempt\"k\n" +
2700	"\x18GetStepSummariesResponse\x121\n" +
2701	"\tsummaries\x18\x01 \x03(\v2\x13.ermite.StepSummaryR\tsummaries\x12\x1c\n" +
2702	"\ttruncated\x18\x02 \x01(\bR\ttruncated\"J\n" +
2703	"\vStepSummary\x12\x1f\n" +
2704	"\vstep_number\x18\x01 \x01(\x05R\n" +
2705	"stepNumber\x12\x1a\n" +
2706	"\bmarkdown\x18\x02 \x01(\tR\bmarkdown\"\x87\x01\n" +
2707	"\x10GetJobLogRequest\x12\x12\n" +
2708	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2709	"\x06job_id\x18\x02 \x01(\tR\x05jobId\x12\x18\n" +
2710	"\aattempt\x18\x03 \x01(\x05R\aattempt\x12\x16\n" +
2711	"\x06offset\x18\x04 \x01(\x03R\x06offset\x12\x16\n" +
2712	"\x06follow\x18\x05 \x01(\bR\x06follow\"U\n" +
2713	"\x11GetJobLogResponse\x12\x16\n" +
2714	"\x06offset\x18\x01 \x01(\x03R\x06offset\x12(\n" +
2715	"\x05lines\x18\x02 \x03(\v2\x12.ermite.JobLogLineR\x05lines\"\x82\x01\n" +
2716	"\n" +
2717	"JobLogLine\x12\x12\n" +
2718	"\x04step\x18\x01 \x01(\x05R\x04step\x12.\n" +
2719	"\x04time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x04time\x12\x12\n" +
2720	"\x04text\x18\x03 \x01(\tR\x04text\x12\x1c\n" +
2721	"\tcontinued\x18\x04 \x01(\bR\tcontinued\"=\n" +
2722	"\x10CancelRunRequest\x12\x12\n" +
2723	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2724	"\x06run_id\x18\x02 \x01(\x03R\x05runId\"2\n" +
2725	"\x11CancelRunResponse\x12\x1d\n" +
2726	"\x03run\x18\x01 \x01(\v2\v.ermite.RunR\x03run\"]\n" +
2727	"\x0fRerunRunRequest\x12\x12\n" +
2728	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x15\n" +
2729	"\x06run_id\x18\x02 \x01(\x03R\x05runId\x12\x1f\n" +
2730	"\vfailed_only\x18\x03 \x01(\bR\n" +
2731	"failedOnly\"1\n" +
2732	"\x10RerunRunResponse\x12\x1d\n" +
2733	"\x03run\x18\x01 \x01(\v2\v.ermite.RunR\x03run\"\xe4\x01\n" +
2734	"\x17DispatchWorkflowRequest\x12\x12\n" +
2735	"\x04repo\x18\x01 \x01(\tR\x04repo\x12#\n" +
2736	"\rworkflow_path\x18\x02 \x01(\tR\fworkflowPath\x12\x10\n" +
2737	"\x03ref\x18\x03 \x01(\tR\x03ref\x12C\n" +
2738	"\x06inputs\x18\x04 \x03(\v2+.ermite.DispatchWorkflowRequest.InputsEntryR\x06inputs\x1a9\n" +
2739	"\vInputsEntry\x12\x10\n" +
2740	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
2741	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"9\n" +
2742	"\x18DispatchWorkflowResponse\x12\x1d\n" +
2743	"\x03run\x18\x01 \x01(\v2\v.ermite.RunR\x03run\"9\n" +
2744	"\x11ListChecksRequest\x12\x12\n" +
2745	"\x04repo\x18\x01 \x01(\tR\x04repo\x12\x10\n" +
2746	"\x03sha\x18\x02 \x01(\tR\x03sha\"Y\n" +
2747	"\x12ListChecksResponse\x12%\n" +
2748	"\x06checks\x18\x01 \x03(\v2\r.ermite.CheckR\x06checks\x12\x1c\n" +
2749	"\ttruncated\x18\x02 \x01(\bR\ttruncated\"P\n" +
2750	"\x12ListRunnersRequest\x12\x1b\n" +
2751	"\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" +
2752	"\n" +
2753	"page_token\x18\x02 \x01(\tR\tpageToken\"g\n" +
2754	"\x13ListRunnersResponse\x12(\n" +
2755	"\arunners\x18\x01 \x03(\v2\x0e.ermite.RunnerR\arunners\x12&\n" +
2756	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"2\n" +
2757	"\x13RemoveRunnerRequest\x12\x1b\n" +
2758	"\trunner_id\x18\x01 \x01(\tR\brunnerId\"\x16\n" +
2759	"\x14RemoveRunnerResponse2\xdc\x06\n" +
2760	"\n" +
2761	"RunService\x12=\n" +
2762	"\bListRuns\x12\x17.ermite.ListRunsRequest\x1a\x18.ermite.ListRunsResponse\x127\n" +
2763	"\x06GetRun\x12\x15.ermite.GetRunRequest\x1a\x16.ermite.GetRunResponse\x127\n" +
2764	"\x06GetJob\x12\x15.ermite.GetJobRequest\x1a\x16.ermite.GetJobResponse\x12R\n" +
2765	"\x0fListAnnotations\x12\x1e.ermite.ListAnnotationsRequest\x1a\x1f.ermite.ListAnnotationsResponse\x12U\n" +
2766	"\x10GetStepSummaries\x12\x1f.ermite.GetStepSummariesRequest\x1a .ermite.GetStepSummariesResponse\x12B\n" +
2767	"\tGetJobLog\x12\x18.ermite.GetJobLogRequest\x1a\x19.ermite.GetJobLogResponse0\x01\x12@\n" +
2768	"\tCancelRun\x12\x18.ermite.CancelRunRequest\x1a\x19.ermite.CancelRunResponse\x12=\n" +
2769	"\bRerunRun\x12\x17.ermite.RerunRunRequest\x1a\x18.ermite.RerunRunResponse\x12U\n" +
2770	"\x10DispatchWorkflow\x12\x1f.ermite.DispatchWorkflowRequest\x1a .ermite.DispatchWorkflowResponse\x12C\n" +
2771	"\n" +
2772	"ListChecks\x12\x19.ermite.ListChecksRequest\x1a\x1a.ermite.ListChecksResponse\x12F\n" +
2773	"\vListRunners\x12\x1a.ermite.ListRunnersRequest\x1a\x1b.ermite.ListRunnersResponse\x12I\n" +
2774	"\fRemoveRunner\x12\x1b.ermite.RemoveRunnerRequest\x1a\x1c.ermite.RemoveRunnerResponseBo\n" +
2775	"\n" +
2776	"com.ermiteB\bRunProtoP\x01Z\x1fbnema.dev/ermite-api/gen/ermite\xa2\x02\x03EXX\xaa\x02\x06Ermite\xca\x02\x06Ermite\xe2\x02\x12Ermite\\GPBMetadata\xea\x02\x06Ermiteb\x06proto3"
2777
2778var (
2779	file_ermite_run_proto_rawDescOnce sync.Once
2780	file_ermite_run_proto_rawDescData []byte
2781)
2782
2783func file_ermite_run_proto_rawDescGZIP() []byte {
2784	file_ermite_run_proto_rawDescOnce.Do(func() {
2785		file_ermite_run_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ermite_run_proto_rawDesc), len(file_ermite_run_proto_rawDesc)))
2786	})
2787	return file_ermite_run_proto_rawDescData
2788}
2789
2790var file_ermite_run_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
2791var file_ermite_run_proto_goTypes = []any{
2792	(*Run)(nil),                      // 0: ermite.Run
2793	(*RunJob)(nil),                   // 1: ermite.RunJob
2794	(*Step)(nil),                     // 2: ermite.Step
2795	(*Check)(nil),                    // 3: ermite.Check
2796	(*Runner)(nil),                   // 4: ermite.Runner
2797	(*ListRunsRequest)(nil),          // 5: ermite.ListRunsRequest
2798	(*ListRunsResponse)(nil),         // 6: ermite.ListRunsResponse
2799	(*GetRunRequest)(nil),            // 7: ermite.GetRunRequest
2800	(*GetRunResponse)(nil),           // 8: ermite.GetRunResponse
2801	(*GetJobRequest)(nil),            // 9: ermite.GetJobRequest
2802	(*GetJobResponse)(nil),           // 10: ermite.GetJobResponse
2803	(*ListAnnotationsRequest)(nil),   // 11: ermite.ListAnnotationsRequest
2804	(*ListAnnotationsResponse)(nil),  // 12: ermite.ListAnnotationsResponse
2805	(*JobAnnotation)(nil),            // 13: ermite.JobAnnotation
2806	(*GetStepSummariesRequest)(nil),  // 14: ermite.GetStepSummariesRequest
2807	(*GetStepSummariesResponse)(nil), // 15: ermite.GetStepSummariesResponse
2808	(*StepSummary)(nil),              // 16: ermite.StepSummary
2809	(*GetJobLogRequest)(nil),         // 17: ermite.GetJobLogRequest
2810	(*GetJobLogResponse)(nil),        // 18: ermite.GetJobLogResponse
2811	(*JobLogLine)(nil),               // 19: ermite.JobLogLine
2812	(*CancelRunRequest)(nil),         // 20: ermite.CancelRunRequest
2813	(*CancelRunResponse)(nil),        // 21: ermite.CancelRunResponse
2814	(*RerunRunRequest)(nil),          // 22: ermite.RerunRunRequest
2815	(*RerunRunResponse)(nil),         // 23: ermite.RerunRunResponse
2816	(*DispatchWorkflowRequest)(nil),  // 24: ermite.DispatchWorkflowRequest
2817	(*DispatchWorkflowResponse)(nil), // 25: ermite.DispatchWorkflowResponse
2818	(*ListChecksRequest)(nil),        // 26: ermite.ListChecksRequest
2819	(*ListChecksResponse)(nil),       // 27: ermite.ListChecksResponse
2820	(*ListRunnersRequest)(nil),       // 28: ermite.ListRunnersRequest
2821	(*ListRunnersResponse)(nil),      // 29: ermite.ListRunnersResponse
2822	(*RemoveRunnerRequest)(nil),      // 30: ermite.RemoveRunnerRequest
2823	(*RemoveRunnerResponse)(nil),     // 31: ermite.RemoveRunnerResponse
2824	nil,                              // 32: ermite.DispatchWorkflowRequest.InputsEntry
2825	(CiStatus)(0),                    // 33: ermite.CiStatus
2826	(CiConclusion)(0),                // 34: ermite.CiConclusion
2827	(*timestamppb.Timestamp)(nil),    // 35: google.protobuf.Timestamp
2828	(RunnerIsolation)(0),             // 36: ermite.RunnerIsolation
2829	(StepState)(0),                   // 37: ermite.StepState
2830	(*Annotation)(nil),               // 38: ermite.Annotation
2831}
2832var file_ermite_run_proto_depIdxs = []int32{
2833	33, // 0: ermite.Run.status:type_name -> ermite.CiStatus
2834	34, // 1: ermite.Run.conclusion:type_name -> ermite.CiConclusion
2835	35, // 2: ermite.Run.created_at:type_name -> google.protobuf.Timestamp
2836	35, // 3: ermite.Run.started_at:type_name -> google.protobuf.Timestamp
2837	35, // 4: ermite.Run.completed_at:type_name -> google.protobuf.Timestamp
2838	33, // 5: ermite.RunJob.status:type_name -> ermite.CiStatus
2839	34, // 6: ermite.RunJob.conclusion:type_name -> ermite.CiConclusion
2840	36, // 7: ermite.RunJob.isolation:type_name -> ermite.RunnerIsolation
2841	2,  // 8: ermite.RunJob.steps:type_name -> ermite.Step
2842	35, // 9: ermite.RunJob.created_at:type_name -> google.protobuf.Timestamp
2843	35, // 10: ermite.RunJob.started_at:type_name -> google.protobuf.Timestamp
2844	35, // 11: ermite.RunJob.completed_at:type_name -> google.protobuf.Timestamp
2845	37, // 12: ermite.Step.state:type_name -> ermite.StepState
2846	34, // 13: ermite.Step.conclusion:type_name -> ermite.CiConclusion
2847	35, // 14: ermite.Step.started_at:type_name -> google.protobuf.Timestamp
2848	35, // 15: ermite.Step.completed_at:type_name -> google.protobuf.Timestamp
2849	34, // 16: ermite.Step.outcome:type_name -> ermite.CiConclusion
2850	33, // 17: ermite.Check.status:type_name -> ermite.CiStatus
2851	34, // 18: ermite.Check.conclusion:type_name -> ermite.CiConclusion
2852	35, // 19: ermite.Check.started_at:type_name -> google.protobuf.Timestamp
2853	35, // 20: ermite.Check.completed_at:type_name -> google.protobuf.Timestamp
2854	36, // 21: ermite.Runner.isolation:type_name -> ermite.RunnerIsolation
2855	35, // 22: ermite.Runner.registered_at:type_name -> google.protobuf.Timestamp
2856	35, // 23: ermite.Runner.last_seen:type_name -> google.protobuf.Timestamp
2857	33, // 24: ermite.ListRunsRequest.status:type_name -> ermite.CiStatus
2858	0,  // 25: ermite.ListRunsResponse.runs:type_name -> ermite.Run
2859	0,  // 26: ermite.GetRunResponse.run:type_name -> ermite.Run
2860	1,  // 27: ermite.GetRunResponse.jobs:type_name -> ermite.RunJob
2861	1,  // 28: ermite.GetJobResponse.job:type_name -> ermite.RunJob
2862	13, // 29: ermite.ListAnnotationsResponse.annotations:type_name -> ermite.JobAnnotation
2863	38, // 30: ermite.JobAnnotation.annotation:type_name -> ermite.Annotation
2864	16, // 31: ermite.GetStepSummariesResponse.summaries:type_name -> ermite.StepSummary
2865	19, // 32: ermite.GetJobLogResponse.lines:type_name -> ermite.JobLogLine
2866	35, // 33: ermite.JobLogLine.time:type_name -> google.protobuf.Timestamp
2867	0,  // 34: ermite.CancelRunResponse.run:type_name -> ermite.Run
2868	0,  // 35: ermite.RerunRunResponse.run:type_name -> ermite.Run
2869	32, // 36: ermite.DispatchWorkflowRequest.inputs:type_name -> ermite.DispatchWorkflowRequest.InputsEntry
2870	0,  // 37: ermite.DispatchWorkflowResponse.run:type_name -> ermite.Run
2871	3,  // 38: ermite.ListChecksResponse.checks:type_name -> ermite.Check
2872	4,  // 39: ermite.ListRunnersResponse.runners:type_name -> ermite.Runner
2873	5,  // 40: ermite.RunService.ListRuns:input_type -> ermite.ListRunsRequest
2874	7,  // 41: ermite.RunService.GetRun:input_type -> ermite.GetRunRequest
2875	9,  // 42: ermite.RunService.GetJob:input_type -> ermite.GetJobRequest
2876	11, // 43: ermite.RunService.ListAnnotations:input_type -> ermite.ListAnnotationsRequest
2877	14, // 44: ermite.RunService.GetStepSummaries:input_type -> ermite.GetStepSummariesRequest
2878	17, // 45: ermite.RunService.GetJobLog:input_type -> ermite.GetJobLogRequest
2879	20, // 46: ermite.RunService.CancelRun:input_type -> ermite.CancelRunRequest
2880	22, // 47: ermite.RunService.RerunRun:input_type -> ermite.RerunRunRequest
2881	24, // 48: ermite.RunService.DispatchWorkflow:input_type -> ermite.DispatchWorkflowRequest
2882	26, // 49: ermite.RunService.ListChecks:input_type -> ermite.ListChecksRequest
2883	28, // 50: ermite.RunService.ListRunners:input_type -> ermite.ListRunnersRequest
2884	30, // 51: ermite.RunService.RemoveRunner:input_type -> ermite.RemoveRunnerRequest
2885	6,  // 52: ermite.RunService.ListRuns:output_type -> ermite.ListRunsResponse
2886	8,  // 53: ermite.RunService.GetRun:output_type -> ermite.GetRunResponse
2887	10, // 54: ermite.RunService.GetJob:output_type -> ermite.GetJobResponse
2888	12, // 55: ermite.RunService.ListAnnotations:output_type -> ermite.ListAnnotationsResponse
2889	15, // 56: ermite.RunService.GetStepSummaries:output_type -> ermite.GetStepSummariesResponse
2890	18, // 57: ermite.RunService.GetJobLog:output_type -> ermite.GetJobLogResponse
2891	21, // 58: ermite.RunService.CancelRun:output_type -> ermite.CancelRunResponse
2892	23, // 59: ermite.RunService.RerunRun:output_type -> ermite.RerunRunResponse
2893	25, // 60: ermite.RunService.DispatchWorkflow:output_type -> ermite.DispatchWorkflowResponse
2894	27, // 61: ermite.RunService.ListChecks:output_type -> ermite.ListChecksResponse
2895	29, // 62: ermite.RunService.ListRunners:output_type -> ermite.ListRunnersResponse
2896	31, // 63: ermite.RunService.RemoveRunner:output_type -> ermite.RemoveRunnerResponse
2897	52, // [52:64] is the sub-list for method output_type
2898	40, // [40:52] is the sub-list for method input_type
2899	40, // [40:40] is the sub-list for extension type_name
2900	40, // [40:40] is the sub-list for extension extendee
2901	0,  // [0:40] is the sub-list for field type_name
2902}
2903
2904func init() { file_ermite_run_proto_init() }
2905func file_ermite_run_proto_init() {
2906	if File_ermite_run_proto != nil {
2907		return
2908	}
2909	file_ermite_runner_proto_init()
2910	type x struct{}
2911	out := protoimpl.TypeBuilder{
2912		File: protoimpl.DescBuilder{
2913			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2914			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ermite_run_proto_rawDesc), len(file_ermite_run_proto_rawDesc)),
2915			NumEnums:      0,
2916			NumMessages:   33,
2917			NumExtensions: 0,
2918			NumServices:   1,
2919		},
2920		GoTypes:           file_ermite_run_proto_goTypes,
2921		DependencyIndexes: file_ermite_run_proto_depIdxs,
2922		MessageInfos:      file_ermite_run_proto_msgTypes,
2923	}.Build()
2924	File_ermite_run_proto = out.File
2925	file_ermite_run_proto_goTypes = nil
2926	file_ermite_run_proto_depIdxs = nil
2927}

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