SECOPS

Nightly git history scan with batched secret rotation

Runs a scheduled deep scan of repository history for committed secrets, rotates each confirmed finding in Cloudflare.

CategorySecOps
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNightly schedule fires
  • ActionRun git-history secret scan via shellShell
  • LogicFilter out allowlisted and already-rotated hits
  • ActionRotate each confirmed secret in CloudflareCloudflareCloudflare
  • ActionOpen consolidated PagerDuty incidentPagerDutyPagerDuty
  • OutputPost nightly summary to SlackSlack

What it does

On a nightly schedule, deep-scans the full commit history of your repositories for secrets that earlier push-time checks missed, rotates every confirmed credential in Cloudflare, and rolls all findings into a single consolidated incident so responders see the whole night's exposure in one place.

When to use it

Use this as a backstop for secrets that predate your scanning, were force-pushed, or hid in old branches. Running it on a schedule catches historical leaks that event triggers never see, and batching avoids alert storms.

How it works

  1. 1A nightly schedule triggers the scan job.
  2. 2A shell step runs a history scanner across all branches and emits a findings list.
  3. 3A filter drops already-rotated and allowlisted findings to leave only live exposures.
  4. 4For each remaining finding, Cloudflare rotates the corresponding secret value.
  5. 5A single PagerDuty incident is created summarizing every rotation with commit references.
  6. 6The same summary is posted to Slack for the security team's morning review.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Connect ShellRun sandboxed commands inside the workspace.
  3. 3
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  4. 4
    Connect PagerDutyIncidents, on-call, escalations.
  5. 5
    Connect SlackChannels, DMs, threads, mentions.
  6. 6
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  7. 7
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  8. 8
    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.