detached 0e0b3ac

fix(api): rename the CI status and conclusion enums to CiStatus and CiConclusion

Avoids clashing with future generic names before the first release.
commit
0e0b3acb29a5e10b2218f0a605e88e65f946cbee
author
brice · · 2026-10-12 14:12 UTC
parent
8b00839
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
6 files · +207 -208
M gen/ermite/ermiteconnect/runner.connect.go +4 -4
@@ -112,7 +112,7 @@ type RunnerServiceClient interface {
112112 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by
113113 // the server (text, timestamps and separators). The call that would exceed
114114 // it appends nothing; the server adds a last line saying that the limit was
115- // reached, ends the job with CONCLUSION_FAILURE and RunJob.error set, and
115+ // reached, ends the job with CI_CONCLUSION_FAILURE and RunJob.error set, and
116116 // answers resource_exhausted. The runner then stops the job and sends
117117 // nothing more: its calls get unauthenticated.
118118 //
@@ -122,7 +122,7 @@ type RunnerServiceClient interface {
122122 // Heartbeat tells the server that the runner is alive and still working on
123123 // the job. Needs the job token. The runner calls it every 30 seconds for as
124124 // long as the job runs, from assignment to the end. Without a heartbeat for
125- // 2 minutes the server ends the job with CONCLUSION_FAILURE and the message
125+ // 2 minutes the server ends the job with CI_CONCLUSION_FAILURE and the message
126126 // "The self-hosted runner: <name> lost communication with the server...".
127127 // Only Heartbeat counts: other calls do not keep a job alive.
128128 Heartbeat(context.Context, *connect.Request[ermite.HeartbeatRequest]) (*connect.Response[ermite.HeartbeatResponse], error)
@@ -294,7 +294,7 @@ type RunnerServiceHandler interface {
294294 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by
295295 // the server (text, timestamps and separators). The call that would exceed
296296 // it appends nothing; the server adds a last line saying that the limit was
297- // reached, ends the job with CONCLUSION_FAILURE and RunJob.error set, and
297+ // reached, ends the job with CI_CONCLUSION_FAILURE and RunJob.error set, and
298298 // answers resource_exhausted. The runner then stops the job and sends
299299 // nothing more: its calls get unauthenticated.
300300 //
@@ -304,7 +304,7 @@ type RunnerServiceHandler interface {
304304 // Heartbeat tells the server that the runner is alive and still working on
305305 // the job. Needs the job token. The runner calls it every 30 seconds for as
306306 // long as the job runs, from assignment to the end. Without a heartbeat for
307- // 2 minutes the server ends the job with CONCLUSION_FAILURE and the message
307+ // 2 minutes the server ends the job with CI_CONCLUSION_FAILURE and the message
308308 // "The self-hosted runner: <name> lost communication with the server...".
309309 // Only Heartbeat counts: other calls do not keep a job alive.
310310 Heartbeat(context.Context, *connect.Request[ermite.HeartbeatRequest]) (*connect.Response[ermite.HeartbeatResponse], error)
@@ -112,7 +112,7 @@ type RunnerServiceClient interface {
112 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by112 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by
113 // the server (text, timestamps and separators). The call that would exceed113 // the server (text, timestamps and separators). The call that would exceed
114 // it appends nothing; the server adds a last line saying that the limit was114 // it appends nothing; the server adds a last line saying that the limit was
115- // reached, ends the job with CONCLUSION_FAILURE and RunJob.error set, and115+ // reached, ends the job with CI_CONCLUSION_FAILURE and RunJob.error set, and
116 // answers resource_exhausted. The runner then stops the job and sends116 // answers resource_exhausted. The runner then stops the job and sends
117 // nothing more: its calls get unauthenticated.117 // nothing more: its calls get unauthenticated.
118 //118 //
@@ -122,7 +122,7 @@ type RunnerServiceClient interface {
122 // Heartbeat tells the server that the runner is alive and still working on122 // Heartbeat tells the server that the runner is alive and still working on
123 // the job. Needs the job token. The runner calls it every 30 seconds for as123 // the job. Needs the job token. The runner calls it every 30 seconds for as
124 // long as the job runs, from assignment to the end. Without a heartbeat for124 // long as the job runs, from assignment to the end. Without a heartbeat for
125- // 2 minutes the server ends the job with CONCLUSION_FAILURE and the message125+ // 2 minutes the server ends the job with CI_CONCLUSION_FAILURE and the message
126 // "The self-hosted runner: <name> lost communication with the server...".126 // "The self-hosted runner: <name> lost communication with the server...".
127 // Only Heartbeat counts: other calls do not keep a job alive.127 // Only Heartbeat counts: other calls do not keep a job alive.
128 Heartbeat(context.Context, *connect.Request[ermite.HeartbeatRequest]) (*connect.Response[ermite.HeartbeatResponse], error)128 Heartbeat(context.Context, *connect.Request[ermite.HeartbeatRequest]) (*connect.Response[ermite.HeartbeatResponse], error)
@@ -294,7 +294,7 @@ type RunnerServiceHandler interface {
294 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by294 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by
295 // the server (text, timestamps and separators). The call that would exceed295 // the server (text, timestamps and separators). The call that would exceed
296 // it appends nothing; the server adds a last line saying that the limit was296 // it appends nothing; the server adds a last line saying that the limit was
297- // reached, ends the job with CONCLUSION_FAILURE and RunJob.error set, and297+ // reached, ends the job with CI_CONCLUSION_FAILURE and RunJob.error set, and
298 // answers resource_exhausted. The runner then stops the job and sends298 // answers resource_exhausted. The runner then stops the job and sends
299 // nothing more: its calls get unauthenticated.299 // nothing more: its calls get unauthenticated.
300 //300 //
@@ -304,7 +304,7 @@ type RunnerServiceHandler interface {
304 // Heartbeat tells the server that the runner is alive and still working on304 // Heartbeat tells the server that the runner is alive and still working on
305 // the job. Needs the job token. The runner calls it every 30 seconds for as305 // the job. Needs the job token. The runner calls it every 30 seconds for as
306 // long as the job runs, from assignment to the end. Without a heartbeat for306 // long as the job runs, from assignment to the end. Without a heartbeat for
307- // 2 minutes the server ends the job with CONCLUSION_FAILURE and the message307+ // 2 minutes the server ends the job with CI_CONCLUSION_FAILURE and the message
308 // "The self-hosted runner: <name> lost communication with the server...".308 // "The self-hosted runner: <name> lost communication with the server...".
309 // Only Heartbeat counts: other calls do not keep a job alive.309 // Only Heartbeat counts: other calls do not keep a job alive.
310 Heartbeat(context.Context, *connect.Request[ermite.HeartbeatRequest]) (*connect.Response[ermite.HeartbeatResponse], error)310 Heartbeat(context.Context, *connect.Request[ermite.HeartbeatRequest]) (*connect.Response[ermite.HeartbeatResponse], error)
M gen/ermite/run.pb.go +53 -53 generated file: collapsed
M gen/ermite/runner.pb.go +106 -107 generated file: collapsed
M gen_test.go +4 -4
@@ -87,10 +87,10 @@ func TestEnumNumbers(t *testing.T) {
8787 if got := ermite.DiffSide_DIFF_SIDE_NEW; got != 2 {
8888 t.Errorf("DIFF_SIDE_NEW = %d, want 2", got)
8989 }
90- if got := ermite.RunStatus_RUN_STATUS_COMPLETED; got != 3 {
90+ if got := ermite.CiStatus_CI_STATUS_COMPLETED; got != 3 {
9191 t.Errorf("RUN_STATUS_COMPLETED = %d, want 3", got)
9292 }
93- if got := ermite.Conclusion_CONCLUSION_ACTION_REQUIRED; got != 7 {
93+ if got := ermite.CiConclusion_CI_CONCLUSION_ACTION_REQUIRED; got != 7 {
9494 t.Errorf("CONCLUSION_ACTION_REQUIRED = %d, want 7", got)
9595 }
9696 if got := ermite.StepState_STEP_STATE_COMPLETED; got != 3 {
@@ -193,8 +193,8 @@ func TestCIEventRoundTrip(t *testing.T) {
193193 Id: "j1",
194194 RunId: 9,
195195 Attempt: 2,
196- Status: ermite.RunStatus_RUN_STATUS_COMPLETED,
197- Conclusion: ermite.Conclusion_CONCLUSION_TIMED_OUT,
196+ Status: ermite.CiStatus_CI_STATUS_COMPLETED,
197+ Conclusion: ermite.CiConclusion_CI_CONCLUSION_TIMED_OUT,
198198 Isolation: ermite.RunnerIsolation_RUNNER_ISOLATION_VM,
199199 Steps: []*ermite.Step{{Number: 1, Name: "Set up job", LogStart: 0, LogEnd: 3}},
200200 }}},
@@ -87,10 +87,10 @@ func TestEnumNumbers(t *testing.T) {
87 if got := ermite.DiffSide_DIFF_SIDE_NEW; got != 2 {87 if got := ermite.DiffSide_DIFF_SIDE_NEW; got != 2 {
88 t.Errorf("DIFF_SIDE_NEW = %d, want 2", got)88 t.Errorf("DIFF_SIDE_NEW = %d, want 2", got)
89 }89 }
90- if got := ermite.RunStatus_RUN_STATUS_COMPLETED; got != 3 {90+ if got := ermite.CiStatus_CI_STATUS_COMPLETED; got != 3 {
91 t.Errorf("RUN_STATUS_COMPLETED = %d, want 3", got)91 t.Errorf("RUN_STATUS_COMPLETED = %d, want 3", got)
92 }92 }
93- if got := ermite.Conclusion_CONCLUSION_ACTION_REQUIRED; got != 7 {93+ if got := ermite.CiConclusion_CI_CONCLUSION_ACTION_REQUIRED; got != 7 {
94 t.Errorf("CONCLUSION_ACTION_REQUIRED = %d, want 7", got)94 t.Errorf("CONCLUSION_ACTION_REQUIRED = %d, want 7", got)
95 }95 }
96 if got := ermite.StepState_STEP_STATE_COMPLETED; got != 3 {96 if got := ermite.StepState_STEP_STATE_COMPLETED; got != 3 {
@@ -193,8 +193,8 @@ func TestCIEventRoundTrip(t *testing.T) {
193 Id: "j1",193 Id: "j1",
194 RunId: 9,194 RunId: 9,
195 Attempt: 2,195 Attempt: 2,
196- Status: ermite.RunStatus_RUN_STATUS_COMPLETED,196+ Status: ermite.CiStatus_CI_STATUS_COMPLETED,
197- Conclusion: ermite.Conclusion_CONCLUSION_TIMED_OUT,197+ Conclusion: ermite.CiConclusion_CI_CONCLUSION_TIMED_OUT,
198 Isolation: ermite.RunnerIsolation_RUNNER_ISOLATION_VM,198 Isolation: ermite.RunnerIsolation_RUNNER_ISOLATION_VM,
199 Steps: []*ermite.Step{{Number: 1, Name: "Set up job", LogStart: 0, LogEnd: 3}},199 Steps: []*ermite.Step{{Number: 1, Name: "Set up job", LogStart: 0, LogEnd: 3}},
200 }}},200 }}},
M proto/ermite/run.proto +9 -9
@@ -48,12 +48,12 @@ message Run {
4848 string actor = 11;
4949 // Status is where this attempt is: QUEUED until a job starts, IN_PROGRESS
5050 // while jobs run or wait, COMPLETED when every job is over.
51- RunStatus status = 12;
51+ CiStatus status = 12;
5252 // Conclusion is how this attempt ended, from its jobs' conclusions like
5353 // GitHub: CANCELLED if it was cancelled, else FAILURE if a job failed or
5454 // timed out, else SUCCESS (also when jobs were skipped). Unset until
5555 // status is COMPLETED.
56- Conclusion conclusion = 13;
56+ CiConclusion conclusion = 13;
5757 // Error is set when the run failed without running a job because the
5858 // workflow could not be used: an invalid workflow file (the run then has
5959 // no jobs and conclusion FAILURE), as GitHub's "Invalid workflow file".
@@ -94,9 +94,9 @@ message RunJob {
9494 string name = 6;
9595 // Status is where the job is. A job waits QUEUED for a runner and for the
9696 // jobs it needs.
97- RunStatus status = 7;
97+ CiStatus status = 7;
9898 // Conclusion is how the job ended. Unset until status is COMPLETED.
99- Conclusion conclusion = 8;
99+ CiConclusion conclusion = 8;
100100 // Error explains a FAILURE, CANCELLED or TIMED_OUT that no step explains, in
101101 // GitHub's words where it has them: the runner was lost ("The self-hosted
102102 // runner: <name> lost communication with the server..."), it received a
@@ -139,7 +139,7 @@ message Step {
139139 // State is where the step is.
140140 StepState state = 3;
141141 // Conclusion is how the step ended. Unset until state is COMPLETED.
142- Conclusion conclusion = 4;
142+ CiConclusion conclusion = 4;
143143 // StartedAt is when the step started. Unset while PENDING.
144144 google.protobuf.Timestamp started_at = 5;
145145 // CompletedAt is when the step ended. Unset until COMPLETED.
@@ -166,10 +166,10 @@ message Check {
166166 // Name is the name of the check: the RunJob.name of the job.
167167 string name = 4;
168168 // Status is where the check is.
169- RunStatus status = 5;
169+ CiStatus status = 5;
170170 // Conclusion is how the check ended. Unset until status is COMPLETED. The
171171 // value "stale" of GitHub is never used.
172- Conclusion conclusion = 6;
172+ CiConclusion conclusion = 6;
173173 // RunId is the run of the job.
174174 int64 run_id = 7;
175175 // JobId is the RunJob.id of the job, to open its page and log.
@@ -319,9 +319,9 @@ message ListRunsRequest {
319319 // "ci.runs.filters".
320320 string branch = 5;
321321 // Status restricts the result to the runs whose latest attempt has this
322- // status. RUN_STATUS_UNSPECIFIED means every status. Ignored by servers
322+ // status. CI_STATUS_UNSPECIFIED means every status. Ignored by servers
323323 // without "ci.runs.filters".
324- RunStatus status = 6;
324+ CiStatus status = 6;
325325 }
326326
327327 // ListRunsResponse is one page of runs.
@@ -48,12 +48,12 @@ message Run {
48 string actor = 11;48 string actor = 11;
49 // Status is where this attempt is: QUEUED until a job starts, IN_PROGRESS49 // Status is where this attempt is: QUEUED until a job starts, IN_PROGRESS
50 // while jobs run or wait, COMPLETED when every job is over.50 // while jobs run or wait, COMPLETED when every job is over.
51- RunStatus status = 12;51+ CiStatus status = 12;
52 // Conclusion is how this attempt ended, from its jobs' conclusions like52 // Conclusion is how this attempt ended, from its jobs' conclusions like
53 // GitHub: CANCELLED if it was cancelled, else FAILURE if a job failed or53 // GitHub: CANCELLED if it was cancelled, else FAILURE if a job failed or
54 // timed out, else SUCCESS (also when jobs were skipped). Unset until54 // timed out, else SUCCESS (also when jobs were skipped). Unset until
55 // status is COMPLETED.55 // status is COMPLETED.
56- Conclusion conclusion = 13;56+ CiConclusion conclusion = 13;
57 // Error is set when the run failed without running a job because the57 // Error is set when the run failed without running a job because the
58 // workflow could not be used: an invalid workflow file (the run then has58 // workflow could not be used: an invalid workflow file (the run then has
59 // no jobs and conclusion FAILURE), as GitHub's "Invalid workflow file".59 // no jobs and conclusion FAILURE), as GitHub's "Invalid workflow file".
@@ -94,9 +94,9 @@ message RunJob {
94 string name = 6;94 string name = 6;
95 // Status is where the job is. A job waits QUEUED for a runner and for the95 // Status is where the job is. A job waits QUEUED for a runner and for the
96 // jobs it needs.96 // jobs it needs.
97- RunStatus status = 7;97+ CiStatus status = 7;
98 // Conclusion is how the job ended. Unset until status is COMPLETED.98 // Conclusion is how the job ended. Unset until status is COMPLETED.
99- Conclusion conclusion = 8;99+ CiConclusion conclusion = 8;
100 // Error explains a FAILURE, CANCELLED or TIMED_OUT that no step explains, in100 // Error explains a FAILURE, CANCELLED or TIMED_OUT that no step explains, in
101 // GitHub's words where it has them: the runner was lost ("The self-hosted101 // GitHub's words where it has them: the runner was lost ("The self-hosted
102 // runner: <name> lost communication with the server..."), it received a102 // runner: <name> lost communication with the server..."), it received a
@@ -139,7 +139,7 @@ message Step {
139 // State is where the step is.139 // State is where the step is.
140 StepState state = 3;140 StepState state = 3;
141 // Conclusion is how the step ended. Unset until state is COMPLETED.141 // Conclusion is how the step ended. Unset until state is COMPLETED.
142- Conclusion conclusion = 4;142+ CiConclusion conclusion = 4;
143 // StartedAt is when the step started. Unset while PENDING.143 // StartedAt is when the step started. Unset while PENDING.
144 google.protobuf.Timestamp started_at = 5;144 google.protobuf.Timestamp started_at = 5;
145 // CompletedAt is when the step ended. Unset until COMPLETED.145 // CompletedAt is when the step ended. Unset until COMPLETED.
@@ -166,10 +166,10 @@ message Check {
166 // Name is the name of the check: the RunJob.name of the job.166 // Name is the name of the check: the RunJob.name of the job.
167 string name = 4;167 string name = 4;
168 // Status is where the check is.168 // Status is where the check is.
169- RunStatus status = 5;169+ CiStatus status = 5;
170 // Conclusion is how the check ended. Unset until status is COMPLETED. The170 // Conclusion is how the check ended. Unset until status is COMPLETED. The
171 // value "stale" of GitHub is never used.171 // value "stale" of GitHub is never used.
172- Conclusion conclusion = 6;172+ CiConclusion conclusion = 6;
173 // RunId is the run of the job.173 // RunId is the run of the job.
174 int64 run_id = 7;174 int64 run_id = 7;
175 // JobId is the RunJob.id of the job, to open its page and log.175 // JobId is the RunJob.id of the job, to open its page and log.
@@ -319,9 +319,9 @@ message ListRunsRequest {
319 // "ci.runs.filters".319 // "ci.runs.filters".
320 string branch = 5;320 string branch = 5;
321 // Status restricts the result to the runs whose latest attempt has this321 // Status restricts the result to the runs whose latest attempt has this
322- // status. RUN_STATUS_UNSPECIFIED means every status. Ignored by servers322+ // status. CI_STATUS_UNSPECIFIED means every status. Ignored by servers
323 // without "ci.runs.filters".323 // without "ci.runs.filters".
324- RunStatus status = 6;324+ CiStatus status = 6;
325 }325 }
326 326
327 // ListRunsResponse is one page of runs.327 // ListRunsResponse is one page of runs.
M proto/ermite/runner.proto +31 -31
@@ -6,46 +6,46 @@ package ermite;
66
77 import "google/protobuf/timestamp.proto";
88
9-// RunStatus is where a run, a job or a check is in its life. It is the same
9+// CiStatus is where a run, a job or a check is in its life. It is the same
1010 // as GitHub's status, without the rarely used values.
11-enum RunStatus {
11+enum CiStatus {
1212 // Not set. In a filter it means every status. Never returned by the server.
13- RUN_STATUS_UNSPECIFIED = 0;
13+ CI_STATUS_UNSPECIFIED = 0;
1414 // Waiting: for a runner, for the jobs it needs, or for its turn
1515 // (max-parallel).
16- RUN_STATUS_QUEUED = 1;
16+ CI_STATUS_QUEUED = 1;
1717 // At least one job has been given to a runner and has not ended.
18- RUN_STATUS_IN_PROGRESS = 2;
18+ CI_STATUS_IN_PROGRESS = 2;
1919 // Over. The conclusion says how it ended.
20- RUN_STATUS_COMPLETED = 3;
20+ CI_STATUS_COMPLETED = 3;
2121 }
2222
23-// Conclusion is how a run, a job, a step or a check ended, with GitHub's
24-// values and meaning. It is unset (CONCLUSION_UNSPECIFIED) until the status is
23+// CiConclusion is how a run, a job, a step or a check ended, with GitHub's
24+// values and meaning. It is unset (CI_CONCLUSION_UNSPECIFIED) until the status is
2525 // COMPLETED.
26-enum Conclusion {
26+enum CiConclusion {
2727 // Not completed yet. Never returned by the server for a completed item.
28- CONCLUSION_UNSPECIFIED = 0;
28+ CI_CONCLUSION_UNSPECIFIED = 0;
2929 // Everything it ran succeeded.
30- CONCLUSION_SUCCESS = 1;
30+ CI_CONCLUSION_SUCCESS = 1;
3131 // A step failed, or the job failed for another reason described in
3232 // RunJob.error (runner lost, queue timeout, log limit, feature not
3333 // supported yet, invalid workflow file).
34- CONCLUSION_FAILURE = 2;
34+ CI_CONCLUSION_FAILURE = 2;
3535 // Cancelled by the owner, or by fail-fast, or because the runner shut down.
36- CONCLUSION_CANCELLED = 3;
36+ CI_CONCLUSION_CANCELLED = 3;
3737 // Never ran: its "if" was false, or a job it needs did not succeed, or it was
3838 // not selected. Never reported by a runner.
39- CONCLUSION_SKIPPED = 4;
39+ CI_CONCLUSION_SKIPPED = 4;
4040 // Exceeded its timeout.
41- CONCLUSION_TIMED_OUT = 5;
41+ CI_CONCLUSION_TIMED_OUT = 5;
4242 // Neither a success nor a failure. Defined for parity with GitHub; no
4343 // workflow job ends this way yet. For merging it counts as a success.
44- CONCLUSION_NEUTRAL = 6;
44+ CI_CONCLUSION_NEUTRAL = 6;
4545 // Waits for a human action (for example the approval of an environment).
4646 // Defined for parity with GitHub; the server does not produce it before
4747 // environments exist. For merging it counts as a failure.
48- CONCLUSION_ACTION_REQUIRED = 7;
48+ CI_CONCLUSION_ACTION_REQUIRED = 7;
4949 }
5050
5151 // StepState is where a step is in its life.
@@ -57,7 +57,7 @@ enum StepState {
5757 // Running.
5858 STEP_STATE_IN_PROGRESS = 2;
5959 // Over. The conclusion says how it ended. A step that did not run because
60- // of its "if" or an earlier failure is COMPLETED with CONCLUSION_SKIPPED.
60+ // of its "if" or an earlier failure is COMPLETED with CI_CONCLUSION_SKIPPED.
6161 STEP_STATE_COMPLETED = 3;
6262 }
6363
@@ -83,13 +83,13 @@ enum CancelReason {
8383 // no request.
8484 CANCEL_REASON_UNSPECIFIED = 0;
8585 // The owner cancelled the run (RunService.CancelRun, web or CLI). The job
86- // ends CONCLUSION_CANCELLED.
86+ // ends CI_CONCLUSION_CANCELLED.
8787 CANCEL_REASON_USER = 1;
8888 // Another job of the same matrix failed and the strategy has fail-fast. The
89- // job ends CONCLUSION_CANCELLED.
89+ // job ends CI_CONCLUSION_CANCELLED.
9090 CANCEL_REASON_FAIL_FAST = 2;
9191 // The job exceeded its timeout_minutes without the runner ending it. The
92- // job ends CONCLUSION_TIMED_OUT.
92+ // job ends CI_CONCLUSION_TIMED_OUT.
9393 CANCEL_REASON_TIMEOUT = 3;
9494 }
9595
@@ -184,7 +184,7 @@ service RunnerService {
184184 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by
185185 // the server (text, timestamps and separators). The call that would exceed
186186 // it appends nothing; the server adds a last line saying that the limit was
187- // reached, ends the job with CONCLUSION_FAILURE and RunJob.error set, and
187+ // reached, ends the job with CI_CONCLUSION_FAILURE and RunJob.error set, and
188188 // answers resource_exhausted. The runner then stops the job and sends
189189 // nothing more: its calls get unauthenticated.
190190 //
@@ -194,7 +194,7 @@ service RunnerService {
194194 // Heartbeat tells the server that the runner is alive and still working on
195195 // the job. Needs the job token. The runner calls it every 30 seconds for as
196196 // long as the job runs, from assignment to the end. Without a heartbeat for
197- // 2 minutes the server ends the job with CONCLUSION_FAILURE and the message
197+ // 2 minutes the server ends the job with CI_CONCLUSION_FAILURE and the message
198198 // "The self-hosted runner: <name> lost communication with the server...".
199199 // Only Heartbeat counts: other calls do not keep a job alive.
200200 rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse);
@@ -342,15 +342,15 @@ message UpdateJobRequest {
342342 // the whole call is rejected with invalid_argument and the runner reports
343343 // the failure of the job without outputs, with a line in the log.
344344 map<string, string> outputs = 3;
345- // Conclusion ends the job when set. A runner reports CONCLUSION_SUCCESS,
346- // CONCLUSION_FAILURE, CONCLUSION_CANCELLED or CONCLUSION_TIMED_OUT; any
347- // other value is invalid_argument. CONCLUSION_UNSPECIFIED means the job goes
345+ // Conclusion ends the job when set. A runner reports CI_CONCLUSION_SUCCESS,
346+ // CI_CONCLUSION_FAILURE, CI_CONCLUSION_CANCELLED or CI_CONCLUSION_TIMED_OUT; any
347+ // other value is invalid_argument. CI_CONCLUSION_UNSPECIFIED means the job goes
348348 // on. Steps that were not reported COMPLETED when the job ends are
349- // completed by the server as CONCLUSION_CANCELLED (or SKIPPED when they
349+ // completed by the server as CI_CONCLUSION_CANCELLED (or SKIPPED when they
350350 // never started and the job did not fail by cancellation).
351- Conclusion conclusion = 4;
351+ CiConclusion conclusion = 4;
352352 // RunnerShutdown is true when the runner ends the job because it was told to
353- // stop (service stopped, signal). Only allowed with CONCLUSION_CANCELLED.
353+ // stop (service stopped, signal). Only allowed with CI_CONCLUSION_CANCELLED.
354354 // The server then annotates the job with GitHub's message "The runner has
355355 // received a shutdown signal. This can happen when the runner service is
356356 // stopped, or a manually started runner is canceled."
@@ -371,7 +371,7 @@ message StepUpdate {
371371 // Conclusion is how the step ended. Required (not UNSPECIFIED) when state is
372372 // COMPLETED, must be UNSPECIFIED otherwise. Allowed values: success,
373373 // failure, cancelled, skipped.
374- Conclusion conclusion = 4;
374+ CiConclusion conclusion = 4;
375375 // StartedAt is when the step started, by the clock of the runner. Required
376376 // from IN_PROGRESS on.
377377 google.protobuf.Timestamp started_at = 5;
@@ -439,7 +439,7 @@ message WatchJobResponse {
439439 // Reason is why the job must stop. CANCEL_REASON_UNSPECIFIED marks a
440440 // keep-alive: the other fields are empty and the client ignores it. New
441441 // reasons may be added; a runner that does not know one cancels the job and
442- // reports CONCLUSION_CANCELLED.
442+ // reports CI_CONCLUSION_CANCELLED.
443443 CancelReason reason = 1;
444444 // Message is a short human-readable explanation, for the job log, for
445445 // example "Canceled by the owner". At most 1,024 characters.
@@ -6,46 +6,46 @@ package ermite;
6 6
7 import "google/protobuf/timestamp.proto";7 import "google/protobuf/timestamp.proto";
8 8
9-// RunStatus is where a run, a job or a check is in its life. It is the same9+// CiStatus is where a run, a job or a check is in its life. It is the same
10 // as GitHub's status, without the rarely used values.10 // as GitHub's status, without the rarely used values.
11-enum RunStatus {11+enum CiStatus {
12 // Not set. In a filter it means every status. Never returned by the server.12 // Not set. In a filter it means every status. Never returned by the server.
13- RUN_STATUS_UNSPECIFIED = 0;13+ CI_STATUS_UNSPECIFIED = 0;
14 // Waiting: for a runner, for the jobs it needs, or for its turn14 // Waiting: for a runner, for the jobs it needs, or for its turn
15 // (max-parallel).15 // (max-parallel).
16- RUN_STATUS_QUEUED = 1;16+ CI_STATUS_QUEUED = 1;
17 // At least one job has been given to a runner and has not ended.17 // At least one job has been given to a runner and has not ended.
18- RUN_STATUS_IN_PROGRESS = 2;18+ CI_STATUS_IN_PROGRESS = 2;
19 // Over. The conclusion says how it ended.19 // Over. The conclusion says how it ended.
20- RUN_STATUS_COMPLETED = 3;20+ CI_STATUS_COMPLETED = 3;
21 }21 }
22 22
23-// Conclusion is how a run, a job, a step or a check ended, with GitHub's23+// CiConclusion is how a run, a job, a step or a check ended, with GitHub's
24-// values and meaning. It is unset (CONCLUSION_UNSPECIFIED) until the status is24+// values and meaning. It is unset (CI_CONCLUSION_UNSPECIFIED) until the status is
25 // COMPLETED.25 // COMPLETED.
26-enum Conclusion {26+enum CiConclusion {
27 // Not completed yet. Never returned by the server for a completed item.27 // Not completed yet. Never returned by the server for a completed item.
28- CONCLUSION_UNSPECIFIED = 0;28+ CI_CONCLUSION_UNSPECIFIED = 0;
29 // Everything it ran succeeded.29 // Everything it ran succeeded.
30- CONCLUSION_SUCCESS = 1;30+ CI_CONCLUSION_SUCCESS = 1;
31 // A step failed, or the job failed for another reason described in31 // A step failed, or the job failed for another reason described in
32 // RunJob.error (runner lost, queue timeout, log limit, feature not32 // RunJob.error (runner lost, queue timeout, log limit, feature not
33 // supported yet, invalid workflow file).33 // supported yet, invalid workflow file).
34- CONCLUSION_FAILURE = 2;34+ CI_CONCLUSION_FAILURE = 2;
35 // Cancelled by the owner, or by fail-fast, or because the runner shut down.35 // Cancelled by the owner, or by fail-fast, or because the runner shut down.
36- CONCLUSION_CANCELLED = 3;36+ CI_CONCLUSION_CANCELLED = 3;
37 // Never ran: its "if" was false, or a job it needs did not succeed, or it was37 // Never ran: its "if" was false, or a job it needs did not succeed, or it was
38 // not selected. Never reported by a runner.38 // not selected. Never reported by a runner.
39- CONCLUSION_SKIPPED = 4;39+ CI_CONCLUSION_SKIPPED = 4;
40 // Exceeded its timeout.40 // Exceeded its timeout.
41- CONCLUSION_TIMED_OUT = 5;41+ CI_CONCLUSION_TIMED_OUT = 5;
42 // Neither a success nor a failure. Defined for parity with GitHub; no42 // Neither a success nor a failure. Defined for parity with GitHub; no
43 // workflow job ends this way yet. For merging it counts as a success.43 // workflow job ends this way yet. For merging it counts as a success.
44- CONCLUSION_NEUTRAL = 6;44+ CI_CONCLUSION_NEUTRAL = 6;
45 // Waits for a human action (for example the approval of an environment).45 // Waits for a human action (for example the approval of an environment).
46 // Defined for parity with GitHub; the server does not produce it before46 // Defined for parity with GitHub; the server does not produce it before
47 // environments exist. For merging it counts as a failure.47 // environments exist. For merging it counts as a failure.
48- CONCLUSION_ACTION_REQUIRED = 7;48+ CI_CONCLUSION_ACTION_REQUIRED = 7;
49 }49 }
50 50
51 // StepState is where a step is in its life.51 // StepState is where a step is in its life.
@@ -57,7 +57,7 @@ enum StepState {
57 // Running.57 // Running.
58 STEP_STATE_IN_PROGRESS = 2;58 STEP_STATE_IN_PROGRESS = 2;
59 // Over. The conclusion says how it ended. A step that did not run because59 // Over. The conclusion says how it ended. A step that did not run because
60- // of its "if" or an earlier failure is COMPLETED with CONCLUSION_SKIPPED.60+ // of its "if" or an earlier failure is COMPLETED with CI_CONCLUSION_SKIPPED.
61 STEP_STATE_COMPLETED = 3;61 STEP_STATE_COMPLETED = 3;
62 }62 }
63 63
@@ -83,13 +83,13 @@ enum CancelReason {
83 // no request.83 // no request.
84 CANCEL_REASON_UNSPECIFIED = 0;84 CANCEL_REASON_UNSPECIFIED = 0;
85 // The owner cancelled the run (RunService.CancelRun, web or CLI). The job85 // The owner cancelled the run (RunService.CancelRun, web or CLI). The job
86- // ends CONCLUSION_CANCELLED.86+ // ends CI_CONCLUSION_CANCELLED.
87 CANCEL_REASON_USER = 1;87 CANCEL_REASON_USER = 1;
88 // Another job of the same matrix failed and the strategy has fail-fast. The88 // Another job of the same matrix failed and the strategy has fail-fast. The
89- // job ends CONCLUSION_CANCELLED.89+ // job ends CI_CONCLUSION_CANCELLED.
90 CANCEL_REASON_FAIL_FAST = 2;90 CANCEL_REASON_FAIL_FAST = 2;
91 // The job exceeded its timeout_minutes without the runner ending it. The91 // The job exceeded its timeout_minutes without the runner ending it. The
92- // job ends CONCLUSION_TIMED_OUT.92+ // job ends CI_CONCLUSION_TIMED_OUT.
93 CANCEL_REASON_TIMEOUT = 3;93 CANCEL_REASON_TIMEOUT = 3;
94 }94 }
95 95
@@ -184,7 +184,7 @@ service RunnerService {
184 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by184 // The log of a job is limited to 512 MiB (536,870,912 bytes) as stored by
185 // the server (text, timestamps and separators). The call that would exceed185 // the server (text, timestamps and separators). The call that would exceed
186 // it appends nothing; the server adds a last line saying that the limit was186 // it appends nothing; the server adds a last line saying that the limit was
187- // reached, ends the job with CONCLUSION_FAILURE and RunJob.error set, and187+ // reached, ends the job with CI_CONCLUSION_FAILURE and RunJob.error set, and
188 // answers resource_exhausted. The runner then stops the job and sends188 // answers resource_exhausted. The runner then stops the job and sends
189 // nothing more: its calls get unauthenticated.189 // nothing more: its calls get unauthenticated.
190 //190 //
@@ -194,7 +194,7 @@ service RunnerService {
194 // Heartbeat tells the server that the runner is alive and still working on194 // Heartbeat tells the server that the runner is alive and still working on
195 // the job. Needs the job token. The runner calls it every 30 seconds for as195 // the job. Needs the job token. The runner calls it every 30 seconds for as
196 // long as the job runs, from assignment to the end. Without a heartbeat for196 // long as the job runs, from assignment to the end. Without a heartbeat for
197- // 2 minutes the server ends the job with CONCLUSION_FAILURE and the message197+ // 2 minutes the server ends the job with CI_CONCLUSION_FAILURE and the message
198 // "The self-hosted runner: <name> lost communication with the server...".198 // "The self-hosted runner: <name> lost communication with the server...".
199 // Only Heartbeat counts: other calls do not keep a job alive.199 // Only Heartbeat counts: other calls do not keep a job alive.
200 rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse);200 rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse);
@@ -342,15 +342,15 @@ message UpdateJobRequest {
342 // the whole call is rejected with invalid_argument and the runner reports342 // the whole call is rejected with invalid_argument and the runner reports
343 // the failure of the job without outputs, with a line in the log.343 // the failure of the job without outputs, with a line in the log.
344 map<string, string> outputs = 3;344 map<string, string> outputs = 3;
345- // Conclusion ends the job when set. A runner reports CONCLUSION_SUCCESS,345+ // Conclusion ends the job when set. A runner reports CI_CONCLUSION_SUCCESS,
346- // CONCLUSION_FAILURE, CONCLUSION_CANCELLED or CONCLUSION_TIMED_OUT; any346+ // CI_CONCLUSION_FAILURE, CI_CONCLUSION_CANCELLED or CI_CONCLUSION_TIMED_OUT; any
347- // other value is invalid_argument. CONCLUSION_UNSPECIFIED means the job goes347+ // other value is invalid_argument. CI_CONCLUSION_UNSPECIFIED means the job goes
348 // on. Steps that were not reported COMPLETED when the job ends are348 // on. Steps that were not reported COMPLETED when the job ends are
349- // completed by the server as CONCLUSION_CANCELLED (or SKIPPED when they349+ // completed by the server as CI_CONCLUSION_CANCELLED (or SKIPPED when they
350 // never started and the job did not fail by cancellation).350 // never started and the job did not fail by cancellation).
351- Conclusion conclusion = 4;351+ CiConclusion conclusion = 4;
352 // RunnerShutdown is true when the runner ends the job because it was told to352 // RunnerShutdown is true when the runner ends the job because it was told to
353- // stop (service stopped, signal). Only allowed with CONCLUSION_CANCELLED.353+ // stop (service stopped, signal). Only allowed with CI_CONCLUSION_CANCELLED.
354 // The server then annotates the job with GitHub's message "The runner has354 // The server then annotates the job with GitHub's message "The runner has
355 // received a shutdown signal. This can happen when the runner service is355 // received a shutdown signal. This can happen when the runner service is
356 // stopped, or a manually started runner is canceled."356 // stopped, or a manually started runner is canceled."
@@ -371,7 +371,7 @@ message StepUpdate {
371 // Conclusion is how the step ended. Required (not UNSPECIFIED) when state is371 // Conclusion is how the step ended. Required (not UNSPECIFIED) when state is
372 // COMPLETED, must be UNSPECIFIED otherwise. Allowed values: success,372 // COMPLETED, must be UNSPECIFIED otherwise. Allowed values: success,
373 // failure, cancelled, skipped.373 // failure, cancelled, skipped.
374- Conclusion conclusion = 4;374+ CiConclusion conclusion = 4;
375 // StartedAt is when the step started, by the clock of the runner. Required375 // StartedAt is when the step started, by the clock of the runner. Required
376 // from IN_PROGRESS on.376 // from IN_PROGRESS on.
377 google.protobuf.Timestamp started_at = 5;377 google.protobuf.Timestamp started_at = 5;
@@ -439,7 +439,7 @@ message WatchJobResponse {
439 // Reason is why the job must stop. CANCEL_REASON_UNSPECIFIED marks a439 // Reason is why the job must stop. CANCEL_REASON_UNSPECIFIED marks a
440 // keep-alive: the other fields are empty and the client ignores it. New440 // keep-alive: the other fields are empty and the client ignores it. New
441 // reasons may be added; a runner that does not know one cancels the job and441 // reasons may be added; a runner that does not know one cancels the job and
442- // reports CONCLUSION_CANCELLED.442+ // reports CI_CONCLUSION_CANCELLED.
443 CancelReason reason = 1;443 CancelReason reason = 1;
444 // Message is a short human-readable explanation, for the job log, for444 // Message is a short human-readable explanation, for the job log, for
445 // example "Canceled by the owner". At most 1,024 characters.445 // example "Canceled by the owner". At most 1,024 characters.

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