SECOPS

Sweep stalled security MR reviews and escalate SLA breaches

Runs on a schedule to find open security-labeled merge requests that have waited past their review SLA, nudges the assigned reviewer pool.

CategorySecOps
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerScheduled SLA sweep
  • ActionList open security-labeled MRs and agesGitLabGitLab
  • LogicBucket MRs by SLA tier
  • ActionNudge reviewers on soft breachesSlack
  • ActionLabel hard-breach MRs in GitLabGitLabGitLab
  • OutputPage security lead on hard breachesPagerDutyPagerDuty

What it does

Scans all open security-labeled merge requests on a timer and grades each against a tiered SLA: a soft nudge after the first window and a hard escalation past the deadline. Reviewers get reminded in Slack; true breaches page the security lead via PagerDuty so nothing sensitive sits unreviewed for days.

When to use it

Use it when security MRs reliably get opened and labeled but then stall waiting on busy specialists. It replaces manual queue-watching with an automatic SLA enforcer that distinguishes a gentle reminder from a real breach.

How it works

  1. 1A schedule triggers the sweep every few hours.
  2. 2The flow lists open MRs carrying a security label and computes how long each has waited since assignment.
  3. 3A branch buckets each MR into within-SLA, soft-breach, or hard-breach.
  4. 4Soft-breach MRs get a threaded Slack reminder tagging the assigned reviewer pool.
  5. 5Hard-breach MRs open a PagerDuty incident for the security lead and get a `sla-breach` label applied in GitLab for reporting.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect SlackChannels, DMs, threads, mentions.
  3. 3
    Connect PagerDutyIncidents, on-call, escalations.
  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.