fix(release): validate GitHub remote identity - #17
Conversation
|
Hey, @alectimison-maker. I'm sorry it's taken me so long to get to this. Forgive me, it's not really how I work. I just can't let the robots take the PRs over. I have to look the over myself and I was deep into a significant update when this landed. So, yeah, great find. Thank you. The PR was sound in theory/impl: normalize trailing slashes before removing .git, and accept only exact GitHub owner/repository paths. I've made significant improvements (caching, etc) and cleared out some indirection (removing the 'run' workflows) for v0.22. That left this PR unmergable and I didn't expect you to know what I'd done. So, I've implemented a small fix to integrate it. I incorporated your fix into 012e7fd (012e7fd) and extended the same repo identity invariant across the complete release path: • normalize common Git transport forms into one exact identity; Your original change intent is preserved, and you are credited as a co-author on the landed commit. This PR is now superseded by the implementation on main. Thank you for catching this and providing the initial fix & regression coverage. I appreciate it! The v0.22 is running final checks/tests and will be released shortly. Thanks again! |
|
Thanks! |
Summary
.gitsuffix from GitHub remotesWhy
Automatic repository detection feeds changelog links and exact-SHA GitHub release readiness. A remote such as
https://github.com/org/repo.git/was previously parsed as repositoryrepo.git, while a non-repository path such ashttps://github.com/org/repo/issueswas silently accepted asorg/repo.Compatibility
The existing HTTPS, SCP-like SSH, and
ssh://forms remain supported. URLs with extra non-repository path/query/fragment data now fail closed, allowing the existing no-auto-link fallback to apply.Verification
cargo +stable test --ignore-rust-version --lib parse_github_remotecargo +stable fmt --all -- --checkcargo +stable clippy --ignore-rust-version --all-targets --all-features -- -D warningscargo +stable doc --ignore-rust-version --workspace --no-deps --all-features --lockedwithRUSTDOCFLAGS=-D warningscargo +stable deny check allcargo +stable audit --no-fetchcargo +stable nextest run --workspace -P default --all-features --locked --config-file .config/nextest.toml --ignore-rust-versionThe local host has Rust 1.93.1, so the MSRV gate was explicitly bypassed for local code-path testing. The repository's Rust 1.95 compatibility matrix remains authoritative. The Windows nextest run completed the full inventory but reported host/resource-specific failures detailed in the PR check results; the changed parser tests passed.