You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to #603 (merged). #603 went in via admin bypass with **red
CI**, so `main` is currently not green — this PR fixes that and
completes "ensure standalone CI makes it through CI/CD."
## What was still wrong after #603
1. **`startup_failure` persisted** on `CI` / `Governance` / `Secret
Scanner` — even though Governance/Secret-Scanner became trivial
(`checkout` + `run:`). Identical failure across totally different file
content ⇒ not the content. The one structural difference vs the
**passing** simple workflows (`stdlib-naming`, `workflow-linter`,
`scorecard-enforcer`): they pin `actions/checkout@<SHA>`; #603 used
`@v4` **tags**. The repo's "allowed actions" policy appears to **reject
tag refs at run-creation**.
2. **Hypatia check FAILED** — "Private Key" detected in
`tools/ci/secret-scan-standalone.sh`: the scanner's literal PEM markers
tripped the code-scanner against itself.
3. **Hypatia `unpinned_action` findings** (+15) — the `@v4` tags violate
the repo's SHA-pinning policy (`workflow_audit`).
## Fix
- **Re-pin all first-party `actions/*` to SHAs** (revert `@v4` → the
repo's existing SHAs; only the fictional version *comments*
`v6.0.3`/`v7.0.1` were corrected to `v4`). This clears the
`unpinned_action` findings **and** is the fix for the tag-ref
`startup_failure` (SHA-only policy).
- **De-trip the secret scanner**: the PEM marker is now assembled from
fragments, so no full marker literal appears in the file (clears the
failing Hypatia "Private Key" alert).
- **Fix a latent scanner bug**: patterns starting with `-` need `grep
-e`, else grep parsed them as options and silently matched nothing.
Verified: planted PEM **and** AWS keys are now detected; the tree stays
clean.
## Verified locally
```
tools/ci/secret-scan-standalone.sh → PASS (clean tree)
planted -----BEGIN RSA PRIVATE KEY----- file → FAIL (detected) ✅
planted AKIA… file → FAIL (detected) ✅
no literal 'BEGIN' marker remains in the script
all 4 workflows: valid YAML; zero `actions/*@vN` tag pins (all SHA)
```
## Honest caveat
The SHA-only-policy theory is evidence-based but I can't observe
GitHub's run-creation from here. **This PR's own CI run is the test:**
if `CI`/`Governance`/`Secret Scanner` now *start* (and
`build`/`lint`/`test` run), the theory holds. If `startup_failure`
persists despite SHA pins, the remaining cause is an owner-side
**Settings → Actions → Allowed actions** policy I can't change — I'll
report that.
Unchanged from #603 and still intentional: `hypatia-scan` /
`spark-theatre-gate` (estate-proprietary, passing), `mirror`
(cross-forge), `release.yml` (cross-platform macOS matrix needs
`ocaml/setup-ocaml`).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Lz7pRcec2Z3tVtaAhvB3M8
---
_Generated by [Claude
Code](https://claude.ai/code/session_01Lz7pRcec2Z3tVtaAhvB3M8)_
---------
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments