chore: merge train 260821 — land #2294 (release SSH credential boundary) - #2319
Conversation
…ng userinfo Adversarial review (grok-4.6) blocker: the scp-like host class allowed a second "@", so git@SECRET@host:path was accepted and then printed to both log sinks (push target line and failure command echo). Exclude "@" from the host segment. Also reject any ":" in raw ssh:// userinfo before URL parsing, since WHATWG URL collapses an empty password and cannot distinguish git:@host from a credential-free principal. Regression tests added for both shapes.
|
✅ Deterministic PR hygiene checks passed. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughChangesThe release push now accepts only credential-free SSH targets. URL parsing rejects credential-shaped userinfo, invalid characters, queries, hashes, and malformed hosts. Tests model SSH argument handling, preserve deploy-key paths literally, and cover rejected credential cases. Merge-train records document validation and resolution status. SSH release target hardening
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested reviewers: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
Summary
Second leg of the merge train: lands #2294 — fix(release): reject credential-bearing SSH remotes plus an adversarial-review hardening commit.
Review chain:
@(git@SECRET@host:pathaccepted, printed to both log sinks)@, raw ssh:// userinfo with:rejected before URL parse (WHATWG empty-password collapse), regression rows for both shapesAlso includes the already-reviewed #2295 leg context via train history (landed by #2315).
Verification
Checklist
Summary by CodeRabbit
Bug Fixes
Security