Repository navigation
Add RegistriesClient.GetPackage - #86
Merged
Merged
Conversation
GetPackage looks up one package and returns the registry error, which BulkLookup drops. It fills LatestVersion with the same fallback as BulkLookup, and both build the PackageInfo with one helper.
GetPackage now builds the registry once and selects the latest version from FetchVersions, instead of FetchLatestVersionFromPURL fetching the package a second time. A done context is returned rather than a package without LatestVersion. The doc comment and test cover ErrNotFound for a missing package.
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.
RegistriesClient.BulkLookupdrops registry errors, so a caller that looks up one package can't report why it failed. The proxy needs the error for git-pkgs/proxy#562:/api/packageanswers 502 when the registry can't be queried.GetPackage(ctx, purl)looks up one package and returns the registry's error. A missing package gives an error matchingregistries.ErrNotFound; an unreachable registry gives a different one.LatestVersionfollows the same policy asBulkLookup. When the registry doesn't advertise one,GetPackageselects it fromFetchVersionswithregistries.SelectLatestVersion, using the registry it already built, so the package document is fetched once. If only that lookup fails the package is returned withoutLatestVersion, unless the context is done.GetPackageandBulkLookupbuild thePackageInfowith one helper, so they return the same fields.