improve nuget v2 handling for non- nuget.org sources #9172
Merged
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.
Testing against NuGet v2 APIs revealed that some sources return results in a slightly different shape and follow different mechanisms for providing the
.nupkg
download URL.This PR does primarily 2 things:
FindPackagesById()
, don't rely on the<Id>
element under<properties>
; it's not always there. Instead rely on the<title>
element directly on the<entry>
. All tested v2 APIs provided the same value (NuGet. MyGet, Artifactory)..nupkg
download URL because different sources build it differently. Instead query thePackages(Id=...,Version=...)
endpoint and check its<content>
element. All tested v2 APIs provided the same value (NuGet, MyGet, Artifactory). The only difference between them was that NuGet and Artifactory had atype
attribute ofapplication/zip
and MyGet hadbinary/octet-stream
, but the end result was the same.Fixes #9160.