@gohcltech/bitbucket-mcp
Version:
Bitbucket integration for Claude via Model Context Protocol
217 lines • 7 kB
TypeScript
/**
* @fileoverview Consolidated issue management tool for v2.1.
*
* Replaces v2.0 tools: list_issues, get_issue, create_issue, update_issue, delete_issue,
* search_issues, get_issue_changes, get_issue_watchers, list_comments, get_comment,
* add_comment, update_comment, delete_comment, list_components, get_component,
* list_milestones, get_milestone, list_versions, get_version
* Consolidates 19 tools into 1 with action-based routing.
*/
import { Tool } from '@modelcontextprotocol/sdk/types.js';
import { ConsolidatedBaseTool } from './consolidated-base-tool.js';
import { ToolHandler } from './base-tool.js';
import { ToolCategory } from '../auth-capabilities.js';
import { IssueAction } from '../types/consolidated-tools.js';
/**
* Consolidated issue management tool for v2.1.
*
* Provides unified issue operations with action-based routing.
*
* **Replaces v2.0 tools:**
* - list_issues, get_issue, create_issue, update_issue, delete_issue
* - search_issues, get_issue_changes, get_issue_watchers
* - list_comments, get_comment, add_comment, update_comment, delete_comment
* - list_components, get_component, list_milestones, get_milestone
* - list_versions, get_version
*
* **Actions:**
* - `list`: List issues with optional filtering and sorting
* - `get`: Get detailed issue information
* - `create`: Create a new issue
* - `update`: Update issue status and properties
* - `delete`: Delete an issue
* - `search`: Search issues by text query
* - `get_changes`: Get issue change history
* - `get_watchers`: Get users watching an issue
* - `list_comments`: List comments for an issue
* - `get_comment`: Get a specific comment
* - `add_comment`: Add a comment to an issue
* - `update_comment`: Update an existing comment
* - `delete_comment`: Delete a comment
* - `list_components`: List repository components
* - `get_component`: Get component details
* - `list_milestones`: List repository milestones
* - `get_milestone`: Get milestone details
* - `list_versions`: List repository versions
* - `get_version`: Get version details
*
* @example
* ```typescript
* // List open issues
* const response = await tool.execute({
* action: 'list',
* workspaceSlug: 'my-workspace',
* repoSlug: 'my-repo',
* state: 'open'
* });
*
* // Create a new issue
* const response = await tool.execute({
* action: 'create',
* workspaceSlug: 'my-workspace',
* repoSlug: 'my-repo',
* title: 'Bug in authentication',
* content: 'Users unable to login with SSO',
* kind: 'bug',
* priority: 'critical'
* });
*
* // Search for issues
* const response = await tool.execute({
* action: 'search',
* workspaceSlug: 'my-workspace',
* repoSlug: 'my-repo',
* query: 'authentication error'
* });
* ```
*/
export declare class ManageIssuesTool extends ConsolidatedBaseTool<IssueAction> {
getTools(): Tool[];
getToolCategory(): ToolCategory;
protected getActionHandler(action: IssueAction): ToolHandler | null;
protected validateActionParams(action: IssueAction, args: Record<string, any>): void;
/**
* Handler for listing issues in a repository.
*
* @param args - Tool arguments (workspace, repo, optional filters)
* @returns List of issues with metadata
*/
private handleListIssues;
/**
* Handler for getting detailed information about an issue.
*
* @param args - Tool arguments (must include issueId)
* @returns Detailed issue information
*/
private handleGetIssue;
/**
* Handler for creating a new issue.
*
* @param args - Tool arguments (must include title)
* @returns Created issue information
*/
private handleCreateIssue;
/**
* Handler for updating an issue.
*
* @param args - Tool arguments (must include issueId)
* @returns Updated issue information
*/
private handleUpdateIssue;
/**
* Handler for deleting an issue.
*
* @param args - Tool arguments (must include issueId)
* @returns Deletion confirmation
*/
private handleDeleteIssue;
/**
* Handler for searching issues by text query.
*
* @param args - Tool arguments (must include query)
* @returns Search results
*/
private handleSearchIssues;
/**
* Handler for getting issue change history.
*
* @param args - Tool arguments (must include issueId)
* @returns Issue change history
*/
private handleGetIssueChanges;
/**
* Handler for getting issue watchers.
*
* @param args - Tool arguments (must include issueId)
* @returns List of users watching the issue
*/
private handleGetIssueWatchers;
/**
* Handler for listing comments for an issue.
*
* @param args - Tool arguments (must include issueId)
* @returns List of comments
*/
private handleListComments;
/**
* Handler for getting a specific comment.
*
* @param args - Tool arguments (must include issueId and commentId)
* @returns Comment details
*/
private handleGetComment;
/**
* Handler for adding a comment to an issue.
*
* @param args - Tool arguments (must include issueId and content)
* @returns Created comment
*/
private handleAddComment;
/**
* Handler for updating a comment.
*
* @param args - Tool arguments (must include issueId, commentId, and content)
* @returns Updated comment
*/
private handleUpdateComment;
/**
* Handler for deleting a comment.
*
* @param args - Tool arguments (must include issueId and commentId)
* @returns Deletion confirmation
*/
private handleDeleteComment;
/**
* Handler for listing repository components.
*
* @param args - Tool arguments (workspace and repo)
* @returns List of components
*/
private handleListComponents;
/**
* Handler for getting a specific component.
*
* @param args - Tool arguments (must include componentId)
* @returns Component details
*/
private handleGetComponent;
/**
* Handler for listing repository milestones.
*
* @param args - Tool arguments (workspace and repo, optional state filter)
* @returns List of milestones
*/
private handleListMilestones;
/**
* Handler for getting a specific milestone.
*
* @param args - Tool arguments (must include milestoneId)
* @returns Milestone details
*/
private handleGetMilestone;
/**
* Handler for listing repository versions.
*
* @param args - Tool arguments (workspace and repo, optional released filter)
* @returns List of versions
*/
private handleListVersions;
/**
* Handler for getting a specific version.
*
* @param args - Tool arguments (must include versionId)
* @returns Version details
*/
private handleGetVersion;
}
//# sourceMappingURL=issue-tools.d.ts.map