Repository navigation
Let fetch.Resolver take base URLs and ecosystem aliases - #103
Merged
Merged
Conversation
Callers that never register a registry can now point the hard-coded fallback patterns at a mirror with WithBaseURLs. Claude-Session: https://claude.ai/code/session_01NxsA75HBjdWQKcdx7FDTDc
Contributor
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
Names are normalised to PURL types, so rubygems/gem and packagist/composer resolve the same way. Claude-Session: https://claude.ai/code/session_01NxsA75HBjdWQKcdx7FDTDc
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.
Closes #80
Closes #98
NewResolvernow accepts options, andWithBaseURLs(map[string]string)overrides the host used by the hard-coded fallback patterns inresolveWithoutRegistryfor npm, cargo, gem, golang, hex, pub, maven and nuget. Ecosystems left out of the map, or given an empty value, keep the public host. Trailing slashes are trimmed. ExistingNewResolver()calls are unchanged.Base URLs use the same form as the proxy's
upstream.*settings (https://static.crates.io/cratesfor cargo,https://repo1.maven.org/maven2for maven,https://api.nuget.orgfor nuget), so the proxy can pass its config straight through andproxy mirrorstops ignoring configured upstreams.The resolver also normalises ecosystem names to PURL types with
purl.EcosystemToPURLTypeinRegisterRegistry,ResolveWithOptionsandWithBaseURLs, sorubygems/gem,packagist/composerandgo/golangare one ecosystem. That fixes theunsupported ecosystem: rubygemsfailure in git-pkgs/proxy#415.I checked the base URLs against
git-pkgs/proxywith a localreplace: withupstream.npmandupstream.cargo_downloadpointed at a local server,proxy mirror pkg:npm/lodash@4.17.21 pkg:cargo/serde@1.0.193fetched both from that server, andproxy servethen returned them with the upstream stopped.https://claude.ai/code/session_01NxsA75HBjdWQKcdx7FDTDc