Replace sprint MCP tools with board equivalents + add delete_project #36
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-mcp!36
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "35-replace-sprint-tools-with-board-equivalents"
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?
Summary
Sprint tables were replaced with board tables in pal-e-docs (PR #147). This removes all 10 sprint tools and replaces them with 11 board tools that call the boards REST API directly via the SDK's low-level HTTP helpers (
get_sdk().get/post/patch/delete), since the SDK does not yet have board methods. Also addsdelete_projecttoprojects.py.Changes
src/pal_e_docs_mcp/tools/sprints.py— all 10 sprint tools removed (create_sprint, get_sprint, list_sprints, update_sprint, delete_sprint, add_sprint_item, move_sprint_item, remove_sprint_item, get_sprint_board, get_backlog, bulk_move_items)src/pal_e_docs_mcp/tools/boards.py— 11 board tools using raw HTTP via SDK helpers: list_boards, create_board, get_board, update_board, delete_board, list_board_items, create_board_item, update_board_item, remove_board_item, bulk_move_board_items, get_backlogsrc/pal_e_docs_mcp/tools/projects.py— addeddelete_projecttool (callsDELETE /projects/{slug})src/pal_e_docs_mcp/tools/__init__.py— replacedsprintsimport withboardstests/conftest.py— replaced sprints_mod patch with boards_mod + projects_mod patchestests/test_param_alignment.py— replaced sprint test classes with board equivalents + added TestDeleteProjectTest Plan
pytest tests/ -v)ruff check .andruff format .cleanReview Checklist
Related
PR #36 Review
BLOCKERS
None.
NITS
bulk_move_board_itemsdroppedpointsfrom the description -- The oldbulk_move_itemsdocumented optional'points' (int)in each move object. The newbulk_move_board_itemsdescription only mentions'id', 'column', 'position'. This is non-blocking because the code passes through whatever JSON the user provides (it just doesjson.loads(items)and sends it), but if the boards API supportspointsin bulk moves, the description should document it. Issue #34 already tracks verifying this.update_board_itemstill cannot clear points/labels to null -- Same limitation as the old sprint tools (Issue #33). Passingpoints=Noneorlabels=Noneomits the field from the body rather than sendingnull. Not a regression, and Issue #33 already tracks it.No plan slug in Related section -- The PR body's Related section references
Closes #35and the upstream pal-e-docs PR #147, but does not reference a plan slug. This is a minor SOP gap. If this work falls underplan-pal-e-docsor another plan, it should be referenced.SOP COMPLIANCE
35-replace-sprint-tools-with-board-equivalents)TestDeleteProjectadded).envfiles, or credentials committedCloses #35present in PR bodyCode Quality Notes
Annotated[..., Field(description=...)]pattern consistently.GET/POST /boards,GET/PATCH/DELETE /boards/{slug},GET/POST /boards/{slug}/items,PATCH/DELETE /boards/{slug}/items/{item_id},PATCH /boards/{slug}/items/bulk,GET /boards/backlog/items.get_sdk().get/post/patch/deleteis the correct approach since the SDK does not yet have board methods. The SDK's_BaseClientexposes these methods (verified inclient.pylines 110-157).conftest.pycorrectly addsboards_modandprojects_modpatches (projects_mod is newly needed fordelete_projectwhich calls the low-levelget_sdk().delete()).backlog, todo, next_up, in_progress, needs_approval, qa, done.plan, phase, issue, todo, repo, project.sprints.pyfully deleted with zero residual imports anywhere in source or tests.VERDICT: APPROVED