Functions/Internal/Resolve-ADONugetID.ps1

function Resolve-ADONugetID {
    [cmdletbinding()]
    param(
        [parameter(Mandatory=$true)]
        [ValidateNotNullorempty()]
            [string]$SourceName
    )
    process {
        Test-ADONugetRepository | Out-Null
        $Repository = $global:ADONugetConfig | Where-Object {$_.RepositoryName -eq $SourceName}
        if (!($Repository)) {
            throw "repository not found, please use Import-ADONugetRepository or New-ADONugetRepository first"
        }
        if ($repository.AllowInsecureConnections) {
            Enable-SkipCertificateChainControlPolicy
        }
        $Headers = @{
            "Authorization" = "Basic "+ [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($Repository.APIKeyName):$($Repository.APIKey)"))
        }
        $BaseADOURI = "https://$($Repository.server)/$($Repository.OrganizationName)/$($Repository.ProjectName)/_packaging/$($Repository.FeedName)/nuget/v3/index.json"
        $params = @{
            "Headers" = $Headers
            "UserAgent" = "NuGet Command Line/6.14.0 (WINDOWS)"
            "UseBasicParsing" = $true
            "URI" = $BaseADOURI
        }
        try {
            $result = Invoke-WebRequest @params
        } catch {
            write-verbose -message "Error Type: $($_.Exception.GetType().FullName)"
            write-verbose -message "Error Message: $($_.Exception.Message)"
            write-verbose -message "HTTP error code:$($_.Exception.Response.StatusCode.Value__)"
            write-verbose -message "HTTP error message:$($_.Exception.Response.StatusDescription)"
        }
        if ($result.Content) {
            $jsonresult = $result.content | convertfrom-json
            $adoserviceids = [System.Uri]$jsonresult.'resources'[0].'@id'
            $adoserviceidssplit = $adoserviceids.AbsolutePath.tostring() -split "/"
            return @{"ProjectID" = $adoserviceidssplit[2]; "FeedID" = $adoserviceidssplit[4] }
        } else {
            throw "empty web response received"
            $result
        }
    }
}