Conversation
… tools Move read-only actions to dedicated CQRS Query tools for clean separation: - manage_webhook `read` action → browse_webhooks `get` action - manage_integration `get` action → browse_integrations `get` action - Rename list_webhooks → browse_webhooks, list_integrations → browse_integrations - browse_* tools now use discriminated union schemas with list/get actions - manage_* tools only contain write operations (create/update/delete/test) - Read-only mode filtering simplified: only browse_* tools exposed Closes #134
📊 Test Coverage ReportOverall Coverage: 91.51% Coverage Details
Coverage Report: View detailed coverage report
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
This PR refactors read-only actions from manage_* tools to browse_* tools for clean CQRS separation. The changes rename tools (list_webhooks → browse_webhooks, list_integrations → browse_integrations) and move read-only actions (manage_webhook action read → browse_webhooks action get, manage_integration action get → browse_integrations action get). Both browse tools now use discriminated union schemas with list and get actions, while manage tools contain only write operations (create, update, delete, test for webhooks; update, disable for integrations).
Changes:
- Webhooks and integrations schemas refactored to move read actions to browse_* tools
- Tool names updated throughout codebase (registry, tests, error handlers, CLI tools)
- Read-only mode filtering simplified - only browse_* tools are exposed in read-only mode
- Discriminated union schemas now use
actionas discriminator instead ofscope
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/entities/webhooks/schema.ts | Removed read action from ManageWebhookSchema |
| src/entities/webhooks/schema-readonly.ts | Converted to BrowseWebhooksSchema with list and get actions |
| src/entities/webhooks/registry.ts | Renamed tool, moved read handler to browse_webhooks as get, updated read-only filtering |
| src/entities/webhooks/index.ts | Removed backward compatibility exports |
| src/entities/integrations/schema.ts | Removed get action from ManageIntegrationSchema |
| src/entities/integrations/schema-readonly.ts | Converted to BrowseIntegrationsSchema with list and get actions |
| src/entities/integrations/registry.ts | Renamed tool, moved get handler to browse_integrations, updated read-only filtering |
| src/entities/integrations/index.ts | Removed backward compatibility exports |
| src/utils/error-handler.ts | Updated tool name from list_webhooks to browse_webhooks |
| src/services/ToolAvailability.ts | Updated tool names in availability configurations |
| src/cli/list-tools.ts | Updated tool names in CLI entity and feature mappings |
| tests/unit/entities/webhooks/registry.test.ts | Updated all test tool names and removed obsolete read-only mode tests |
| tests/unit/entities/integrations/registry.test.ts | Updated all test tool names and removed obsolete read-only mode tests |
| tests/unit/entities/webhooks/schema.test.ts | Test files not in diff |
| tests/unit/entities/integrations/schema.test.ts | Updated tests to reflect removal of get action |
| tests/unit/entities/integrations/schema-readonly.test.ts | Converted to test BrowseIntegrationsSchema with list and get actions |
| tests/unit/utils/error-handler.test.ts | Updated tool name reference |
| tests/integration/schemas/webhooks.test.ts | Updated to use browse_webhooks for get action |
| tests/integration/schemas/integrations.test.ts | Updated to use browse_integrations for get action |
|
🎉 This PR is included in version 6.30.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Summary
manage_webhookactionread→browse_webhooksactiongetmanage_integrationactionget→browse_integrationsactiongetlist_webhooks→browse_webhooks,list_integrations→browse_integrationsfor consistency with existingbrowse_*naming conventionbrowse_*tools now use discriminated union schemas (list+getactions)manage_*tools only contain write operations, simplifying read-only mode filteringmanage_contextkept as-is (session-only state, no GitLab writes)Closes #134
Test plan