v0.9.1
Independent adversarial review of #52 (v0.8.0) caught a schema/implementation mismatch: the advertised InputSchema marked "labels" as required, but Call already treated labels/label_ids as either-or. An MCP client that validates arguments against the advertised schema before dispatch would reject a label_ids-only call as invalid even though the code was written to serve it — and that path had zero test coverage either way. Dropped "labels" from the required array (owner/repo/number remain required); runtime validation already correctly requires at least one of labels/label_ids. Added TestIssueLabelAppliesByIDOnly (asserts ListLabels is never called when IDs are already known) and a schema-lock test for the fixed contract. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(issue_label): schema wrongly required labels, blocking label_ids-only callers (#52 review finding)
gitea-mcp
Streamable HTTP MCP service exposing Gitea repo operations to Claude apps.
See ~/dev/AI/infra/docs/superpowers/specs/2026-05-04-gitea-mcp-gitops-workflow-design.md.
Quickstart
task setup:hooks # installs .githooks/pre-push — runs task check before every push
task check # context sync + lint + test + vet
task build # produces bin/gitea-mcp
This repo uses Trunk-Based Development. Commit directly to main. The pre-push
hook enforces the quality gate locally; CI re-runs task check on every push.
Languages
Go
98.3%
Shell
1.5%
Dockerfile
0.2%