## Forge hosts recognized by `pkh new` origin detection, with the ## release-tarball URL templates of each: `Forge::parse` ## (src/new/origin.rs) matches a git remote's host against the map keys, ## and the tarball download substitutes {owner}, {repo} and {tag} into the ## templates. Like host_keys.yml, this file exists so that static ## endpoints are data: adding a forge is a YAML entry, not a code change ## (self-hosted instances are deliberately absent — the download URL ## shapes differ per instance). ## ## tarball_templates are tried sequentially in file order, best candidate ## first (GitHub prefers the codeload direct link: no redirect). ## `kind` documents the forge family the URL shapes belong to; the ## templates fully describe the URLs, so nothing branches on it (yet) — ## but it must be one of the known kinds, enforced at load time. ## ## Where the values come from: each forge's release-archive download URL ## shapes, verified against the live forges — ## github: codeload.github.com///tar.gz/refs/tags/ ## and github.com///archive/refs/tags/.tar.gz ## gitlab: gitlab.com///-/archive//-.tar.gz forges: github.com: kind: github tarball_templates: - https://codeload.github.com/{owner}/{repo}/tar.gz/refs/tags/{tag} - https://github.com/{owner}/{repo}/archive/refs/tags/{tag}.tar.gz gitlab.com: kind: gitlab tarball_templates: - https://gitlab.com/{owner}/{repo}/-/archive/{tag}/{repo}-{tag}.tar.gz