updater + docs: resolve releases from git.utn.lol instead of Codeberg
The runtime updater (API latest-release resolution + tag-specific feed override) still pointed at Codeberg; releases now live on git.utn.lol. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -14,18 +14,18 @@ const { autoUpdater } = electronUpdater;
|
||||
const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000;
|
||||
const INITIAL_UPDATE_DELAY_MS = 30 * 1000;
|
||||
|
||||
// Blap update source (Codeberg). NOTE: Codeberg does NOT support the
|
||||
// Blap update source (git.utn.lol Gitea). NOTE: Gitea/Forgejo does NOT support the
|
||||
// `/releases/latest/download/<file>` alias (it 404s) — only tag-specific
|
||||
// `/releases/download/<tag>/<file>` URLs work. So we resolve "latest" via the API
|
||||
// and build tag-specific URLs from that, instead of relying on the broken alias.
|
||||
const CODEBERG_BASE = "https://codeberg.org/Enkisu/Blap";
|
||||
const CODEBERG_API = "https://codeberg.org/api/v1/repos/Enkisu/Blap";
|
||||
const HOWTO_UPDATE_URL = `${CODEBERG_BASE}/src/branch/main/HOW-TO-UPDATE.md`;
|
||||
const FORGE_BASE = "https://git.utn.lol/enki/blap";
|
||||
const FORGE_API = "https://git.utn.lol/api/v1/repos/enki/blap";
|
||||
const HOWTO_UPDATE_URL = `${FORGE_BASE}/src/branch/main/HOW-TO-UPDATE.md`;
|
||||
|
||||
/** Resolve the newest published release via the API. Returns its tag and numeric version. */
|
||||
async function getLatestRelease(): Promise<{ tag: string; version: string } | null> {
|
||||
try {
|
||||
const res = await fetch(`${CODEBERG_API}/releases/latest?t=${Date.now()}`);
|
||||
const res = await fetch(`${FORGE_API}/releases/latest?t=${Date.now()}`);
|
||||
if (!res.ok) return null;
|
||||
const rel = (await res.json()) as { tag_name?: string };
|
||||
const tag = rel.tag_name;
|
||||
@@ -57,7 +57,7 @@ async function pollForUpdates(): Promise<void> {
|
||||
if (latest) {
|
||||
autoUpdater.setFeedURL({
|
||||
provider: "generic",
|
||||
url: `${CODEBERG_BASE}/releases/download/${latest.tag}`,
|
||||
url: `${FORGE_BASE}/releases/download/${latest.tag}`,
|
||||
});
|
||||
}
|
||||
await autoUpdater.checkForUpdates();
|
||||
@@ -85,7 +85,7 @@ let lastLinuxNotifiedVersion: string | undefined;
|
||||
* Linux notify-only update check.
|
||||
*
|
||||
* Linux builds can't self-install (deb/pacman are package-manager owned, flatpak
|
||||
* is sandboxed), so instead of updating in place we read the same Codeberg feed
|
||||
* is sandboxed), so instead of updating in place we read the same release feed
|
||||
* the Windows updater uses and, if there's a newer version, show a desktop
|
||||
* notification that opens HOW-TO-UPDATE.md (which has the per-format commands).
|
||||
*/
|
||||
@@ -111,7 +111,7 @@ async function checkLinuxUpdate(): Promise<void> {
|
||||
* Start the auto-updater.
|
||||
*
|
||||
* Windows/macOS use electron-updater (reads its feed from `app-update.yml`, baked
|
||||
* in at package time from the electron-builder Codeberg `publish` config), which
|
||||
* in at package time from the electron-builder `publish` config), which
|
||||
* downloads and installs in place. Linux uses a notify-only check (see above).
|
||||
* Only runs for packaged builds (dev has no app-update.yml).
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user