PowerShell / PowerShell/PSResourceGet

Find-PSResource is not listing all modules in repository (i.e. wildcard)

Open
#520 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Find feature_request Status-Investigating
Dominant language
C#
Stars
576
Forks
114
Avg merge
1d 2h
Merged PRs (30d)
7

Description

Prerequisites
  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues.
Steps to reproduce

I'm trying to list available modules in a Azure Artifacts repository (connected trough v2) but the Find-PSResource requires the name parameter (and wildcard is not supported in ADOFeed).

Could this possibly be related to the #352, which seams to have been resolved in 3.0.11-beta?

Also guessing that this issue #302 should be taken in to consideration.

  1. Register repository
Register-PSResourceRepository -Name 'MyRepo' -URL 'https://pkgs.dev.azure.com/<organization>/<project>/_packaging/<feedname>/nuget/v2' -Trusted 
  1. Try to list available modules in the repository
Find-PSResource -Repository MyRepo

Find-PSResource: Name parameter must be provided.

Find-PSResource -Name '*' -Repository MyRepo

Find-PSResource: -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.

Find-PSResource -Name 'P*' -Repository MyRepo

Find-PSResource: Searching through ADOFeed with wildcard in Name is not supported, so PSStenaNew repository will be skipped.

Expected behavior
I would expect the same behavior as the old Find-Module (i.e. list the available modules)
Actual behavior
Find-PSResource -Repository MyRepo

**Find-PSResource: Name parameter must be provided.**
  
```powershell
Find-PSResource -Name '*' -Repository MyRepo

Find-PSResource: -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.

Find-PSResource -Name 'P*' -Repository MyRepo

Find-PSResource: Searching through ADOFeed with wildcard in Name is not supported, so PSStenaNew repository will be skipped.



### Error details

```console
Get-Error -Newest 3   


   ErrorIndex: 0

Exception             : 
    Type    : System.ArgumentException
    Message : Searching through ADOFeed with wildcard in Name is not supported, so PSStenaNew repository will be skipped.
    HResult : -2147024809
TargetObject          : Microsoft.PowerShell.PowerShellGet.Cmdlets.FindHelper
CategoryInfo          : InvalidArgument: (Microsoft.PowerShel….Cmdlets.FindHelper:FindHelper) [Find-PSResource], ArgumentException
FullyQualifiedErrorId : CannotSearchADOFeedWithWildcardName,Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
InvocationInfo        : 
    MyCommand        : Find-PSResource
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 3
    Line             : Find-PSResource -Name 'P*' -Repository PSStenaNew
    PositionMessage  : At line:1 char:1
                       + Find-PSResource -Name 'P*' -Repository PSStenaNew
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : Find-PSResource
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : 




   ErrorIndex: 1

Exception             : 
    Type        : System.Management.Automation.PSInvalidOperationException
    ErrorRecord : 
        Exception             : 
            Type    : System.Management.Automation.ParentContainsErrorRecordException
            Message : -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.
            HResult : -2146233087
        CategoryInfo          : InvalidOperation: (:) [], ParentContainsErrorRecordException
        FullyQualifiedErrorId : InvalidOperation
    Message     : -Name '*' is not supported for Find-PSResource so all Name entries will be discarded.
    HResult     : -2146233079
TargetObject          : Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
CategoryInfo          : InvalidArgument: (Microsoft.PowerShel…lets.FindPSResource:FindPSResource) [Find-PSResource], PSInvalidOperationException
FullyQualifiedErrorId : NameEqualsWildcardIsNotSupported,Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
InvocationInfo        : 
    MyCommand        : Find-PSResource
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 2
    Line             : Find-PSResource -Name '*' -Repository PSStenaNew
    PositionMessage  : At line:1 char:1
                       + Find-PSResource -Name '*' -Repository PSStenaNew
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : Find-PSResource
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : 




   ErrorIndex: 2

Exception             : 
    Type        : System.Management.Automation.PSInvalidOperationException
    ErrorRecord : 
        Exception             : 
            Type    : System.Management.Automation.ParentContainsErrorRecordException
            Message : Name parameter must be provided.
            HResult : -2146233087
        CategoryInfo          : InvalidOperation: (:) [], ParentContainsErrorRecordException
        FullyQualifiedErrorId : InvalidOperation
    TargetSite  : 
        Name          : ThrowTerminatingError
        DeclaringType : System.Management.Automation.MshCommandRuntime, System.Management.Automation, Version=7.2.0.9, Culture=neutral, PublicKeyToken=31bf3856ad364e35
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Message     : Name parameter must be provided.
    Source      : System.Management.Automation
    HResult     : -2146233079
    StackTrace  : 
   at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord) in System.Management.Automation.dll:token 0x6002d2b+0x6
TargetObject          : Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
CategoryInfo          : InvalidOperation: (Microsoft.PowerShel…lets.FindPSResource:FindPSResource) [Find-PSResource], PSInvalidOperationException
FullyQualifiedErrorId : NameParameterNotProvided,Microsoft.PowerShell.PowerShellGet.Cmdlets.FindPSResource
InvocationInfo        : 
    MyCommand        : Find-PSResource
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 1
    Line             : Find-PSResource -Repository PSStenaNew
    PositionMessage  : At line:1 char:1
                       + Find-PSResource -Repository PSStenaNew
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : Find-PSResource
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
Environment data
Get-Module PowerShellGet; $PSVersionTable


ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Binary     3.0.11     beta       PowerShellGet                       {Find-PSResource, Get-InstalledPSResource, Get-PSResourceRepository, Install-PSResource…}

Key   : PSVersion
Value : 7.2.0-preview.9
Name  : PSVersion


Key   : PSEdition
Value : Core
Name  : PSEdition


Key   : GitCommitId
Value : 7.2.0-preview.9
Name  : GitCommitId


Key   : OS
Value : Microsoft Windows 10.0.19043
Name  : OS


Key   : Platform
Value : Win32NT
Name  : Platform


Key   : PSCompatibleVersions
Value : {1.0, 2.0, 3.0, 4.0…}
Name  : PSCompatibleVersions


Key   : PSRemotingProtocolVersion
Value : 2.3
Name  : PSRemotingProtocolVersion


Key   : SerializationVersion
Value : 1.1.0.1
Name  : SerializationVersion


Key   : WSManStackVersion
Value : 3.0
Name  : WSManStackVersion
Visuals

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with Find-PSResource against an Azure Artifacts v2 repository, using no name and wildcard names as shown. Trace the Find-PSResource handling for ADOFeed and its NameParameterNotProvided, NameEqualsWildcardIsNotSupported, and CannotSearchADOFeedWithWildcardName errors; done means available modules can be listed or wildcard-filtered as expected without these errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, powershell
Domain
cli, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.