[Windows] Improve Get-GitHubPackageDownloadUrl function (#5724)

* Improve Get-GitHubPackageDownloadUrl function

* Use Select-String
This commit is contained in:
Aleksandr Chebotov
2022-06-14 09:34:46 +02:00
committed by GitHub
parent 9cf1ebd754
commit 04f68be19e

View File

@@ -590,13 +590,21 @@ function Get-GitHubPackageDownloadUrl {
if ($Version -eq "latest") {
$Version = "*"
}
$json = Invoke-RestMethod -Uri "https://api.github.com/repos/${RepoOwner}/${RepoName}/releases?per_page=${SearchInCount}"
$versionToDownload = ($json.Where{ $_.prerelease -eq $IsPrerelease }.tag_name |
Select-String -Pattern "\d+.\d+.\d+").Matches.Value |
Where-Object {$_ -Like "${Version}.*" -or $_ -eq ${Version}} |
$tags = $json.Where{ $_.prerelease -eq $IsPrerelease -and $_.assets }.tag_name
$versionToDownload = $tags |
Select-String -Pattern "\d+.\d+.\d+" |
ForEach-Object { $_.Matches.Value } |
Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } |
Sort-Object { [version]$_ } |
Select-Object -Last 1
if (-not $versionToDownload) {
Write-Host "Failed to get a tag name from ${RepoOwner}/${RepoName} releases"
exit 1
}
$UrlFilter = $UrlFilter -replace "{BinaryName}",$BinaryName -replace "{Version}",$versionToDownload
$downloadUrl = $json.assets.browser_download_url -like $UrlFilter