Private/Test-KadenPackageContainsCredential.ps1

function Test-KadenPackageContainsCredential {
    <#
    .SYNOPSIS
        Report whether a module package contains a private-source credential.
    #>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$PackageRoot
    )

    $pattern = '(?i)' + ((Get-KadenCredentialTokenPattern) -join '|')
    $files = @(Get-ChildItem -LiteralPath $PackageRoot -Recurse -File -ErrorAction SilentlyContinue)
    foreach ($file in $files) {
        try {
            $text = [System.IO.File]::ReadAllText($file.FullName)
        }
        catch {
            return $true
        }
        if ($text -match $pattern) {
            return $true
        }
    }

    return $false
}