Skip to content

feat: add issue_move tool to move issues between queues#25

Open
bezgubov wants to merge 3 commits intoaikts:mainfrom
bezgubov:feat/issue-move
Open

feat: add issue_move tool to move issues between queues#25
bezgubov wants to merge 3 commits intoaikts:mainfrom
bezgubov:feat/issue-move

Conversation

@bezgubov
Copy link
Copy Markdown

@bezgubov bezgubov commented Apr 4, 2026

Summary

  • Adds a new issue_move MCP tool that moves an issue to a different queue using the existing Yandex Tracker API endpoint POST /v3/issues/{id}/_move?queue=<queueKey>
  • The issue receives a new key in the target queue (e.g. TASKS-1NEWQUEUE-42)
  • Respects queue access restrictions (TRACKER_LIMIT_QUEUES) and read-only mode

Changes

  • IssueProtocol — new issue_move method signature
  • TrackerClient — HTTP implementation
  • Caching client — passthrough wrapper (write operation, not cached)
  • issue_write.py — MCP tool registration
  • Tests — success case, queue restriction, read-only mode

Test plan

  • uv run pytest tests/ — 480 passed
  • mypy mcp_tracker/ — no issues
  • ruff check — all checks passed

🤖 Generated with Claude Code

bezgubov-sports and others added 3 commits April 4, 2026 10:14
Implements the `issue_move` MCP tool using the existing
`POST /v3/issues/{id}/_move?queue=<queueKey>` Yandex Tracker API endpoint.

- Add `issue_move` method signature to `IssueProtocol`
- Implement HTTP call in `TrackerClient`
- Add passthrough wrapper in caching client (write op, no cache)
- Register `issue_move` MCP tool in `issue_write.py`
- Add tests: success, queue restriction, read-only mode
- Add tool name to `WRITE_TOOL_NAMES` in server creation tests

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- HTTP-level tests: success, query param validation, 404 handling, auth headers
- Caching wrapper test: verifies passthrough to original protocol

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants