Skip to content

Desktop: public releases mirror (auto-update) + visible app version - #251

Merged
NishanthNixx merged 2 commits into
mainfrom
desktop/public-releases-mirror
Jul 15, 2026
Merged

Desktop: public releases mirror (auto-update) + visible app version#251
NishanthNixx merged 2 commits into
mainfrom
desktop/public-releases-mirror

Conversation

@NishanthNixx

Copy link
Copy Markdown
Collaborator

Summary

Makes the desktop app's downloads and auto-updates work for the public, given the source repo is private. Plus surfaces the app version in the UI.

Why

The source repo is private, so its GitHub release assets return 404 to anyone unauthenticated — the updater endpoint, the website download button, and direct DMG downloads all fail for end users. This mirrors the built artifacts to a public releases repo that those point at. Source stays private.

Changes

  • CI mirror step (release.yml): after the build, mirror DMG + .app.tar.gz + .sig + latest.json to the public repo. latest.json's asset URLs are rewritten to the public repo; the minisign signature stays valid (it signs the file, not the URL).
  • Updater endpointgithub.com/mydevtools-tech/mydevtools-releases/releases/latest/download/latest.json
  • Website download button → reads the latest release from the public repo
  • Visible app version: AppVersionLabel in the sidebar footer (desktop-only)

⚠️ Prerequisites before this can release (manual, admin)

  1. Create the public repo mydevtools-tech/mydevtools-releases (Public).
  2. Create a fine-grained PAT with Contents: Read and write on both repos, and add it as a secret on the private repo:
    printf '%s' "github_pat_xxx" | gh secret set RELEASES_TOKEN --repo itsmeakhil/mydevtools
    

Note on the baked-in endpoint

The updater endpoint is compiled into each build, so the public repo name is effectively permanent. The already-released v0.1.0 points at the old (private) endpoint; the first public release should be v0.1.1 with this new endpoint baked in.

🤖 Generated with Claude Code

Nishanth and others added 2 commits July 15, 2026 22:18
Adds AppVersionLabel (reads getVersion via the updater lib, desktop-only)
under the user menu, so the running version is visible outside Settings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Source repo is private, so its release assets 404 for the public — the
updater endpoint and website button can't reach them. Add a CI step that
mirrors the DMG + .app.tar.gz + .sig + latest.json to a public releases
repo (URLs in latest.json rewritten; signature stays valid), and point the
updater endpoint + download button at that public repo.

Requires: public repo mydevtools-tech/mydevtools-releases and a RELEASES_TOKEN
secret (contents:write on both repos).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@NishanthNixx
NishanthNixx merged commit 2854a43 into main Jul 15, 2026
@itsmeakhil
itsmeakhil deleted the desktop/public-releases-mirror branch August 12, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant