Skip to content

fix(electron-updater): filter draft releases in PrivateGitHubProvider.getLatestVersionInfo#9694

Merged
mmaietta merged 5 commits into
masterfrom
copilot/fix-draft-release-filter
May 4, 2026
Merged

fix(electron-updater): filter draft releases in PrivateGitHubProvider.getLatestVersionInfo#9694
mmaietta merged 5 commits into
masterfrom
copilot/fix-draft-release-filter

Conversation

Copilot AI commented May 2, 2026

Copy link
Copy Markdown
Contributor

When allowPrerelease=true, the GitHub /releases API returns drafts in authenticated responses ordered by created_at desc. A draft prerelease near the top of the list would be selected as the latest version, silently blocking published releases — a common side effect of failed publish runs that leave orphaned drafts.

Changes

  • getLatestVersionInfo: Filter out draft releases before selecting the latest candidate. Prefers a non-draft prerelease; falls back to the first non-draft release. If only drafts exist, returns undefined (caller throws ERR_UPDATER_CHANNEL_FILE_NOT_FOUND) rather than silently serving a draft.
  • ReleaseInfo interface: Added draft and prerelease boolean fields to reflect the actual GitHub API response shape.
// Before
return (version as Array<{ prerelease: boolean }>).find(it => it.prerelease) || version[0]

// After
const candidates = (version as Array<{ prerelease: boolean; draft: boolean }>).filter(it => !it.draft)
return candidates.find(it => it.prerelease) || candidates[0]

@changeset-bot

changeset-bot Bot commented May 2, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 69fb61e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
electron-updater Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copilot AI changed the title [WIP] Fix draft releases not filtered in getLatestVersionInfo fix(electron-updater): filter draft releases in PrivateGitHubProvider.getLatestVersionInfo May 2, 2026
Copilot AI requested a review from mmaietta May 2, 2026 01:39
@mmaietta mmaietta marked this pull request as ready for review May 3, 2026 05:27
@mmaietta mmaietta merged commit a5d8ab9 into master May 4, 2026
56 of 59 checks passed
@mmaietta mmaietta deleted the copilot/fix-draft-release-filter branch May 4, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PrivateGitHubProvider: getLatestVersionInfo does not filter out draft releases when searching for latest version

2 participants