forgejo-mcp/operation/resource
Christoph Görn 6c7e0fe53d
feat: ✨ label CRUD tools and resource-templates (closes #190)
- Repo-label CRUD: create_repo_label, edit_repo_label, delete_repo_label,
  get_repo_label via forgejo-sdk/v3
- Org-label CRUD: create_org_label, edit_org_label, delete_org_label,
  get_org_label via pkg/forgejo DoJSON
- Safe delete: delete_mode=safe (default) refuses in-use labels with count;
  delete_mode=force overrides; org count best-effort over visible repos
- Color normalization: accepts rrggbb or #rrggbb, 6-digit only, rejects
  invalid with error (3-digit shorthand intentionally excluded)
- Resource templates: forgejo://repo/{o}/{r}/label/{id} (single),
  forgejo://repo/{o}/{r}/labels (bounded list, EmbeddedListCap ceiling),
  forgejo://org/{org}/labels (bounded list); all use operation/resource helpers
- URI parsers: ParseLabel, ParseLabels, ParseOrgLabels added to resource/parse.go
- Unit tests covering happy paths, color normalization, partial PATCH,
  empty-edit reject, delete in-use/force/404, resource over-cap truncation
2026-06-10 08:27:33 +02:00
..
bound.go feat: ✨ MCP resource templates — slices 1+2 (core framework + commit) 2026-05-28 14:31:55 +02:00
bound_test.go feat: ✨ MCP resource templates — slices 1+2 (core framework + commit) 2026-05-28 14:31:55 +02:00
doc.go feat: ✨ MCP resource templates — slices 1+2 (core framework + commit) 2026-05-28 14:31:55 +02:00
errors.go refactor: 🏗️ classify parse errors via sentinel ErrInvalidParams (-32602) 2026-05-28 16:08:59 +02:00
errors_test.go refactor: 🏗️ classify parse errors via sentinel ErrInvalidParams (-32602) 2026-05-28 16:08:59 +02:00
parse.go feat: ✨ label CRUD tools and resource-templates (closes #190) 2026-06-10 08:27:33 +02:00
parse_branchprotection_test.go feat: ✨ branch protection management — CRUD tools + forgejo:// resources (uc6) 2026-06-02 16:22:24 +02:00
parse_test.go refactor: 🏗️ classify parse errors via sentinel ErrInvalidParams (-32602) 2026-05-28 16:08:59 +02:00
register.go feat: ✨ MCP resource templates — slices 1+2 (core framework + commit) 2026-05-28 14:31:55 +02:00