new: drive the forge hosts and tarball templates from data/forges.yml
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
## 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/<owner>/<repo>/tar.gz/refs/tags/<tag>
|
||||
## and github.com/<owner>/<repo>/archive/refs/tags/<tag>.tar.gz
|
||||
## gitlab: gitlab.com/<owner>/<repo>/-/archive/<tag>/<repo>-<tag>.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
|
||||
Reference in New Issue
Block a user