Skip to content

Adding check for empty string as well as null#102

Open
reubenmiller wants to merge 3 commits into
PowerShellOrg:masterfrom
reubenmiller:bugfix-resolve-cred
Open

Adding check for empty string as well as null#102
reubenmiller wants to merge 3 commits into
PowerShellOrg:masterfrom
reubenmiller:bugfix-resolve-cred

Conversation

@reubenmiller
Copy link
Copy Markdown

When using the -Credentials parameter when calling Invoke-PSDepend for dependencies that don't require credentials, would result in the erroneous warning WARNING: No credential found for the specified name . Was the dependency misconfigured?

Example

Invoke-PSDepend -Path "./depends.psd1" -Install -Import -Credentials @{
  "repo1WithCredential" = (Get-Credential)
}

File depends.psd1

@{
    "PSModule1" = @{
        
        "Name"           = "PSModule1"
        "Version"        = "1.0.0"
        "DependencyType" = "PSGalleryModule"
        "Credential"     = "repo1WithCredential"
        "Parameters"     = @{
            "Repository" = "repo1WithCredential"
        }
    }
    "PSModule2" = @{
        "Name"           = "PSModule2"
        "Version"        = "2.1.0"
        "DependencyType" = "PSGalleryModule"
        "Parameters"     = @{
            "Repository" = "repo2WithoutCredential"
        }

Would generate the warning when processing the PSModule2 dependency.

WARNING: No credential found for the specified name . Was the dependency misconfigured?

Fix

The -Name parameter in Resolve-Credential is cast from $null to an empty string "". So now both null and an empty string are checked.

@reubenmiller
Copy link
Copy Markdown
Author

Resolves $null credential issue referenced at the end of #94

Signed-off-by: Gilbert Sanchez <me@gilbertsanchez.com>
Copilot AI review requested due to automatic review settings May 11, 2026 02:24
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to prevent an erroneous warning when Invoke-PSDepend is called with -Credentials but a given dependency does not specify a credential name (or the name becomes an empty string due to [string] casting).

Changes:

  • Updates Resolve-Credential to treat empty string credential names the same as $null (via [string]::IsNullOrEmpty()), preventing spurious warnings.
  • Modifies a brace near the end of Parse-Dependency (currently resulting in unbalanced braces / incorrect scoping in the updated file).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 394 to 398

$credential = $null
if (($null -ne $Name) -and ($null -ne $Credentials)) {
if (![string]::IsNullOrEmpty($Name) -and ($null -ne $Credentials)) {

if ($Credentials.ContainsKey($Name)) {
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.

3 participants