Centralize Gitea domain workflows

This commit is contained in:
Georg Bauer
2026-07-31 16:44:16 +02:00
parent b468a2670c
commit f38c3c4939
19 changed files with 2248 additions and 1624 deletions

View File

@@ -4,12 +4,13 @@ Source: the OpenAPI contract served by the configured Gitea 1.25.4 instance.
It contains 299 paths, 467 operations, 243 read/query operations, and 216 schema
definitions.
`gotcha_gitea` exposes the complete typed Gitea 1.25 client through
`gotcha_gitea::apis` and every generated request/response model through
`gotcha_gitea::models`. `Client::configuration()` supplies the selected base URL
and token to those generated functions.
`gotcha_gitea` encapsulates the generated Gitea 1.25 client. Its concrete
`Client` methods own the supported Gitea workflows and relationships, while
`gotcha_gitea::models` exposes generated response records for presentation.
Generated API modules and client configuration are deliberately private so the
CLI and app cannot duplicate Gitea behavior.
| Domain | Queries | Other actions | API crate | CLI queries | CLI writes | Capabilities |
| Domain | Queries | Other actions | Generated client | CLI queries | CLI writes | Capabilities |
| --- | ---: | ---: | --- | ---: | ---: | --- |
| activitypub | 1 | 1 | Complete | 0 | 0 | Person actors and inbox federation |
| admin | 14 | 18 | Complete | 0 | 0 | Users, organizations, email, hooks, cron, unadopted repositories, Actions runners/jobs/runs |
@@ -37,7 +38,8 @@ Typed text commands currently implemented include:
- milestone list/show/create/edit/delete
- pull list/show/create/edit/merge/commits/files/reviews
The remaining 229 query operations and 214 mutation operations are available to
Rust callers through the typed API modules but do not yet have purpose-built CLI
commands or text/input views. `api request` remains an explicit JSON escape hatch;
it is not counted as typed CLI coverage.
The remaining 229 query operations and 214 mutation operations are represented
by the private generated client but do not yet have shared domain methods or
purpose-built CLI commands. Add new workflows to `gotcha_gitea::Client` before
using them in either frontend. `api request` remains an explicit JSON escape
hatch; it is not counted as typed CLI coverage.