Repository navigation
ci: eliminate, then harden, every secret-bearing job RE001 reports - #974
Conversation
Applies the safety triangle to the nine jobs that RE001 (standards ADR-009) reports on main: first remove a credential, and harden what remains. Eliminate: - security-policy secret-gitleaks: drop GITLEAKS_LICENSE. gitleaks-action needs one only for an organization owner, and logs "[hyperpolymath] is an individual user. No license key is required." The secret was never set (empty in the step env of run 40442141312). - inbox-steward analyze-patterns: the checkout is read-only, so it no longer takes FARM_PAT and persists no credential. - inbox-steward dispatch-to-farm: drop a checkout the job never read. Control: each remaining job installs step-security/harden-runner with egress-policy block and an allow-list of the hosts it talks to: - GitHub and its API for the inbox-steward jobs, both sweeps and roadmap-sync; - plus the artifact service for hypatia-remediation-sweep's upload; - for push-email-notify, the action's release download plus the SMTP host taken from the existing secret, so the host stays masked. actions.lock is regenerated by the tool in a following commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J4QvDfStHgMdZGTeqaBgM1
These are the exact bytes that `gh actions-lock` v0.2.0 and the standards 333b06a repair chain produced in run 40443523409. That run also passed check-lock-sync.sh and the governance gate's check-actions-lock-gate.sh (GATE_RC=0). sha256 74ebf8bebae57cbdf370f7014b1d58bfcafdabe09a4f1147d032434c09dbc995. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J4QvDfStHgMdZGTeqaBgM1
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 14 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The two red checks, Sweep fleet for vulnerable repos (run 40443859596) and Detect + remediate estate CI health (run 40443861997), are the
Generated by Claude Code |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Add Carrot credits or activate Agent usage billing to use Autofix |
Summary
Step 3 of the governance-gate stack, after #966, #967, #968 and #973.
Under RE001 as #964 (standards ADR-009) now ships it, every job that reads a real secret is in scope. On main that is 9
:warnfindings. Once #973 makes hypatia's gate run main's rules, they hold it red at theinfothreshold. This PR clears them by the safety-triangle order: eliminate the credential where we can, then control what remains.security-policy/secret-gitleaksGITLEAKS_LICENSE[hyperpolymath] is an individual user. No license key is required.and shows the secret empty, so it was never set.inbox-steward-intake/analyze-patternsFARM_PATpersist-credentials: false). Thegh apiread still uses the PAT, so the job is hardened with GitHub + API.inbox-steward-intake/dispatch-to-farmFARM_PATinbox-steward-intake/record-report,update-rulesetFARM_PATgh pr create).ci-health-sweep/sweepHYPATIA_DISPATCH_PATscripts/ci-health/*.shisgh.hypatia-remediation-sweep/sweepHYPATIA_DISPATCH_PATroadmap-sync/syncpush-email-notify/notifySMTP_*${{ secrets.SMTP_HOST }}:${{ secrets.SMTP_PORT || '465' }}. The mail host is itself a secret, so it stays masked.All hardening is
step-security/harden-runner@v2.22.2withegress-policy: block, the same pin #968 introduced.actions.lockholds the tool's bytes from run 40443523409 (sha25674ebf8be…,GATE_RC=0); it was not hand-written.How has this been verified?
653d09c) on this tree: 9 → 0. Main's version: 0 → 0.origin/mainand this branch, keeping findings on the six touched workflows:blockallow-list that misses a host breaks its job at run time. These jobs run on schedule, dispatch or push, so PR CI can't exercise them. I worked out each list from the job's code (everygh/git/action call), not by observation. I propose oneworkflow_dispatchper job with its owndry_run, before or just after merge, and reading harden-runner's egress report.Not done here (needs the owner or another repo)
FARM_PATjobs and the twoHYPATIA_DISPATCH_PATsweeps could each move to a GitHub App installation token scoped to the repos they touch, as roadmap-sync already does. That means creating Apps, which this session can't do.hypatia_chora.deedwith(egress …)entries (:enforcement harden-runner-block), once RE001: accept a deed egress declaration; stop counting secrets.GITHUB_TOKEN (standards ADR-009) #964 lands, agreed with the RE001: accept a deed egress declaration; stop counting secrets.GITHUB_TOKEN (standards ADR-009) #964 session.GITLEAKS_LICENSEagain.Generated by Claude Code