Skip to content

Commit aa6b28a

Browse files
CopilotDRSDavidSoft
andcommitted
Refactor: Extract pre-release check to helper function
Co-authored-by: DRSDavidSoft <[email protected]>
1 parent d01ab39 commit aa6b28a

File tree

1 file changed

+27
-29
lines changed

1 file changed

+27
-29
lines changed

scripts/update.ps1

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,31 @@ function Match-Filenames {
8383
return $position
8484
}
8585

86+
# Checks if a release is a pre-release based on GitHub API flag and version tag keywords
87+
# Pre-release keywords include: -rc (release candidate), -beta, -alpha, -preview, -pre
88+
function Test-IsPrerelease {
89+
param (
90+
[Parameter(Mandatory = $true)]
91+
$release
92+
)
93+
94+
# Check if marked as pre-release by GitHub
95+
if ($release.prerelease -eq $true) {
96+
return $true
97+
}
98+
99+
# Check for common pre-release keywords in tag name
100+
# This catches versions like v2.50.0-rc, v1.0.0-beta, v1.0.0-alpha, etc.
101+
$prereleaseKeywords = @('-rc', '-beta', '-alpha', '-preview', '-pre')
102+
foreach ($keyword in $prereleaseKeywords) {
103+
if ($release.tag_name -ilike "*$keyword*") {
104+
return $true
105+
}
106+
}
107+
108+
return $false
109+
}
110+
86111
# Uses the GitHub api in order to fetch the current download links for the latest releases of the repo.
87112
function Fetch-DownloadUrl {
88113
param (
@@ -137,26 +162,10 @@ function Fetch-DownloadUrl {
137162
# Skip pre-release versions unless explicitly included
138163
# Pre-releases include RC (Release Candidate), beta, alpha, and other test versions
139164
if (-not $includePrerelease) {
140-
# Check if marked as pre-release by GitHub
141-
if ($i.prerelease -eq $true) {
165+
if (Test-IsPrerelease $i) {
142166
Write-Verbose "Skipping pre-release version: $($i.tag_name)"
143167
continue
144168
}
145-
146-
# Check for common pre-release keywords in tag name
147-
# This catches versions like v2.50.0-rc, v1.0.0-beta, v1.0.0-alpha, etc.
148-
$prereleaseKeywords = @('-rc', '-beta', '-alpha', '-preview', '-pre')
149-
$isPrerelease = $false
150-
foreach ($keyword in $prereleaseKeywords) {
151-
if ($i.tag_name -ilike "*$keyword*") {
152-
Write-Verbose "Skipping version with pre-release keyword '$keyword': $($i.tag_name)"
153-
$isPrerelease = $true
154-
break
155-
}
156-
}
157-
if ($isPrerelease) {
158-
continue
159-
}
160169
}
161170

162171
if (-not ($i.assets -is [array])) {
@@ -202,18 +211,7 @@ function Fetch-DownloadUrl {
202211
foreach ($release in $info) {
203212
# Apply the same filtering logic
204213
if (-not $includePrerelease) {
205-
if ($release.prerelease -eq $true) {
206-
continue
207-
}
208-
$prereleaseKeywords = @('-rc', '-beta', '-alpha', '-preview', '-pre')
209-
$isPrerelease = $false
210-
foreach ($keyword in $prereleaseKeywords) {
211-
if ($release.tag_name -ilike "*$keyword*") {
212-
$isPrerelease = $true
213-
break
214-
}
215-
}
216-
if ($isPrerelease) {
214+
if (Test-IsPrerelease $release) {
217215
continue
218216
}
219217
}

0 commit comments

Comments
 (0)