release: v0.2.0 — local stdio package, safe full-API coverage & resource-type authz #63
Reference in New Issue
Block a user
Delete Branch "dev"
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?
Release
dev → main— v0.2.0Promotes the accumulated
devwork tomainso av0.2.0tag can be cut. Taggingv0.2.0onmaintriggerspublish.yml, which builds the Python package withuvand publishes it to the Gitea PyPI registry.Highlights
Dual transport on one shared core
uvx aegis-gitea-mcp— single-user, authenticates with a Gitea PAT, no OAuth, no web stack.Safe full-API coverage
gitea_requestreaches the long tail of the Gitea API, gated by: a deterministic write classifier (render-only POSTs may only be downgraded to reads, never upgraded), a known-path gate (unknown prefix → deny), and the admin/credential denylist.Resource-type-aware authorization (fail-closed)
WRITE_MODE. Org membership and site-admin are verified against Gitea; anything unverifiable is denied. Admin is default-deny.Packaging & CI
[server]extra; console scriptsaegis-gitea-mcp(stdio) andaegis-gitea-mcp-server(guarded). Version0.2.0.publish.yml: tag-gateduv build+ publish to the Gitea registry, reusing the existingREGISTRY_TOKENsecret.main.⚠️ Breaking (packaging)
pip install aegis-gitea-mcpis now core-only and no longer pulls in FastAPI/uvicorn. Anyone running the HTTP server must install the extra:pip install 'aegis-gitea-mcp[server]'(and use theaegis-gitea-mcp-serverentry point). Docker images are unaffected.Verification
uv buildproduces sdist + wheel; the core wheel installs without FastAPI and runs the stdio console script.After merge — cut the release
Scope
dev→main, 20 commits. Supersedes the closed #61 (closed unmerged; this is the clean replacement with full notes + labels).