Problem: adding a new forge required touching 5 lookup tables (`FORGE_HOSTS`, `FORGE_CLI`, `FORGE_AUTH_CMD`, `SHORTHAND_PREFIX`, `_warned_forges`) and every branching site in `_api_args`, `fetch_metadata`, and `parse_ref`. Solution: introduce a `ForgeBackend` class with `parse_url`, `api_args`, and `parse_state` methods, plus a `register()` / `backends()` registry. New forges (Gitea, Forgejo) are a single `register()` call via the `gitea_backend()` convenience constructor. |
||
|---|---|---|
| .. | ||
| sync | ||
| buffer.lua | ||
| complete.lua | ||
| config.lua | ||
| diff.lua | ||
| forge.lua | ||
| health.lua | ||
| init.lua | ||
| log.lua | ||
| parse.lua | ||
| recur.lua | ||
| store.lua | ||
| textobj.lua | ||
| views.lua | ||