SECOPS

Nightly Repo Secret Sweep with Severity Triage to PagerDuty

Runs a scheduled deep secret scan across your GitHub org each night, classifies findings by how dangerous the credential is, and pages on-call via PagerDuty only for live.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerschedule
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerNightly cron schedule fires
  • ActionClone org repos and run secret scannerShell
  • LogicTriage findings by severity and liveness
  • ActionOpen PagerDuty incident for high-severity live secretsPagerDutyPagerDuty
  • OutputAppend all findings to Postgres audit tablePostgreSQLPostgres

What it does

Proactively hunts for committed secrets instead of waiting for a provider alert. A nightly scan walks the org's repos, and every finding is triaged by severity: a live production database URL pages on-call immediately, while a low-risk or already-revoked match is filed for review. This keeps the signal-to-noise ratio sane so PagerDuty stays trustworthy.

When to use it

Use it when you have many repos and want a daily safety net beyond GitHub's native scanning, with strict control over what actually wakes someone up at 3am.

How it works

  1. 1A nightly cron schedule starts the sweep.
  2. 2A shell step runs the secret scanner against the org's checked-out repos and emits findings as JSON.
  3. 3A logic step scores each finding by credential type and whether it validates as live.
  4. 4High-severity live secrets trigger a PagerDuty incident with the repo, file, and line.
  5. 5All findings, regardless of severity, are appended to a Postgres audit table for the morning review queue.

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 PagerDutyIncidents, on-call, escalations.
  4. 4
    Connect PostgresAny Postgres URL — query, write, migrate.
  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.