From 6a37f30aab4deac1c01f36066e09133d5bb39296 Mon Sep 17 00:00:00 2001 From: Shiv Tyagi Date: Sat, 4 Jul 2026 16:45:48 +0000 Subject: [PATCH] fix(deploy): resolve releases without the GitHub API in install.sh --- install.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 3d390e23..7561d994 100644 --- a/install.sh +++ b/install.sh @@ -114,9 +114,14 @@ fi # --- Resolve version --- if [ "$VERSION" = "latest" ]; then log "Fetching latest release..." - VERSION=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" \ - | grep '"tag_name"' | head -1 | cut -d'"' -f4) \ - || err "No releases found. Create one with: gh release create v0.1.0" + # Use the Atom feed: /releases/latest ignores pre-releases (all our + # releases are pre-releases) and the unauthenticated API is rate-limited + # per IP. Feed is newest-first; take the first non-nightly tag. + VERSION=$(curl -fsSL "https://github.com/${REPO}/releases.atom" \ + | grep -oE 'releases/tag/[^"]+' | sed 's#releases/tag/##' \ + | grep -v '^nightly$' | head -1) \ + || err "Could not resolve latest release from https://github.com/${REPO}/releases" + [ -n "$VERSION" ] || err "No releases found at https://github.com/${REPO}/releases" fi log "Installing Spur ${VERSION}" @@ -125,10 +130,12 @@ TMPDIR=$(mktemp -d) trap 'rm -rf "${TMPDIR}"' EXIT if [ "$VERSION" = "nightly" ]; then - # Nightly tarballs include date+sha in the name — find the .tar.gz asset - TARBALL=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/tags/nightly" \ - | grep '"name"' | grep '\.tar\.gz"' | grep -v sha256 | head -1 | cut -d'"' -f4) \ + # Nightly tarball name carries date+sha; read it from expanded_assets + # rather than the rate-limited API. + TARBALL=$(curl -fsSL "https://github.com/${REPO}/releases/expanded_assets/nightly" \ + | grep -oE 'spur-nightly-[^"]+-linux-amd64\.tar\.gz' | head -1) \ || err "Could not find nightly release assets" + [ -n "$TARBALL" ] || err "Could not find nightly release assets" else TARBALL="spur-${VERSION}-linux-amd64.tar.gz" fi