Skip to content

feat(ci): reusable secret-scan workflow + secret-scanning rule#663

Closed
JacobPEvans-personal wants to merge 1 commit into
mainfrom
feat/secret-scanning-template-and-rule
Closed

feat(ci): reusable secret-scan workflow + secret-scanning rule#663
JacobPEvans-personal wants to merge 1 commit into
mainfrom
feat/secret-scanning-template-and-rule

Conversation

@JacobPEvans-personal
Copy link
Copy Markdown
Member

What

Layers 3 + 0 of the multi-layer system that blocks real homelab values from public repos.

  • .github/workflows/secret-scan.yml — reusable (workflow_call) template other dryvist repos invoke. Two prongs:
    • Structural: gitleaks via the official container (no gitleaks-action org-license needed), driven by the caller's .gitleaks.toml.
    • Literal: greps the private SENSITIVE_DENYLIST GH-secret over the PR's changed files. Fail-closed on missing secret (non-fork), graceful skip on forks, patterns ::add-mask::ed, path-only reporting (never the value).
    • Consumers need zero local script copies — the scan script is sparse-checked-out from this repo.
  • .github/scripts/sensitive-denylist-scan.sh — the literal-scan script.
  • agentsmd/rules/secret-scanning.md — auto-loaded rule documenting the 4 layers + the SENSITIVE_DENYLIST contract.

Verification

  • shellcheck clean; YAML valid; markdownlint + link-check + pre-commit green.
  • All inputs/secrets flow through env:; least-privilege permissions: contents: read.

Sibling PRs (same effort)

  • dryvist/terraform-proxmox#339 — pre-commit hooks + CI (self-contained; migrates to this template later)
  • dryvist/claude-code-plugins#338 — Layer 1 secret-guard PreToolUse hook

🤖 Generated with Claude Code

Layer 3 + Layer 0 of the multi-layer sensitive-value prevention system.

- .github/workflows/secret-scan.yml: reusable (workflow_call) template other
  dryvist repos invoke. Two prongs — structural gitleaks (official container, no
  org-license needed) driven by the caller's .gitleaks.toml, and a literal
  SENSITIVE_DENYLIST scan over the PR's changed files. Fail-closed on missing
  secret (non-fork), graceful skip on forks; patterns masked; path-only reporting.
- .github/scripts/sensitive-denylist-scan.sh: the literal-scan script, sparse
  checked-out by consumers so they need zero local copies.
- agentsmd/rules/secret-scanning.md: auto-loaded rule documenting the 4 layers
  and the SENSITIVE_DENYLIST contract.

Sibling PRs: terraform-proxmox#339 (pre-commit + CI), claude-code-plugins#338
(secret-guard PreToolUse hook).

Assisted-by: Claude:claude-opus-4-8
@JacobPEvans-personal
Copy link
Copy Markdown
Member Author

Closing per maintainer: NO custom scripts. The reusable workflow relied on a bespoke denylist scan script — rejected. gitleaks-only approach instead.

@JacobPEvans-personal JacobPEvans-personal deleted the feat/secret-scanning-template-and-rule branch May 31, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant