ENGINEERING

GitLab Pipeline Slowdown Bisector & Perf Ticket Opener

Watches finished GitLab CI pipelines on the default branch, compares total duration against a rolling baseline.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerwebhook
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab pipeline finished on default branchGitLabGitLab
  • ActionFetch recent successful pipelines for baselineGitLabGitLab
  • LogicCompare duration to baseline; stop if within threshold
  • ActionPull per-job timings and bisect slowest stageGitLabGitLab
  • OutputOpen Linear perf ticket with stage and deltaLinearLinear

What it does

It catches CI pipelines that have quietly gotten slower. On every default-branch pipeline completion it compares the run's total duration to a rolling median of recent runs. If the new run is materially slower, it walks the per-job timings to find the stage responsible for the largest delta, then opens a Linear issue containing the before/after numbers, the slowest stage, and a link back to the pipeline.

When to use it

Use it when your main-branch pipeline has crept from a few minutes to many and nobody noticed the inflection point. It turns a vague "CI feels slow" complaint into a specific, assignable ticket naming the exact stage that regressed.

How it works

  1. 1A GitLab pipeline webhook fires when a pipeline finishes on the default branch.
  2. 2The flow fetches the last N successful pipelines and computes a baseline median duration.
  3. 3A logic step checks whether the new run exceeds the baseline by the configured percentage; non-regressions stop here.
  4. 4It pulls per-job timings and bisects to the stage with the biggest second-over-second increase.
  5. 5A Linear issue is created with the stage name, delta, and pipeline link, labeled for the platform team.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect LinearIssues, projects, cycles, triage.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.