mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-14 09:42:37 -04:00
The git-resolver unit tests hit live github.com by default: the mocks for fetchWithDispatcher and graceful-git existed, but beforeEach restored the real implementations. When GitHub throttles the shared CI runner IPs, the HEAD probe in isRepoPublic() fails (it has zero retries and treats any error as "private"), and resolution silently degrades from the hosted tarball to a git clone, changing the resolved id and failing the assertions. This broke the main branch build at https://github.com/pnpm/pnpm/actions/runs/29026897310/job/86153736091 The mocks are now the default: fetch reports every repository as public and graceful-git serves ls-remote output from a fixture table captured from the real repositories, with the same commit hashes the assertions already expected. The private-repo-over-HTTPS test now calls mockFetchAsPrivate() explicitly instead of relying on a real 404 for the nonexistent github.com/foo/bar. The one live-network case in parsePref.test.ts got the same treatment. The suite drops from ~40s to under half a second and runs offline. The dlx e2e test stays a genuine end-to-end test against GitHub, but its allowBuild list now approves both resolution shapes of the same commit (codeload tarball and git+https clone), so the resolver's rate-limit-induced fallback no longer trips the GIT_DEP_PREPARE_NOT_ALLOWED gate, as seen in https://github.com/pnpm/pnpm/actions/runs/29029971938/job/86170695840 Co-authored-by: Claude Fable 5 <noreply@anthropic.com>