Repository navigation
chore: remove the key allowlist entry and update the incident text after the history rewrite (T1-8) - #128
Merged
Conversation
…ter the history rewrite (T1-8) Empty KNOWN_HISTORY, keeping the mechanism. Test it with a made-up entry, pin the shipped list as empty, and check that the history scan command fails on a key-shaped line in a scratch repository. SECURITY.md and RISKS.md R4 now say the rewrite removed the value from the branches and name what it cannot reach. Add a dated CHANGELOG entry and fix the workflow comment. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No open issue was titled "Post-rewrite cleanup" (
gh issue list --state all, 300 issues searched), so this PR has noClosesline.Done from a fresh full clone (
git fetch --prunefirst, not shallow), branch fromorigin/mainat 66694c3.Per file
scripts/scan_secrets.py:KNOWN_HISTORYhad one entry for the removed key. It is now an empty dict.is_knownand the "known and accepted" reporting are kept. The comment says the list is empty on purpose and a test pins it.tests/test_scan_secrets.py: the test that asserted the removed entry is replaced by three tests, none tied to a real incident. (1) With a made-up entry patched in,is_knownaccepts only that commit prefix and rule and rejects another rule and another commit. (2) The shippedKNOWN_HISTORYis empty. (3)scan_secrets.py --history --root <scratch repo>exits non-zero on a key-shaped line (built from pieces), names the rule and does not print the value.SECURITY.md"Known incident": past tense. A provider key was committed in a documentation file, redacted the next day, rotated by the maintainer before the 2026-10-19 rewrite, and the rewrite removed it from the branches. It says what the rewrite cannot reach (hidden pull-request refs and cached views until GitHub Support removes them), that the key must be treated as exposed, and that rotation closed the exposure. No commit ids, no part of the key. The sentence about the scan accepting the incident is gone.RISKS.mdR4: same facts. "History was not rewritten" and "still readable in history" are replaced with the true state. Entry, status and residual kept..github/workflows/security.yml: the comment on the history scan said one finding is known and accepted. It now says none is accepted. Comment only. This file was not in your list; I found it with the grep.CHANGELOG.md: a dated entry under Unreleased, "Security", for the rewrite and the cleanup. Older entries untouched.docs/data/metrics.jsonand the markers inCONSTRAINTS.md,CONTRIBUTING.md,ROADMAP.md) frommetrics.py --write: two tests added.Greps
For "remains in git history", "still readable", "not been rewritten", "history was not rewritten", "KNOWN_HISTORY", "b80db1a" and "8380bde" the remaining hits are the code, its tests and the new text. No old commit id is cited anywhere.
CHANGELOG.mdline 328 (opencode.json, a different key that was never committed) is history and true, so it is unchanged.Scans
No finding and no "known" entry.
Tests first
On main plus the new tests,
test_the_shipped_known_history_is_emptyfailed (the old entry was there). The other two passed on main, as expected: the mechanism and the history command already worked, and they now guard them.Mutation checks (in a scratch clone)
KNOWN_HISTORYentry matching nothing,("0000000", "github-token"):docs/index.md:exit=0.Checks
ruff check,ruff format --check,mypy src,metrics.py --check,check_links.py(93 files, 0 broken) pass.tests/test_scan_secrets.pyandtests/test_framing.py: 24 passed. Full suite:1460 passed, 25 skipped, 2 xfailed in 580.85s. Nothing undersrc/, no ADR and noCLAUDE.mdchanged.Left
docs/adr/0011-ci-and-supply-chain.mdline 54 still says the history finding is "known, rotated and listed with its reason". That is now false. It is an ADR, so I did not edit it. Suggested wording is for the maintainer: say the history scan accepts no findings.🤖 Generated with Claude Code