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 --" } } |