[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") { if ($Version -eq "latest") {
$Version = "*" $Version = "*"
} }
$json = Invoke-RestMethod -Uri "https://api.github.com/repos/${RepoOwner}/${RepoName}/releases?per_page=${SearchInCount}" $json = Invoke-RestMethod -Uri "https://api.github.com/repos/${RepoOwner}/${RepoName}/releases?per_page=${SearchInCount}"
$versionToDownload = ($json.Where{ $_.prerelease -eq $IsPrerelease }.tag_name | $tags = $json.Where{ $_.prerelease -eq $IsPrerelease -and $_.assets }.tag_name
Select-String -Pattern "\d+.\d+.\d+").Matches.Value | $versionToDownload = $tags |
Where-Object {$_ -Like "${Version}.*" -or $_ -eq ${Version}} | Select-String -Pattern "\d+.\d+.\d+" |
Sort-Object {[version]$_} | ForEach-Object { $_.Matches.Value } |
Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } |
Sort-Object { [version]$_ } |
Select-Object -Last 1 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 $UrlFilter = $UrlFilter -replace "{BinaryName}",$BinaryName -replace "{Version}",$versionToDownload
$downloadUrl = $json.assets.browser_download_url -like $UrlFilter $downloadUrl = $json.assets.browser_download_url -like $UrlFilter