feat(gitlab): GitLab Merge Request Notes and Discussions: Full CRUD + Thread Resolution #260
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This change adds full CRUD support for both Merge Request (MR) Notes and Discussion Notes, plus the ability to resolve/unresolve MR discussion threads. It also clarifies naming to distinguish MR-level notes from discussion-thread notes.
Key Changes
New/Updated Schemas
CreateMergeRequestDiscussionNoteSchema,DeleteMergeRequestNoteSchema,UpdateMergeRequestDiscussionNoteSchema,GetMergeRequestNotesSchema,GetMergeRequestNoteSchema,DeleteMergeRequestDiscussionNoteSchema,ResolveMergeRequestThreadSchema.New Tools
resolve_merge_request_threadcreate_merge_request_discussion_noteupdate_merge_request_discussion_notedelete_merge_request_discussion_notecreate_merge_request_noteupdate_merge_request_notedelete_merge_request_noteget_merge_request_noteget_merge_request_notesNew/Renamed Functions
deleteMergeRequestDiscussionNotecreateMergeRequestNotedeleteMergeRequestNotegetMergeRequestNotegetMergeRequestNotesupdateMergeRequestNote(MR-level)resolveMergeRequestThreadupdateMergeRequestNote→updateMergeRequestDiscussionNote(discussion note)createMergeRequestNote(discussion) →createMergeRequestDiscussionNoteRequest Routing Updates
resolve_merge_request_threadcreate_merge_request_discussion_noteupdate_merge_request_discussion_notedelete_merge_request_discussion_notecreate_merge_request_noteupdate_merge_request_notedelete_merge_request_noteget_merge_request_noteget_merge_request_notesBreaking Changes
update_merge_request_noteupdated discussion notes. Now, it updates MR-level notes.update_merge_request_discussion_notefor discussion notes going forward.update_merge_request_discussion_note.update_merge_request_note.API Usage (Examples)
create_merge_request_note { project_id, merge_request_iid, body }get_merge_request_notes { project_id, merge_request_iid, sort?, order_by? }get_merge_request_noteupdate_merge_request_notedelete_merge_request_notecreate_merge_request_discussion_noteupdate_merge_request_discussion_notedelete_merge_request_discussion_noteresolve_merge_request_thread { project_id, merge_request_iid, discussion_id, resolved? }Testing Recommendations
resolve_merge_request_threadtoggles resolution state correctly.Affected Files
index.ts(tool registration, request routing, and core GitLab API interactions)