refactor(forge): extract ForgeBackend class and registry
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.
This commit is contained in:
parent
ecacb62674
commit
0033b26e38
4 changed files with 380 additions and 186 deletions
|
|
@ -41,9 +41,7 @@
|
|||
---@class pending.ForgeConfig
|
||||
---@field auto_close? boolean
|
||||
---@field warn_missing_cli? boolean
|
||||
---@field github? pending.ForgeInstanceConfig
|
||||
---@field gitlab? pending.ForgeInstanceConfig
|
||||
---@field codeberg? pending.ForgeInstanceConfig
|
||||
---@field [string] pending.ForgeInstanceConfig
|
||||
|
||||
---@class pending.SyncConfig
|
||||
---@field remote_delete? boolean
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue