fix(sandbox): replay redaction without secret-shaped history - #888
fix(sandbox): replay redaction without secret-shaped history#888seonghobae wants to merge 4 commits into
Conversation
|
Warning Review limit reached
Next review available in: 45 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
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 |
|
@coderabbitai review @cwl-noema-review @opencode-agent Review only exact clean-history head |
|
|
Blocking exact-head revalidationDo not merge current head Read-only comparison shows that A concrete gap remains in the committed source: The newer candidate had also addressed nested Current governance remains blocked independently: zero formal approvals are recorded. |
| program: str, | ||
| ) -> None: | ||
| """Container login passwords are hidden without masking publish ports.""" | ||
| credential = "-".join(("quartz", "capybara", "731", "opaque")) |
|
Closing without merge because the branch's reachable history no longer satisfies its clean-history acceptance contract. Exact-head Secret Scan run 31319880976 correctly re-detected the credential-shaped fixture introduced by predecessor commit Draft successor #906 starts from exact protected #906 is deliberately Draft: the direct Docker/Podman login leak repair is present, while bounded wrapper recursion and atomic multiline/duplicate-key JSON redaction remain explicit source-review blockers. |
Replacement purpose
Replace #842 with a clean-history branch from exact protected
main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dbawhile preserving #842 and #841 as historical evidence.RCA
Symptom
#842 exact head
c05d52742a1f2c1d28f7e5f80ff6358d70518c43still failed Secret Scan run31308773307and GitHub Advanced Security recreated four unresolved gitleaks threads.Immediate cause
The findings explicitly bind old commit
9d24ea60ac9a281b7ac9d855ad4c86e3b68db182, where test fixtures contained complete private-key markers and generic API-key-shaped literals.Root cause and owner
Secret scanning evaluates reachable pull-request history, not only the corrected final blobs. #842 fixed the current source by synthesizing credential-shaped values at runtime, but the old fixture-bearing commits remained reachable. This is branch-history evidence owned by the repository, not a real credential or a current-source redaction defect.
Remedy selection
Rejected:
Implemented:
Exact identity
6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba;6c1a6369fd62a52c61d023a0d7011bb3b63168b3;Acceptance
Merge only after the exact clean head passes Sandbox Log Redaction Quality CI, Secret Scan, all required security/dependency checks, current automated review, a qualifying independent non-author formal approval, and repository protection. After protected integration, run synthetic credential-shaped protected-main acceptance for completed stdout/stderr, timeout bytes, and service tails before closing the incident.