mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-04-07 02:46:50 +00:00
fix: handle GitHub source-tarball packages (serviceman, aliasman, duckdns.sh)
When a GitHub release has no binary assets, fall back to tarball_url and zipball_url. These are source distributions (platform-independent), marked with extra=source. - serviceman: 12 distributables (6 releases × tar.gz + zip) - aliasman: 8 distributables (4 releases × tar.gz + zip) - duckdns.sh: 6 distributables (3 releases × tar.gz + zip) Total: 170,213 rows across 116 packages (no more zeros).
This commit is contained in:
@@ -226,6 +226,8 @@ type ghRelease struct {
|
||||
Draft bool `json:"draft"`
|
||||
PublishedAt string `json:"published_at"`
|
||||
Assets []ghAsset `json:"assets"`
|
||||
TarballURL string `json:"tarball_url"`
|
||||
ZipballURL string `json:"zipball_url"`
|
||||
}
|
||||
|
||||
type ghAsset struct {
|
||||
@@ -302,6 +304,35 @@ func classifyGitHub(pkg string, conf *installerconf.Conf, d *rawcache.Dir) ([]Di
|
||||
Date: date,
|
||||
})
|
||||
}
|
||||
|
||||
// Source-tarball packages: no binary assets, distributed via
|
||||
// GitHub's auto-generated tarball/zipball URLs.
|
||||
if len(rel.Assets) == 0 {
|
||||
if rel.TarballURL != "" {
|
||||
dists = append(dists, Dist{
|
||||
Package: pkg,
|
||||
Version: version,
|
||||
Channel: channel,
|
||||
Format: ".tar.gz",
|
||||
Download: rel.TarballURL,
|
||||
Filename: rel.TagName + ".tar.gz",
|
||||
Date: date,
|
||||
Extra: "source",
|
||||
})
|
||||
}
|
||||
if rel.ZipballURL != "" {
|
||||
dists = append(dists, Dist{
|
||||
Package: pkg,
|
||||
Version: version,
|
||||
Channel: channel,
|
||||
Format: ".zip",
|
||||
Download: rel.ZipballURL,
|
||||
Filename: rel.TagName + ".zip",
|
||||
Date: date,
|
||||
Extra: "source",
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
return dists, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user