feat: support resolving merge request notes

This commit is contained in:
Nicholas Crum
2025-05-13 14:54:05 -06:00
parent 08ab1357a0
commit bde83c0a91
3 changed files with 16 additions and 9 deletions

View File

@ -1027,7 +1027,7 @@ async function updateMergeRequestNote(
mergeRequestIid: number,
discussionId: string,
noteId: number,
body: string,
body?: string,
resolved?: boolean
): Promise<GitLabDiscussionNote> {
projectId = decodeURIComponent(projectId); // Decode project ID
@ -1037,8 +1037,11 @@ async function updateMergeRequestNote(
)}/merge_requests/${mergeRequestIid}/discussions/${discussionId}/notes/${noteId}`
);
const payload: { body: string; resolved?: boolean } = { body };
if (resolved !== undefined) {
// Only one of body or resolved can be sent according to GitLab API
const payload: { body?: string; resolved?: boolean } = {};
if (body !== undefined) {
payload.body = body;
} else if (resolved !== undefined) {
payload.resolved = resolved;
}
@ -2270,8 +2273,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
args.merge_request_iid,
args.discussion_id,
args.note_id,
args.body,
args.resolved // Pass resolved if provided
args.body, // Now optional
args.resolved // Now one of body or resolved must be provided, not both
);
return {
content: [{ type: "text", text: JSON.stringify(note, null, 2) }],