UNPKG

@tiberriver256/mcp-server-azure-devops

Version:

Azure DevOps reference server for the Model Context Protocol (MCP)

208 lines 7.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdatePullRequestSchema = exports.AddPullRequestCommentSchema = exports.GetPullRequestCommentsSchema = exports.ListPullRequestsSchema = exports.CreatePullRequestSchema = void 0; const zod_1 = require("zod"); const environment_1 = require("../../utils/environment"); /** * Schema for creating a pull request */ exports.CreatePullRequestSchema = zod_1.z.object({ projectId: zod_1.z .string() .optional() .describe(`The ID or name of the project (Default: ${environment_1.defaultProject})`), organizationId: zod_1.z .string() .optional() .describe(`The ID or name of the organization (Default: ${environment_1.defaultOrg})`), repositoryId: zod_1.z.string().describe('The ID or name of the repository'), title: zod_1.z.string().describe('The title of the pull request'), description: zod_1.z .string() .optional() .describe('The description of the pull request (markdown is supported)'), sourceRefName: zod_1.z .string() .describe('The source branch name (e.g., refs/heads/feature-branch)'), targetRefName: zod_1.z .string() .describe('The target branch name (e.g., refs/heads/main)'), reviewers: zod_1.z .array(zod_1.z.string()) .optional() .describe('List of reviewer email addresses or IDs'), isDraft: zod_1.z .boolean() .optional() .describe('Whether the pull request should be created as a draft'), workItemRefs: zod_1.z .array(zod_1.z.number()) .optional() .describe('List of work item IDs to link to the pull request'), additionalProperties: zod_1.z .record(zod_1.z.string(), zod_1.z.any()) .optional() .describe('Additional properties to set on the pull request'), }); /** * Schema for listing pull requests */ exports.ListPullRequestsSchema = zod_1.z.object({ projectId: zod_1.z .string() .optional() .describe(`The ID or name of the project (Default: ${environment_1.defaultProject})`), organizationId: zod_1.z .string() .optional() .describe(`The ID or name of the organization (Default: ${environment_1.defaultOrg})`), repositoryId: zod_1.z.string().describe('The ID or name of the repository'), status: zod_1.z .enum(['all', 'active', 'completed', 'abandoned']) .optional() .describe('Filter by pull request status'), creatorId: zod_1.z .string() .optional() .describe('Filter by creator ID (must be a UUID string)'), reviewerId: zod_1.z .string() .optional() .describe('Filter by reviewer ID (must be a UUID string)'), sourceRefName: zod_1.z.string().optional().describe('Filter by source branch name'), targetRefName: zod_1.z.string().optional().describe('Filter by target branch name'), top: zod_1.z .number() .default(10) .describe('Maximum number of pull requests to return (default: 10)'), skip: zod_1.z .number() .optional() .describe('Number of pull requests to skip for pagination'), }); /** * Schema for getting pull request comments */ exports.GetPullRequestCommentsSchema = zod_1.z.object({ projectId: zod_1.z .string() .optional() .describe(`The ID or name of the project (Default: ${environment_1.defaultProject})`), organizationId: zod_1.z .string() .optional() .describe(`The ID or name of the organization (Default: ${environment_1.defaultOrg})`), repositoryId: zod_1.z.string().describe('The ID or name of the repository'), pullRequestId: zod_1.z.number().describe('The ID of the pull request'), threadId: zod_1.z .number() .optional() .describe('The ID of the specific thread to get comments from'), includeDeleted: zod_1.z .boolean() .optional() .describe('Whether to include deleted comments'), top: zod_1.z .number() .optional() .describe('Maximum number of threads/comments to return'), }); /** * Schema for adding a comment to a pull request */ exports.AddPullRequestCommentSchema = zod_1.z .object({ projectId: zod_1.z .string() .optional() .describe(`The ID or name of the project (Default: ${environment_1.defaultProject})`), organizationId: zod_1.z .string() .optional() .describe(`The ID or name of the organization (Default: ${environment_1.defaultOrg})`), repositoryId: zod_1.z.string().describe('The ID or name of the repository'), pullRequestId: zod_1.z.number().describe('The ID of the pull request'), content: zod_1.z.string().describe('The content of the comment in markdown'), threadId: zod_1.z .number() .optional() .describe('The ID of the thread to add the comment to'), parentCommentId: zod_1.z .number() .optional() .describe('ID of the parent comment when replying to an existing comment'), filePath: zod_1.z .string() .optional() .describe('The path of the file to comment on (for new thread on file)'), lineNumber: zod_1.z .number() .optional() .describe('The line number to comment on (for new thread on file)'), status: zod_1.z .enum(['active', 'fixed', 'wontFix', 'closed', 'pending']) .optional() .describe('The status to set for a new thread'), }) .superRefine((data, ctx) => { // If we're creating a new thread (no threadId), status is required if (!data.threadId && !data.status) { ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, message: 'Status is required when creating a new thread', path: ['status'], }); } }); /** * Schema for updating a pull request */ exports.UpdatePullRequestSchema = zod_1.z.object({ projectId: zod_1.z .string() .optional() .describe(`The ID or name of the project (Default: ${environment_1.defaultProject})`), organizationId: zod_1.z .string() .optional() .describe(`The ID or name of the organization (Default: ${environment_1.defaultOrg})`), repositoryId: zod_1.z.string().describe('The ID or name of the repository'), pullRequestId: zod_1.z.number().describe('The ID of the pull request to update'), title: zod_1.z .string() .optional() .describe('The updated title of the pull request'), description: zod_1.z .string() .optional() .describe('The updated description of the pull request'), status: zod_1.z .enum(['active', 'abandoned', 'completed']) .optional() .describe('The updated status of the pull request'), isDraft: zod_1.z .boolean() .optional() .describe('Whether the pull request should be marked as a draft (true) or unmarked (false)'), addWorkItemIds: zod_1.z .array(zod_1.z.number()) .optional() .describe('List of work item IDs to link to the pull request'), removeWorkItemIds: zod_1.z .array(zod_1.z.number()) .optional() .describe('List of work item IDs to unlink from the pull request'), addReviewers: zod_1.z .array(zod_1.z.string()) .optional() .describe('List of reviewer email addresses or IDs to add'), removeReviewers: zod_1.z .array(zod_1.z.string()) .optional() .describe('List of reviewer email addresses or IDs to remove'), additionalProperties: zod_1.z .record(zod_1.z.string(), zod_1.z.any()) .optional() .describe('Additional properties to update on the pull request'), }); //# sourceMappingURL=schemas.js.map