Fix/get issue 27 error handling and ci #28

Merged
Latte merged 4 commits from fix/get-issue-27-error-handling-and-ci into dev 2026-06-25 14:56:05 +00:00

4 Commits

Author SHA1 Message Date
Latte 4fb315b177 commit
docker / test (push) Successful in 29s
docker / lint (push) Successful in 37s
lint / lint (push) Successful in 41s
test / test (push) Successful in 42s
docker / test (pull_request) Successful in 32s
docker / lint (pull_request) Successful in 41s
lint / lint (pull_request) Successful in 39s
test / test (pull_request) Successful in 37s
docker / docker (push) Successful in 48s
docker / docker (pull_request) Successful in 45s
2026-06-25 16:53:41 +02:00
Latte 41749fd7b4 fix: harden get_issue parsing and surface real errors (#27); align CI image publish
get_issue raised 'NoneType' object is not iterable on issues whose
labels/assignees Gitea returns as null or with non-dict elements (the #13
class), which reached clients as an opaque JSON-RPC -32603 with no detail.

- read_tools: skip non-dict label/assignee entries in get_issue_tool
- server: detect a wrapped GiteaNotFoundError via the __cause__ chain and
  return 404 / JSON-RPC -32000 with a clear message; include the exception
  type name in masked internal errors so future masked failures are
  diagnosable without exposing messages or stack traces
- tests: cover non-dict collection elements and the not-found / typed-error
  responses
- ci: rewrite docker.yml to build, smoke-test and push the image to the
  Gitea container registry on merge to main/dev, matching the hiddenden.cafe
  pattern (only REGISTRY_TOKEN required)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 16:51:58 +02:00
Latte 026f3a654f Merge pull request 'feat: assign issues to milestones on create/update (#22)' (#25) from feat/issue-milestone-assignment into main
docker / test (push) Successful in 29s
docker / lint (push) Successful in 35s
lint / lint (push) Successful in 36s
test / test (push) Successful in 35s
docker / docker-test (push) Successful in 7s
docker / docker-publish (push) Successful in 5s
Reviewed-on: #25
2026-06-22 16:00:29 +00:00
Latte e08ba42697 feat: assign issues to milestones on create/update (#22)
docker / test (pull_request) Successful in 29s
docker / lint (pull_request) Successful in 35s
lint / lint (pull_request) Successful in 35s
test / test (pull_request) Successful in 35s
docker / docker-test (pull_request) Successful in 8s
docker / docker-publish (pull_request) Has been skipped
test / test (push) Successful in 23s
lint / lint (push) Successful in 23s
Add a `milestone` argument to `create_issue` and `update_issue` accepting
either a numeric milestone id or a title (resolved case-insensitively against
open and closed milestones, with a clear error for unknown titles). On
`update_issue`, `milestone: 0` clears the milestone. A BeforeValidator rejects
booleans so they are not silently coerced to an id.

Gitea Projects (Kanban boards) were investigated for #22 and are intentionally
left unsupported: Gitea 1.26.2 exposes no project endpoints in its REST API.
Documented this in api-reference.md and refreshed the (stale) write-mode tool
list to cover all 16 write tools.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 17:36:01 +02:00