Guest User

Untitled

a guest
Sep 15th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. param(
  2. [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
  3. [ValidateSet("public","internal","internal-nonprod")]
  4. [string] $FromFeed,
  5. [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
  6. [ValidateSet("public","internal","internal-nonprod")]
  7. [string] $ToFeed,
  8. [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
  9. [string] $PackageName,
  10. [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
  11. [string] $Version
  12. )
  13.  
  14. import-module secretserverucsb
  15. Import-Module MyGetUcsb
  16. Import-Module CoreUcsb
  17.  
  18. # Set up credentials
  19. $secret = get-secretserversecret -filter "myget.org - sist-ucsb" | where-object { $_.Id -eq 3386 }
  20. $username = $secret.Username
  21. $password = $secret.Password
  22. $pwSecure = ConvertTo-SecureString $password -AsPlainText -Force
  23. $credHeaderPair = "$($username):$($password)"
  24. $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $pwSecure
  25. $encodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credHeaderPair))
  26.  
  27. # Set up local folder and download/delete uri's
  28. $mygetBaseDlUrl = $global:MyGetUcsb.FeedUrlFormat -f $FromFeed
  29. $mygetDlUrl = "{0}/{1}/{2}" -f $mygetBaseDlUrl, $PackageName, $Version
  30. $mygetDeleteUrl = "{0}?hardDelete=true" -f $mygetDlUrl
  31. $tempPath = [System.IO.Path]::GetTempPath()
  32. $tempDlFolder = "{0}{1}.{2}" -f $tempPath, $PackageName, $Version
  33. $tempDlPath = "{0}\{1}.{2}.nupkg" -f $tempDlFolder, $PackageName, $Version
  34.  
  35. # Create temporary local folder
  36. if((Test-Path $tempDlFolder) -eq $false) { mkdir $tempDlFolder }
  37.  
  38. # Download the package to local disk
  39. Invoke-WebRequest -Uri $mygetDlUrl -UseBasicParsing -OutFile $tempDlPath -Credential $cred -Verbose
  40.  
  41.  
  42. # Push up the downloaded package to the new feed
  43. $moduleBase = (Get-Module -Name MyGetUcsb).ModuleBase
  44. $nuget = "{0}\Resources\nuget.exe" -f $moduleBase
  45. $toFeedUrl = $global:MyGetUcsb.FeedUrlFormat -f $ToFeed
  46. . $nuget push $tempDlPath -NonInteractive -Source $toFeedUrl -ApiKey $global:MyGetUcsb.ApiKey -NonInteractive -Verbosity Detailed
  47.  
  48.  
  49. # Remove the package from the original feed
  50. $fromFeedUrl = $global:MyGetUcsb.FeedUrlFormat -f $FromFeed
  51. Invoke-WebRequest -Uri $mygetDeleteUrl -Method DELETE -Headers @{ Authorization = "Basic $encodedCredentials" } -Verbose
  52.  
  53.  
  54. # Remove the temporary files from disk
  55. if(Test-Path $tempDlFolder) { rmdir $tempDlFolder -Recurse -Verbose }
Add Comment
Please, Sign In to add comment