SECOPS

Auto-revoke GitLab tokens authenticating from active Cloudflare bot IPs

On a confirmed Cloudflare bot attack, this finds GitLab tokens that just authenticated from the attacking IPs and revokes them automatically.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerwebhook
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerCloudflare confirmed-attack webhookCloudflareCloudflare
  • ActionFind GitLab tokens authenticated from attack IPsGitLabGitLab
  • LogicGate: skip protected/service-account tokens
  • ActionRevoke matching GitLab tokensGitLabGitLab
  • OutputPost containment summary to SlackSlack

What it does

This is a containment automation. When Cloudflare confirms an active bot attack against your origins, it identifies any GitLab personal-access or project-access token that authenticated from the attack IPs and revokes those tokens immediately to cut the attacker off mid-incident. It then posts exactly what it killed to Slack so a human can verify and follow up.

When to use it

Reach for this when minutes matter and you have authorized automated revocation in your incident runbook. It is the right tool once you trust the correlation logic enough to let it act — for example during a confirmed, high-confidence attack — rather than just alerting and waiting for a responder.

How it works

  1. 1Cloudflare fires a confirmed-attack webhook with the attacking IP set.
  2. 2The flow queries GitLab for tokens that authenticated from those IPs in the attack window.
  3. 3A logic gate checks each token against a protected-token allowlist to avoid revoking critical service accounts.
  4. 4Non-allowlisted matching tokens are revoked via the GitLab API.
  5. 5A Slack message reports every token revoked, its owner, and the triggering evidence.

Set it up

What you configure once, before turning it on.

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