ENGINEERING

Escalate stale security MRs to PagerDuty on a daily sweep

Each morning this scans open GitLab merge requests that carry a security label and have sat without review past their SLA.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily schedule kicks off the backlog sweep
  • ActionList open security-labeled MRs from GitLabGitLabGitLab
  • LogicFilter to MRs past the review SLA
  • LogicBranch: SLA-breached MRs needing escalation
  • ActionOpen a PagerDuty incident for on-callPagerDutyPagerDuty
  • OutputPost the aging backlog digest to SlackSlack

What it does

Runs a scheduled sweep over all open merge requests bearing a security label and measures how long each has waited without an approving review. MRs past their review SLA get escalated: the oldest or highest-severity ones trigger a PagerDuty incident for the on-call security reviewer, and the full aging backlog is summarized in a Slack digest.

When to use it

Use it when security review has a defined SLA but reviews still age out silently. A daily escalation keeps the backlog visible and forces the worst-aged MRs onto someone's plate instead of letting them rot.

How it works

  1. 1A daily schedule triggers the sweep.
  2. 2The flow lists open security-labeled MRs from GitLab and computes each one's age since opening.
  3. 3A filter keeps only MRs past the review SLA threshold.
  4. 4A branch separates SLA-breached MRs that need a PagerDuty page from the rest.
  5. 5Breached MRs trigger a PagerDuty incident for the on-call reviewer.
  6. 6A Slack digest posts the full aging backlog sorted oldest-first.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect PagerDutyIncidents, on-call, escalations.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    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.