Public/Register-OriAzBopOriflameFeed.ps1

<#
.SYNOPSIS
    Register required NuGet feeds from Oriflame artifact sources.
.NOTES
    This cmdlet also install PowerShellGet module, if required.
 
.EXAMPLE
$password = ConvertTo-SecureString 'xbchuuuuhaaaatest' -AsPlainText -Force
$RepositoryCredential = New-Object System.Management.Automation.PSCredential 'PackageManage@oriflame.net',$password
 
Register-OriAzBopOriflameFeed `
-feeds PackageManagementFeed `
-Credential $RepositoryCredential
#>

function Register-OriAzBopOriflameFeed {
    [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = "Low")]
    param (
        [Parameter(ValueFromPipeline = $true, HelpMessage = "List of Oriaflame NuGet feeds to register (eg. GlobalDev, PackageManagementFeed).")]
        [string[]] $feeds,

        [Parameter(Mandatory=$false, HelpMessage = "Repository Credential")]
        [PSCredential] $Credential = $null       
    )
    begin {
        $ErrorActionPreference = 'Stop'
        Write-Debug '-- begin - Register-OriAzBopOriflameFeed --'
        Write-Debug "Name: $Name"
        $registeredFeeds = Get-PSRepository
    }
    process {
        foreach ($feed in $feeds) {

            if ($registeredFeeds.SourceLocation -like "*/$feed/*") {
                Write-Verbose "Already registered [$feed] NuGet feed."
                continue;
            }
            Write-Verbose "Register [$feed] NuGet feed.";

            $RegisterParam = @{
                Name               = $feed
                SourceLocation     = "https://oriflame.pkgs.visualstudio.com/_packaging/$feed/nuget/v2"
                PublishLocation    = "https://oriflame.pkgs.visualstudio.com/_packaging/$feed/nuget/v2"
                InstallationPolicy = 'Trusted'
            }
            if($null -ne $Credential) {
                $RegisterParam += @{Credential = $Credential}
            }
            # "https://oriflame.pkgs.visualstudio.com/_packaging/$feed/nuget/v2"
            # Somehow "https://pkgs.dev.azure.com/oriflame/_packaging/$feed/nuget/v2" sometimes does not work

            Write-Verbose "Register-PSRepositoryInternal"
            Write-Verbose (ConvertTo-Json  $RegisterParam)
            if ($PSCmdlet.ShouldProcess("Register repository internal", $RegisterParam.Name)) {
                Register-PSRepositoryInternal `
                -RegisterParam $RegisterParam `
                -Verbose:$VerbosePreference `
                -Debug:$DebugPreference 
            }
            
        }
    }
    end {
        Write-Debug "-- End of Register-OriAzBopOriflameFeed --"
    }
}