@@ -469,7 +469,7 @@ jobs:
469469 TAG : ${{ github.ref_name }}
470470 run : |
471471 set -euo pipefail
472- gh release view "${TAG}" --repo "${REPO}" --json body,publishedAt > release-meta.json
472+ gh api "/repos/${REPO}/releases/tags/${TAG}" > release-meta.json
473473 python3 - <<'PY'
474474 import json
475475 import os
@@ -480,10 +480,9 @@ jobs:
480480 with open("release-meta.json", "r", encoding="utf-8") as fh:
481481 release = json.load(fh)
482482 body = release.get("body", "") or ""
483- pub_date = release.get("publishedAt", "") or ""
483+ pub_date = release.get("published_at", "") or release.get(" publishedAt", "") or ""
484484 version = tag[1:] if tag.startswith("v") else tag
485-
486- base = f"https://github.com/{repo}/releases/download/{tag}"
485+ assets = release.get("assets") or []
487486
488487 mac_path = pathlib.Path("updater-meta") / "updater-meta-macos" / "updater-meta-macos.json"
489488 linux_path = pathlib.Path("updater-meta") / "updater-meta-linux" / "updater-meta-linux.json"
@@ -503,11 +502,33 @@ jobs:
503502 if missing:
504503 raise SystemExit(f"Missing updater metadata: {', '.join(missing)}")
505504
505+ def pick_release_asset(suffix: str) -> dict:
506+ matches = [
507+ asset for asset in assets
508+ if isinstance(asset, dict) and (asset.get("name", "") or "").endswith(suffix)
509+ ]
510+ if len(matches) != 1:
511+ names = [asset.get("name", "") for asset in assets if isinstance(asset, dict)]
512+ raise SystemExit(
513+ f"Expected exactly one release asset with suffix {suffix}, found {len(matches)}. Assets: {names}"
514+ )
515+ download_url = matches[0].get("browser_download_url", "") or ""
516+ if not download_url:
517+ raise SystemExit(f"Release asset {matches[0].get('name', '')} is missing browser_download_url")
518+ return {
519+ "asset_name": matches[0].get("name", "") or "",
520+ "url": download_url,
521+ }
522+
523+ mac_release_asset = pick_release_asset(".app.tar.gz")
524+ linux_appimage_release_asset = pick_release_asset(".AppImage")
525+ linux_deb_release_asset = pick_release_asset(".deb")
526+
506527 platforms = {
507- "darwin-aarch64-app": {"url": f"{base}/{mac_app['asset_name']}" , "signature": mac_app["signature"]},
508- "darwin-x86_64-app": {"url": f"{base}/{mac_app['asset_name']}" , "signature": mac_app["signature"]},
509- "linux-x86_64-appimage": {"url": f"{base}/{linux_appimage['asset_name']}" , "signature": linux_appimage["signature"]},
510- "linux-x86_64-deb": {"url": f"{base}/{linux_deb['asset_name']}" , "signature": linux_deb["signature"]},
528+ "darwin-aarch64-app": {"url": mac_release_asset["url"] , "signature": mac_app["signature"]},
529+ "darwin-x86_64-app": {"url": mac_release_asset["url"] , "signature": mac_app["signature"]},
530+ "linux-x86_64-appimage": {"url": linux_appimage_release_asset["url"] , "signature": linux_appimage["signature"]},
531+ "linux-x86_64-deb": {"url": linux_deb_release_asset["url"] , "signature": linux_deb["signature"]},
511532 }
512533
513534 latest = {
0 commit comments