UNPKG

@aashari/mcp-server-atlassian-bitbucket

Version:

Node.js/TypeScript MCP server for Atlassian Bitbucket. Enables AI systems (LLMs) to interact with workspaces, repositories, and pull requests via tools (list, get, comment, search). Connects AI directly to version control workflows through the standard MC

58 lines (55 loc) 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const atlassian_pullrequests_base_controller_js_1 = require("./atlassian.pullrequests.base.controller.js"); /** * Request changes on a pull request in Bitbucket * @param options - Options including workspace slug, repo slug, and pull request ID * @returns Promise with formatted rejection confirmation as Markdown content */ async function reject(options) { const methodLogger = atlassian_pullrequests_base_controller_js_1.Logger.forContext('controllers/atlassian.pullrequests.reject.controller.ts', 'reject'); try { // Apply defaults if needed (none for this operation) const mergedOptions = (0, atlassian_pullrequests_base_controller_js_1.applyDefaults)(options, {}); // Handle optional workspaceSlug - get default if not provided if (!mergedOptions.workspaceSlug) { methodLogger.debug('No workspace provided, fetching default workspace'); const defaultWorkspace = await (0, atlassian_pullrequests_base_controller_js_1.getDefaultWorkspace)(); if (!defaultWorkspace) { throw new Error('Could not determine a default workspace. Please provide a workspaceSlug.'); } mergedOptions.workspaceSlug = defaultWorkspace; methodLogger.debug(`Using default workspace: ${mergedOptions.workspaceSlug}`); } methodLogger.debug(`Requesting changes on pull request ${mergedOptions.pullRequestId} in ${mergedOptions.workspaceSlug}/${mergedOptions.repoSlug}`); // Prepare service parameters const serviceParams = { workspace: mergedOptions.workspaceSlug, repo_slug: mergedOptions.repoSlug, pull_request_id: mergedOptions.pullRequestId, }; // Call service to request changes on the pull request const participant = await atlassian_pullrequests_base_controller_js_1.atlassianPullRequestsService.reject(serviceParams); methodLogger.debug(`Successfully requested changes on pull request ${mergedOptions.pullRequestId}`); // Format the response const content = `# Changes Requested 🔄 **Pull Request ID:** ${mergedOptions.pullRequestId} **Repository:** \`${mergedOptions.workspaceSlug}/${mergedOptions.repoSlug}\` **Requested by:** ${participant.user.display_name || participant.user.nickname || 'Unknown User'} **Status:** ${participant.state} **Participated on:** ${new Date(participant.participated_on).toLocaleString()} Changes have been requested on this pull request. The author should address the feedback before the pull request can be merged.`; return { content: content, }; } catch (error) { throw (0, atlassian_pullrequests_base_controller_js_1.handleControllerError)(error, { entityType: 'Pull Request', operation: 'requesting changes on', source: 'controllers/atlassian.pullrequests.reject.controller.ts@reject', additionalInfo: { options }, }); } } exports.default = { reject };