feat: forgejo issue write ops — create with labels, comment, comments, close zombie check (#16)

Merged
FO
1mo ago
+873-20

Closes #16 · replaces #19 (closed when its stacked base was deleted)

  • forgejo_issue_create: label names → ids (repo + org) before POST; unknown label aborts, nothing created
  • forgejo_issue_comment / forgejo_issue_comments (one line per comment, newest N)
  • forgejo_issue_close: comment arg now optional; reports PRs referencing the issue
  • fix (found in wave): getForgejoRepo parsed https remotes as host/owner/repo — every forgejo_* tool failed on https origins; replaced by repoFromRemoteUrl
  • 22 → 25 tools, README/AGENTS updated, 0.3.0

Gates: tsc clean · 279 tests pass · build ok · local review 95% (after fix commit 57e76ef: no partial pages, org-label errors surface, zombie scan 500 PRs, error-path tests)


Summary by cubic

Adds Forgejo issue write tools — create with labels, comment, and list comments — plus a zombie check on close, and fixes the remote parsing bug that broke every forgejo_* tool on https origins.

  • forgejo_issue_create resolves label names against repo and org labels before POSTing; unknown labels abort with nothing created.
  • forgejo_issue_comments shows one line per comment with newest N; forgejo_issue_close makes the comment optional and reports linked PRs referencing the issue (scans the 500 most recently updated).
  • repoFromRemoteUrl handles https, ssh, scp-style, and subpath remotes. Pagination and label failures now surface: a failed page fails the whole list call, and only a 404 on org labels counts as "no org".