Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NuGet v3 populate dependencies #1778

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

o-l-a-v
Copy link
Contributor

@o-l-a-v o-l-a-v commented Jan 23, 2025

PR Summary

What

Populate dependencies on NuGet v3 search.

  • Seems to solve both populating dependencies and -IncludeDependencies for NuGet v3 repositories.
  • To my knowledge this works for PowerShell resources as they just have one dependencyGroup (?), but maybe not for NuGet packages, as they can have multiple due to targetting multiple/different dotnet frameworks.

Todo / not working: General NuGet packages support

NuGet Gallery packages can have multiple dependencyGroups where they are targeted to dotnet version. Example azure.core:

This PR makes PSResourceGet just spit out all dependencies in all dependency groups. For azure.core this results in:

Find-PSResource
PS > (Find-PSResource -Repository 'NuGetv3' -Name 'azure.core' -Debug).Dependencies
DEBUG: In FindPSResource::ProcessResourceNameParameterSet()
DEBUG: Filtering package name(s) on wildcards
DEBUG: In FindHelper::FindByResourceName()
DEBUG: Parameters passed in >>> Name: 'azure.core'; ResourceType: 'None'; VersionRange: ''; NuGetVersion: ''; VersionType: 'NoVersion'; Version: ''; Prerelease: 'False'; Tag: ''; Repository: 'NuGetv3'; IncludeDependencies 'False'
DEBUG: Searching through repository 'NuGetv3'
DEBUG: In FindHelper::SearchByNames()
DEBUG: No version specified, package name is specified
DEBUG: In V3ServerAPICalls::FindName()
DEBUG: In V3ServerAPICalls::FindNameHelper()
DEBUG: In V3ServerAPICalls::GetVersionedPackageEntriesFromRegistrationsResource()
DEBUG: In V3ServerAPICalls::GetResourcesFromServiceIndex()
DEBUG: In V3ServerAPICalls::HttpRequestCall()
DEBUG: Request url is 'https://api.nuget.org/v3/index.json'
DEBUG: In V3ServerAPICalls::FindRegistrationsBaseUrl()
DEBUG: In V3ServerAPICalls::GetVersionedResponsesFromRegistrationsResource()
DEBUG: In V3ServerAPICalls::HttpRequestCall()
DEBUG: Request url is 'https://api.nuget.org/v3/registration5-gz-semver2/azure.core/index.json'
DEBUG: In V3ServerAPICalls::GetMetadataElementsFromResponse()
DEBUG: In V3ServerAPICalls::GetMetadataElementFromItemsElement()
DEBUG: In V3ServerAPICalls::IsLatestVersionFirstForSearch()
DEBUG: 'azure.core' version parsed as '1.44.1'
DEBUG: Found package 'Azure.Core' version '1.44.1'
DEBUG: Package 'Azure.Core' returned from server
DEBUG: Package 'Azure.Core' was previously discovered and returned

Name                                              VersionRange
----                                              ------------
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Net.Http                                   [4.3.4, )
System.Numerics.Vectors                           [4.5.0, )
System.Runtime.InteropServices.RuntimeInformation [4.3.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Numerics.Vectors                           [4.5.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Numerics.Vectors                           [4.5.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Numerics.Vectors                           [4.5.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )

PS >
Save-PSResource
PS > > Save-PSResource -Repository 'NuGetv3' -TrustRepository -Name 'azure.core' -WhatIf
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Azure.Core', version: '1.44.1'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.NETCore.Platforms', version: '1.1.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.NETCore.Targets', version: '1.1.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.CompilerServices.Unsafe', version: '4.5.3'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Collections', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading.Tasks', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading.Tasks.Extensions', version: '4.5.4'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.Bcl.AsyncInterfaces', version: '6.0.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Debug', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Tracing', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Globalization', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Encoding', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Resources.ResourceManager', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Buffers', version: '4.5.1'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Tools', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Linq', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Emit.ILGeneration', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Emit.Lightweight', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Contracts', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.TypeExtensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.ObjectModel', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Emit', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Linq.Expressions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.Handles', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Net.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Encoding.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.RegularExpressions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.FileSystem.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.FileSystem', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.InteropServices', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Xml.ReaderWriter', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Xml.XDocument', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Collections.Concurrent', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.IO.Compression', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.Compression', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.DiagnosticSource', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Encoding', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.Security.Cryptography.Apple', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.Numerics', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Algorithms', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Globalization.Calendars', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Cng', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.Net.Http', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Csp', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.X509Certificates', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.WindowsRuntime', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.Win32.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Globalization.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Net.Http', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.InteropServices.RuntimeInformation', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading.Timer', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.AppContext', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Console', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.Compression.ZipFile', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Net.Sockets', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'NETStandard.Library', version: '1.6.1'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Numerics.Vectors', version: '4.5.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Memory', version: '4.5.4'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Encodings.Web', version: '4.7.2'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.ValueTuple', version: '4.5.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Json', version: '4.6.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Memory.Data', version: '1.0.2'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.ClientModel', version: '1.1.0'".

PS >

Motivation

Better support for NuGet v3 repositories. My specific reasons:

  • Resilience: pwsh.gallery by Justin Grote is a great NuGet v3 mirror of PowerShell Gallery, very useful when PowerShell Gallery goes down.

Tested how

Tested with pwsh.gallery:

# Register pwsh.gallery if not already present
if ((Get-PSResourceRepository).Where{$_.'Name' -eq 'pwsh.gallery'}.'Count' -le 0) {
    Register-PSResourceRepository -Name 'pwsh.gallery' `
        -Uri 'https://pwsh.gallery/index.json' -ApiVersion 'v3' -Priority 60
}

# Find a package we know will have dependencies
(Find-PSResource -Repository 'pwsh.gallery' -Name 'Az').'Dependencies'

# Check what Save-PSResource would do
Save-PSResource -Repository 'pwsh.gallery' -TrustRepository -Name 'Az' -WhatIf
Example NuGet v3 data for Az v13.1.0 from pwsh.gallery

https://pwsh.gallery/registration/az/index.json

{
  "@id": "https://pwsh.gallery/registration/az/13.1.0.json",
  "@type": "Package",
  "catalogEntry": {
    "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json",
    "@type": [
      "PackageDetails",
      "catalog:Permalink"
    ],
    "authors": "Microsoft Corporation",
    "dependencyGroups": [
      {
        "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any",
        "@type": "PackageDependencyGroup",
        "dependencies": [
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.accounts",
            "@type": "PackageDependency",
            "id": "Az.Accounts",
            "range": "[4.0.1, )"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.advisor",
            "@type": "PackageDependency",
            "id": "Az.Advisor",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.aks",
            "@type": "PackageDependency",
            "id": "Az.Aks",
            "range": "[6.1.0, 6.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.analysisservices",
            "@type": "PackageDependency",
            "id": "Az.AnalysisServices",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.apimanagement",
            "@type": "PackageDependency",
            "id": "Az.ApiManagement",
            "range": "[4.1.0, 4.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.app",
            "@type": "PackageDependency",
            "id": "Az.App",
            "range": "[2.0.1, 2.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.appconfiguration",
            "@type": "PackageDependency",
            "id": "Az.AppConfiguration",
            "range": "[1.4.0, 1.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.applicationinsights",
            "@type": "PackageDependency",
            "id": "Az.ApplicationInsights",
            "range": "[2.3.0, 2.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.arcresourcebridge",
            "@type": "PackageDependency",
            "id": "Az.ArcResourceBridge",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.attestation",
            "@type": "PackageDependency",
            "id": "Az.Attestation",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.automanage",
            "@type": "PackageDependency",
            "id": "Az.Automanage",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.automation",
            "@type": "PackageDependency",
            "id": "Az.Automation",
            "range": "[1.11.0, 1.11.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.batch",
            "@type": "PackageDependency",
            "id": "Az.Batch",
            "range": "[3.7.0, 3.7.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.billing",
            "@type": "PackageDependency",
            "id": "Az.Billing",
            "range": "[2.2.0, 2.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cdn",
            "@type": "PackageDependency",
            "id": "Az.Cdn",
            "range": "[3.3.0, 3.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cloudservice",
            "@type": "PackageDependency",
            "id": "Az.CloudService",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cognitiveservices",
            "@type": "PackageDependency",
            "id": "Az.CognitiveServices",
            "range": "[1.15.0, 1.15.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.compute",
            "@type": "PackageDependency",
            "id": "Az.Compute",
            "range": "[9.0.1, 9.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.confidentialledger",
            "@type": "PackageDependency",
            "id": "Az.ConfidentialLedger",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.connectedmachine",
            "@type": "PackageDependency",
            "id": "Az.ConnectedMachine",
            "range": "[1.1.1, 1.1.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.containerinstance",
            "@type": "PackageDependency",
            "id": "Az.ContainerInstance",
            "range": "[4.1.1, 4.1.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.containerregistry",
            "@type": "PackageDependency",
            "id": "Az.ContainerRegistry",
            "range": "[4.3.0, 4.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cosmosdb",
            "@type": "PackageDependency",
            "id": "Az.CosmosDB",
            "range": "[1.16.0, 1.16.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.databoxedge",
            "@type": "PackageDependency",
            "id": "Az.DataBoxEdge",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.databricks",
            "@type": "PackageDependency",
            "id": "Az.Databricks",
            "range": "[1.10.0, 1.10.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datafactory",
            "@type": "PackageDependency",
            "id": "Az.DataFactory",
            "range": "[1.19.0, 1.19.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datalakeanalytics",
            "@type": "PackageDependency",
            "id": "Az.DataLakeAnalytics",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datalakestore",
            "@type": "PackageDependency",
            "id": "Az.DataLakeStore",
            "range": "[1.4.0, 1.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.dataprotection",
            "@type": "PackageDependency",
            "id": "Az.DataProtection",
            "range": "[2.6.0, 2.6.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datashare",
            "@type": "PackageDependency",
            "id": "Az.DataShare",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.desktopvirtualization",
            "@type": "PackageDependency",
            "id": "Az.DesktopVirtualization",
            "range": "[5.4.1, 5.4.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.devcenter",
            "@type": "PackageDependency",
            "id": "Az.DevCenter",
            "range": "[2.0.1, 2.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.devtestlabs",
            "@type": "PackageDependency",
            "id": "Az.DevTestLabs",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.dns",
            "@type": "PackageDependency",
            "id": "Az.Dns",
            "range": "[1.3.1, 1.3.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.dnsresolver",
            "@type": "PackageDependency",
            "id": "Az.DnsResolver",
            "range": "[1.1.1, 1.1.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.elasticsan",
            "@type": "PackageDependency",
            "id": "Az.ElasticSan",
            "range": "[1.2.1, 1.2.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.eventgrid",
            "@type": "PackageDependency",
            "id": "Az.EventGrid",
            "range": "[2.2.0, 2.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.eventhub",
            "@type": "PackageDependency",
            "id": "Az.EventHub",
            "range": "[5.1.0, 5.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.frontdoor",
            "@type": "PackageDependency",
            "id": "Az.FrontDoor",
            "range": "[1.12.0, 1.12.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.functions",
            "@type": "PackageDependency",
            "id": "Az.Functions",
            "range": "[4.2.0, 4.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.hdinsight",
            "@type": "PackageDependency",
            "id": "Az.HDInsight",
            "range": "[6.3.1, 6.3.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.healthcareapis",
            "@type": "PackageDependency",
            "id": "Az.HealthcareApis",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.healthdataaiservices",
            "@type": "PackageDependency",
            "id": "Az.HealthDataAIServices",
            "range": "[1.0.0, 1.0.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.iothub",
            "@type": "PackageDependency",
            "id": "Az.IotHub",
            "range": "[2.8.0, 2.8.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.keyvault",
            "@type": "PackageDependency",
            "id": "Az.KeyVault",
            "range": "[6.3.1, 6.3.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.kusto",
            "@type": "PackageDependency",
            "id": "Az.Kusto",
            "range": "[2.4.0, 2.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.loadtesting",
            "@type": "PackageDependency",
            "id": "Az.LoadTesting",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.logicapp",
            "@type": "PackageDependency",
            "id": "Az.LogicApp",
            "range": "[1.6.0, 1.6.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.machinelearning",
            "@type": "PackageDependency",
            "id": "Az.MachineLearning",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.machinelearningservices",
            "@type": "PackageDependency",
            "id": "Az.MachineLearningServices",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.maintenance",
            "@type": "PackageDependency",
            "id": "Az.Maintenance",
            "range": "[1.5.0, 1.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.managedserviceidentity",
            "@type": "PackageDependency",
            "id": "Az.ManagedServiceIdentity",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.managedservices",
            "@type": "PackageDependency",
            "id": "Az.ManagedServices",
            "range": "[3.1.0, 3.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.marketplaceordering",
            "@type": "PackageDependency",
            "id": "Az.MarketplaceOrdering",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.media",
            "@type": "PackageDependency",
            "id": "Az.Media",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.migrate",
            "@type": "PackageDependency",
            "id": "Az.Migrate",
            "range": "[2.6.0, 2.6.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.monitor",
            "@type": "PackageDependency",
            "id": "Az.Monitor",
            "range": "[6.0.1, 6.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.mysql",
            "@type": "PackageDependency",
            "id": "Az.MySql",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.network",
            "@type": "PackageDependency",
            "id": "Az.Network",
            "range": "[7.12.0, 7.12.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.networkcloud",
            "@type": "PackageDependency",
            "id": "Az.NetworkCloud",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.nginx",
            "@type": "PackageDependency",
            "id": "Az.Nginx",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.notificationhubs",
            "@type": "PackageDependency",
            "id": "Az.NotificationHubs",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.operationalinsights",
            "@type": "PackageDependency",
            "id": "Az.OperationalInsights",
            "range": "[3.3.0, 3.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.oracle",
            "@type": "PackageDependency",
            "id": "Az.Oracle",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.policyinsights",
            "@type": "PackageDependency",
            "id": "Az.PolicyInsights",
            "range": "[1.7.0, 1.7.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.postgresql",
            "@type": "PackageDependency",
            "id": "Az.PostgreSql",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.powerbiembedded",
            "@type": "PackageDependency",
            "id": "Az.PowerBIEmbedded",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.privatedns",
            "@type": "PackageDependency",
            "id": "Az.PrivateDns",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.recoveryservices",
            "@type": "PackageDependency",
            "id": "Az.RecoveryServices",
            "range": "[7.4.0, 7.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.rediscache",
            "@type": "PackageDependency",
            "id": "Az.RedisCache",
            "range": "[1.11.0, 1.11.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.redisenterprisecache",
            "@type": "PackageDependency",
            "id": "Az.RedisEnterpriseCache",
            "range": "[1.2.1, 1.2.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.relay",
            "@type": "PackageDependency",
            "id": "Az.Relay",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.resourcegraph",
            "@type": "PackageDependency",
            "id": "Az.ResourceGraph",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.resourcemover",
            "@type": "PackageDependency",
            "id": "Az.ResourceMover",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.resources",
            "@type": "PackageDependency",
            "id": "Az.Resources",
            "range": "[7.8.0, 7.8.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.security",
            "@type": "PackageDependency",
            "id": "Az.Security",
            "range": "[1.8.0, 1.8.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.securityinsights",
            "@type": "PackageDependency",
            "id": "Az.SecurityInsights",
            "range": "[3.2.0, 3.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.servicebus",
            "@type": "PackageDependency",
            "id": "Az.ServiceBus",
            "range": "[4.1.0, 4.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.servicefabric",
            "@type": "PackageDependency",
            "id": "Az.ServiceFabric",
            "range": "[3.5.0, 3.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.signalr",
            "@type": "PackageDependency",
            "id": "Az.SignalR",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.sql",
            "@type": "PackageDependency",
            "id": "Az.Sql",
            "range": "[6.0.1, 6.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.sqlvirtualmachine",
            "@type": "PackageDependency",
            "id": "Az.SqlVirtualMachine",
            "range": "[2.4.0, 2.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.stackhci",
            "@type": "PackageDependency",
            "id": "Az.StackHCI",
            "range": "[2.5.0, 2.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.stackhcivm",
            "@type": "PackageDependency",
            "id": "Az.StackHCIVM",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.storage",
            "@type": "PackageDependency",
            "id": "Az.Storage",
            "range": "[8.1.0, 8.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.storagemover",
            "@type": "PackageDependency",
            "id": "Az.StorageMover",
            "range": "[1.5.0, 1.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.storagesync",
            "@type": "PackageDependency",
            "id": "Az.StorageSync",
            "range": "[2.4.0, 2.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.streamanalytics",
            "@type": "PackageDependency",
            "id": "Az.StreamAnalytics",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.support",
            "@type": "PackageDependency",
            "id": "Az.Support",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.synapse",
            "@type": "PackageDependency",
            "id": "Az.Synapse",
            "range": "[3.1.0, 3.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.trafficmanager",
            "@type": "PackageDependency",
            "id": "Az.TrafficManager",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.websites",
            "@type": "PackageDependency",
            "id": "Az.Websites",
            "range": "[3.3.0, 3.3.0]"
          }
        ]
      }
    ],
    "description": "Microsoft Azure PowerShell - Cmdlets to manage resources in Azure. This module is compatible with PowerShell and Windows PowerShell.\nFor more information about the Az module, please visit the following: https://learn.microsoft.com/powershell/azure/",
    "iconUrl": "",
    "id": "Az",
    "language": "",
    "licenseUrl": "https://aka.ms/azps-license",
    "listed": true,
    "packageContent": "https://pwsh.gallery/flatcontainer/az/13.1.0/az.13.1.0.nupkg",
    "projectUrl": "https://github.com/Azure/azure-powershell",
    "published": "2025-01-14T03:25:18.0667647Z",
    "requireLicenseAcceptance": true,
    "summary": "",
    "tags": [
      "Azure",
      "ARM",
      "ResourceManager",
      "Linux",
      "AzureAutomationNotSupported",
      "PSModule"
    ],
    "version": "13.1.0"
  },
  "commitId": "4d7d502d-fe6a-4296-8d59-64bb13ce7cd8",
  "commitTimeStamp": "2025-01-14T03:25:20.3149938Z",
  "packageContent": "https://pwsh.gallery/flatcontainer/az/13.1.0/az.13.1.0.nupkg",
  "registration": "https://pwsh.gallery/registration/az/index.json"
}

PR Context

In my testing so far I believe this PR fixes:

PR Checklist

@o-l-a-v o-l-a-v changed the title WIP: V3 search populate dependencies #1169 V3 search populate dependencies #1169 Jan 23, 2025
@o-l-a-v o-l-a-v changed the title V3 search populate dependencies #1169 NuGet v3 populate dependencies Jan 23, 2025
@o-l-a-v
Copy link
Contributor Author

o-l-a-v commented Jan 23, 2025

I don't consider this WIP anymore. But maintainers who know more about the repositories used for testing might want to write some more tests?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant