docs: map Gitea web UI vs REST API parity gaps #43
Reference in New Issue
Block a user
Delete Branch "docs/gitea-web-vs-api"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds
.claude/gitea-web-vs-api.md, a map of the capabilities Gitea's web UI exposes that its REST API does not, scoped to the issue / PR / review / comment / label / milestone domain.Analysed against
go-gitea/giteaat commite8befe026853a90a9efca559ca9f9cac8b41fc88.Method
Every web route registered under the issue/PR paths in
routers/web/web.gowas paired againstrouters/api/v1/api.go; each unpaired route was then traced to theservices/ormodels/function its handler calls, and that function checked for reachability from any API handler. Each surviving finding was cross-checked against the generated OpenAPI spec, and searched for upstream prior art.Presentation-only routes are excluded by design. Projects/kanban and issue templates are out of scope for this pass.
Findings
Nine, ranked by impact and tractability, each with the web route, the service function reached, swagger evidence, prior art, and a patch sketch. Ready-to-paste issue drafts for the five to file first.
The strongest is the merge box: the API returns a bare
mergeableboolean while the web UI computes five distinct blocker reasons plus status-check and signing state, reachable only fromViewPullMergeBox. It sits on an open upstream issue from 2020 with no implementation attempt.The most likely to land is the time estimate: upstream merged the read half in 2025 and stopped, leaving a field the API returns but cannot set.
Bearing on this repo's backlog
Two gaps that motivated the review are already fixed upstream, which supersedes the premises of issues #38 and #39:
POST /repos/{owner}/{repo}/pulls/comments/{id}/resolveand/unresolveexist — issue #39's exact ask.POST /repos/{owner}/{repo}/pulls/{index}/comments/{id}/repliesexists, and inline comments can be created viaPOST /pulls/{index}/reviewswith acomments[]array — most of issue #38.What remains of #38 is narrower: a pending review cannot be accumulated across calls, because the API submits it in the same request. Both issues are worth rewriting against what the instance actually supports.
5de30b1c74todb2285b40d