From 462389934b87eb1b2e2deb8b2b19cc504b449c3a Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Wed, 9 Aug 2023 20:55:17 +0200 Subject: [PATCH] cmd/stupgrades: Serve friendlier URLs for upgrade assets (fixes #9033) --- cmd/stupgrades/main.go | 10 ++++++++++ lib/upgrade/upgrade_common.go | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cmd/stupgrades/main.go b/cmd/stupgrades/main.go index 66c40dc29..3e4da7966 100644 --- a/cmd/stupgrades/main.go +++ b/cmd/stupgrades/main.go @@ -68,6 +68,16 @@ func (p *githubReleases) ServeHTTP(w http.ResponseWriter, _ *http.Request) { sort.Sort(upgrade.SortByRelease(rels)) rels = filterForLatest(rels) + // Move the URL used for browser downloads to the URL field, and remove + // the browser URL field. This avoids going via the GitHub API for + // downloads, since Syncthing uses the URL field. + for _, rel := range rels { + for j, asset := range rel.Assets { + rel.Assets[j].URL = asset.BrowserURL + rel.Assets[j].BrowserURL = "" + } + } + buf := new(bytes.Buffer) _ = json.NewEncoder(buf).Encode(rels) diff --git a/lib/upgrade/upgrade_common.go b/lib/upgrade/upgrade_common.go index d72a535f7..fae85145b 100644 --- a/lib/upgrade/upgrade_common.go +++ b/lib/upgrade/upgrade_common.go @@ -35,7 +35,7 @@ type Asset struct { // The browser URL is needed for human readable links in the output created // by cmd/stupgrades. - BrowserURL string `json:"browser_download_url"` + BrowserURL string `json:"browser_download_url,omitempty"` } var (