SECOPS

Force extra Cloudflare review when a GitLab MR touches edge config

Detects merge requests that modify Cloudflare WAF rules, page rules, or worker routes, auto-labels them for the edge-security pool.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerwebhook
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab MR opened or updatedGitLabGitLab
  • LogicDetect Cloudflare config file changes
  • ActionSnapshot live Cloudflare ruleset baselineCloudflareCloudflare
  • ActionLabel, assign edge pool, attach snapshot noteGitLabGitLab
  • OutputAlert edge-security Slack channelSlack

What it does

Changes to edge configuration (WAF rules, firewall expressions, worker routes) carry outsized blast radius. This workflow spots MRs touching Cloudflare config paths, routes them to the edge-security reviewer pool, and attaches a live config snapshot so reviewers see exactly what is changing.

When to use it

Use it when your infrastructure-as-code repo manages Cloudflare and you want any edge-affecting MR to get specialist eyes plus a before-snapshot, not just a normal review.

How it works

  1. 1A GitLab webhook fires on MR open or update.
  2. 2A logic step inspects the changed file paths for Cloudflare config (WAF, firewall, worker route files).
  3. 3If matched, an action pulls the current live Cloudflare ruleset via the Cloudflare API as a baseline snapshot.
  4. 4An action adds the `security::edge` label, assigns the edge-security pool, and attaches the snapshot as an MR note.
  5. 5A Slack message alerts the edge-security channel with the diff highlights.
  6. 6The MR stays blocked until the pool acknowledges.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  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.