GreenLane · Lane board

GreenLane is an AI release lane for GitLab: it runs only the CI jobs a change needs, repairs a failed pipeline on its own, deploys without a stored key, and tells you what every run cost. This board is that record, one row per merge request, built from the project's public pipelines.

−44 %CO2e against running everything, on the 9 runs where the change let the lane leave jobs out
982 sof runner time never spent
5.242 gCO2e for all 18 measured runs together (a plain pipeline: 5.963 g)
Last deploy to Cloud Run: success · c49f8f86 · 2026-10-18 20:58 UTC, no stored key
Monitor (every two hours): success · pipeline 2960977561 · 2026-10-18 22:26 UTC

1 open merge request is waiting for a reviewer

Weekly trend

W41 (from 5 Oct): 592 s avoided592W41W42 (from 12 Oct): 390 s avoided390W42

Runner-seconds avoided per ISO week (the week a merge request was opened, measured runs): 982 s in all, most in W41 (592 s).

9 of 9 GitLab DevSecOps stages with evidence on a merge request

plan!15 · 18 Octcreate!20 · 18 Octverify!20 · 18 Octpackage!19 · 18 Octsecure!20 · 18 Octrelease!19 · 18 Octconfigure!19 · 18 Octmonitor!19 · 18 Octgovern!20 · 18 Oct

Each stage shows its newest evidence and links to it. lit: evidence for the merge request, click it ran and failed no evidence

!20 README: link the v13 demo filmmerged · 1 pipeline · 2026-10-18 23:15 UTC · details

latest child pipeline 2961046646 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

3 of 12jobs run
38 sinstead of about 201 s
−67 %CO2e: 0.095 g against 0.288 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!19 Lane board: lead with the runs where the lane could leave jobs outmerged · 1 pipeline · 2026-10-18 20:45 UTC · details

latest child pipeline 2960842228 · success · 8 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

13 of 13jobs run
271 sinstead of about 271 s
+11 %CO2e: 0.43 g against 0.389 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!18 Docs: the first issue taken all the way, and the first drift the Lane Watch caughtmerged · 2 pipelines · 2026-10-18 20:35 UTC · details

latest child pipeline 2960832243 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

3 of 12jobs run
45 sinstead of about 208 s
−64 %CO2e: 0.106 g against 0.298 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!17 SCI page: state what the design gainsmerged · 1 pipeline · 2026-10-18 19:22 UTC · details

latest child pipeline 2960741478 · success · 8 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

13 of 13jobs run
398 sinstead of about 398 s
+7 %CO2e: 0.611 g against 0.571 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!16 Lane board: the nine stages, with evidence per merge requestmerged · 3 pipelines · 2026-10-18 19:02 UTC · details

latest child pipeline 2960828143 · success · 8 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

13 of 13jobs run
257 sinstead of about 257 s
+11 %CO2e: 0.41 g against 0.369 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!15 Offer UK units: the imperial pint and the imperial gallonmerged · 2 pipelines · 2026-10-18 18:20 UTC · details

latest child pipeline 2960665233 · success · 9 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

9 of 13jobs run
177 sinstead of about 241 s
−14 %CO2e: 0.296 g against 0.346 g for everything

Merge requestPipelineMechanic's fix

Lane Mechanic

60 sfrom the failure to its fix commit, nobody asked

repaired sast: 56027b69 api: listen on 127.0.0.1 unless HOST says otherwise (bandit B104)

Lane Steward

checks the plan against the real diff: its note on the merge request

!14 Carbon: full SCI with embodied emissions and the agents' sharemerged · 3 pipelines · 2026-10-18 18:03 UTC · details

latest child pipeline 2960711323 · success · 8 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

13 of 13jobs run
260 sinstead of about 260 s
+10 %CO2e: 0.412 g against 0.373 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!13 Two more agents: Lane Herald reports what shipped, Lane Watch turns a real monitor failure into an issuemerged · 4 pipelines · 2026-10-18 17:33 UTC · details

latest child pipeline 2960640487 · success · 6 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

13 of 13jobs run
342 sinstead of about 342 s
+9 %CO2e: 0.533 g against 0.491 g for everything

Merge requestPipeline

Lane Mechanic

1 failed run, left for a reviewer

Lane Steward

checks the plan against the real diff: its note on the merge request

!12 Staging per merge request; Cloud Run config as codemerged · 2 pipelines · 2026-10-18 17:25 UTC · details

latest child pipeline 2960602399 · success · 7 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

12 of 12jobs run
236 sinstead of about 236 s
+12 %CO2e: 0.378 g against 0.338 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!11 Govern: the agents audited by policy; GitLab SAST reportmerged · 5 pipelines · 2026-10-18 17:24 UTC · details

latest child pipeline 2960640208 · success · 8 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

13 of 13jobs run
255 sinstead of about 255 s
+11 %CO2e: 0.406 g against 0.365 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!10 Plan: Lane Scout meets a new issue with a forecast and a carbon budgetmerged · 4 pipelines · 2026-10-18 17:23 UTC · details

latest child pipeline 2960641680 · success · 7 of 9 stages with evidence

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

12 of 12jobs run
241 sinstead of about 241 s
+12 %CO2e: 0.386 g against 0.346 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!9 Offer the gallon on the pageopened · 1 pipeline · 2026-10-09 20:32 UTC · details

latest child pipeline 2932061890 · success · 3 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

2 of 11jobs run
18 sinstead of about 183 s
−75 %CO2e: 0.066 g against 0.262 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!8 Add the stone to the weight unitsopened · 3 pipelines · 2026-10-09 14:22 UTC · details

latest child pipeline 2930999616 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

7 of 11jobs run
143 sinstead of about 207 s
−19 %CO2e: 0.241 g against 0.297 g for everything

Merge requestPipelineMechanic's fix

Lane Mechanic

111 sfrom the failure to its fix commit, nobody asked

repaired test-api, lint-api: d9111fa0 Define the stone's weight in the table: STONE was never defined

Lane Steward

checks the plan against the real diff: its note on the merge request

!7 Round converted amounts to two decimalsopened · 1 pipeline · 2026-10-09 13:28 UTC · details

latest child pipeline 2930694743 · failed · 2 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

2 of 11jobs run
27 sinstead of about 190 s
−48 %CO2e: 0.073 g against 0.142 g for everything

Merge requestPipeline

Lane Mechanic

1 failed run, left for a reviewer

Lane Steward

checks the plan against the real diff: its note on the merge request

!6 Docs: the release stage is live, say what it doesopened · 1 pipeline · 2026-10-08 14:24 UTC · details

latest child pipeline 2926946222 · success · 3 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

2 of 11jobs run
24 sinstead of about 187 s
−75 %CO2e: 0.068 g against 0.268 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!5 Add the US gallon to the converteropened · 2 pipelines · 2026-10-08 13:40 UTC · details

latest child pipeline 2926760513 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

7 of 11jobs run
149 sinstead of about 213 s
−19 %CO2e: 0.247 g against 0.305 g for everything

Merge requestPipelineMechanic's fix

Lane Mechanic

66 sfrom the failure to its fix commit, nobody asked

repaired test-api: 4cf499af Fix US gallon volume: 3785.41 ml, not 3875.41

Lane Steward

checks the plan against the real diff: its note on the merge request

!4 Convert US pints and quartsmerged · 1 pipeline · 2026-10-08 11:31 UTC · details

latest child pipeline 2926253260 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

7 of 11jobs run
120 sinstead of about 184 s
−23 %CO2e: 0.202 g against 0.264 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!3 Use measured job durations for the baselinemerged · 1 pipeline · 2026-10-08 10:15 UTC · details

latest child pipeline 2925992880 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

10 of 10jobs run
175 sinstead of about 175 s
+12 %CO2e: 0.282 g against 0.251 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!2 Docs: what the first pipelines didmerged · 1 pipeline · 2026-10-08 10:12 UTC · details

latest child pipeline 2925983119 · success · 3 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

2 of 10jobs run
20 sinstead of about 810 s
−93 %CO2e: 0.076 g against 1.161 g for everything

Merge requestPipeline

Lane Steward

checks the plan against the real diff: its note on the merge request

!1 Fix the two SAST findings from the first pipelinemerged · 3 pipelines · 2026-10-08 10:06 UTC · details

latest child pipeline 2925967012 · success · 4 of 9 stages with evidence

plancreateverifypackagesecurereleaseconfiguremonitorgovern

one pane per job, width by its seconds, tap one for its name: ran skipped failed fixed by the Lane Mechanic

10 of 10jobs run
172 sinstead of about 172 s
+19 %CO2e: 0.294 g against 0.247 g for everything

Merge requestPipeline

Lane Mechanic

2 failed runs, left for a reviewer

Lane Steward

checks the plan against the real diff: its note on the merge request

Use it on your project

  1. Copy the lane into your repository: lane/ (Python standard library only), lane.json, ci/catalog.yml and .gitlab-ci.yml (or only its plan and lane jobs, if you already have a pipeline file).
  2. Describe your project in lane.json: the components and the paths each owns, the jobs each needs, and the job catalogue with typical seconds. Put the job bodies in ci/catalog.yml; a job that calls a script in ci/ needs that script too.
  3. Open a merge request. plan reads the diff, lane runs only the jobs it names, and the last job writes the carbon note this board reads.
git clone https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/43061395/showcase.git greenlane-src
# from the root of your project:
cp -r greenlane-src/lane greenlane-src/lane.json .
mkdir -p ci && cp greenlane-src/ci/catalog.yml ci/
cp greenlane-src/.gitlab-ci.yml .      # or merge its plan and lane jobs into yours
# describe your components and jobs in lane.json, then try a plan:
python3 -m lane plan --files path/you/changed   # writes child-pipeline.yml and plan.json