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:
2026-07-25 12:58:54 -07:00
parent fd525587ee
commit 4e8d7be03e
3 changed files with 11 additions and 11 deletions
+8 -8
View File
@@ -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).
*/