Skip to content

Adding check for empty string as well as null#102

Merged
HeyItsGilbert merged 3 commits into
PowerShellOrg:masterfrom
reubenmiller:bugfix-resolve-cred
May 15, 2026
Merged

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

Conversation

@reubenmiller
Copy link
Copy Markdown
Contributor

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
Contributor 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
Contributor

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)) {
@HeyItsGilbert HeyItsGilbert merged commit 23838e2 into PowerShellOrg:master May 15, 2026
HeyItsGilbert added a commit that referenced this pull request May 21, 2026
## Summary
- Adds a `CHANGELOG.md` at the repo root, reconstructed retroactively
from the git history of `PSDepend/PSDepend.psd1`.
- Covers every published version from **0.0.1 (2016-07-29)** through
**0.3.0 (2018-09-20)**, plus an **[Unreleased]** section capturing the
large queue of work merged since 0.3.0 (PSResourceGet, Chocolatey,
Pester v5 migration, build modernization, numerous bug fixes — PRs #102
through #180).
- Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) with
Added / Changed / Fixed groupings and SemVer headings.
- Resolves the dangling reference in `PSDepend/PSDepend.psd1` (line
109), where `PrivateData.PSData.ReleaseNotes` already points at
`CHANGELOG.md` on `main` but the file did not exist.

## Why retroactive
The module has shipped 8 versions but never carried a changelog.
Reconstructing it now gives a single place to read project history,
makes the existing `ReleaseNotes` link resolve, and creates a landing
spot for future releases to append to instead of starting from scratch.

## Test plan
- [x] Verify `CHANGELOG.md` renders correctly on GitHub.
- [x] Confirm the URL in `PSDepend/PSDepend.psd1` line 109
(`ReleaseNotes`) now resolves once merged to `main`.
- [x] Spot-check a couple of historical entries against `git log` to
confirm accuracy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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