Skip to main content

Scan SaaS sources for leaked secrets. Backend-agnostic (trufflehog, gitleaks, native regex). API-driven content collection via saas-retriever (org-wide GitHub: code + issues + PRs).

Project description

pleno-secret-scanner (Python)

Python CLI that scans SaaS content for leaked secrets, backed by saas-retriever for source collection (API-only — no scraping) and a pluggable detection backend (trufflehog, gitleaks, or a tiny built-in regex set).

The Go binary in this repo (cmd/pleno-secret-scanner) remains for filesystem-only scans; the Python package is the path forward for SaaS.

Install

uv tool install pleno-secret-scanner
# or
pipx install pleno-secret-scanner

Usage

# Scan an entire GitHub org (code + issues + PRs across every repo)
GITHUB_TOKEN=ghp_... pleno-secret-scanner scan github --owner plenoai

# Scan a single repo, only code, with trufflehog verification
pleno-secret-scanner scan github --owner plenoai --repo saas-retriever \
    --resource code --backend trufflehog

# Issue + PR conversations only (skip code)
pleno-secret-scanner scan github --owner plenoai \
    --resource issues --resource prs

# SARIF output for GitHub code-scanning ingestion
pleno-secret-scanner scan github --owner plenoai \
    --format sarif > findings.sarif

Auth resolution: --tokenGITHUB_TOKEN env var → gh auth token. Anonymous works for public content but is rate-limited to 60 req/h.

Backends

Backend Verifies System dep
trufflehog yes (per-detector) trufflehog CLI on PATH
gitleaks no gitleaks CLI on PATH
native no none — bundled regex set (AWS, GitHub PAT, Slack bot, OpenAI, Anthropic)

Connectors

Anything saas-retriever provides. v0.1.x ships github with org-wide enumeration + per-repo code / issues / PRs (with comments and unified diffs). Slack / Jira / Confluence / Notion / GitLab / Bitbucket return as standalone API connectors in subsequent saas-retriever releases.

Release

Tag py-vX.Y.Z triggers PyPI trusted publishing via GitHub Actions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pleno_secret_scanner-0.4.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pleno_secret_scanner-0.4.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file pleno_secret_scanner-0.4.0.tar.gz.

File metadata

  • Download URL: pleno_secret_scanner-0.4.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pleno_secret_scanner-0.4.0.tar.gz
Algorithm Hash digest
SHA256 bfa65ef30258d6470dded3c6373a4008908ab46622c544accd9c2eff3992f8e8
MD5 a340fa5ac83b5feec33d349294089953
BLAKE2b-256 055b84749b7c87870aa24bcb80cfbccc0853a89e3c72c809e5efc623882d7145

See more details on using hashes here.

Provenance

The following attestation bundles were made for pleno_secret_scanner-0.4.0.tar.gz:

Publisher: release-py.yml on plenoai/pleno-secret-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pleno_secret_scanner-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pleno_secret_scanner-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f395466d834a4b4df824ac10101a63a9e72b7106f605219e34f3a4a2929322d
MD5 c298e72ccd14501966c81e462c5905b7
BLAKE2b-256 81272635c670bc8d3b6bc754b84da082ac16b50e52a3a83dc5053ee803b0fd30

See more details on using hashes here.

Provenance

The following attestation bundles were made for pleno_secret_scanner-0.4.0-py3-none-any.whl:

Publisher: release-py.yml on plenoai/pleno-secret-scanner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page