SECOPS

Escalate critical-severity GitLab MRs to on-call AppSec

When a merge request gets a critical security label, page the on-call AppSec engineer via PagerDuty and open a high-priority Linear issue so a human responds within minutes.

CategorySecOps
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab MR labeledGitLabGitLab
  • LogicFilter for critical severity only
  • ActionPage on-call AppSec via PagerDutyPagerDutyPagerDuty
  • ActionOpen urgent Linear security-incident issueLinearLinear
  • ActionPost incident links to war-room SlackSlack
  • OutputApply review::blocking label on MRGitLabGitLab

What it does

Detects merge requests tagged with a critical security severity (`security::critical` or `severity::p0`) and treats them as incidents. It pages the on-call AppSec rotation through PagerDuty, opens an urgent Linear issue, and drops a thread in the security war-room channel.

When to use it

Use it for the small set of MRs that touch auth, secrets handling, or payment paths where a slow review is a real risk. Routine security labels should use the standard reviewer-pod routing instead.

How it works

  1. 1A GitLab webhook fires on merge request label changes.
  2. 2A filter keeps only critical-severity security labels and discards the rest.
  3. 3The flow triggers a PagerDuty incident on the AppSec escalation policy with the MR title and author.
  4. 4It opens an urgent Linear issue tagged `security-incident` and links the MR.
  5. 5It posts to the security war-room Slack channel with the PagerDuty incident and Linear links.
  6. 6It labels the MR `review::blocking` in GitLab so it cannot merge until acknowledged.

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 LinearIssues, projects, cycles, triage.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    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.