This PR implements support for resolving issue discussion threads via the update_issue_note tool, addressing the feature request in issue #[issue-number].
-
schemas.ts (11 lines changed)
- Updated
UpdateIssueNoteSchemato include optionalresolved: booleanfield - Added validation rules to ensure API compliance
- Updated
-
index.ts (15 lines changed)
- Updated
updateIssueNotefunction to accept optionalbodyandresolvedparameters - Modified payload construction to handle the new parameter
- Updated tool handler to pass the
resolvedparameter
- Updated
-
docs/resolve-issue-thread.md (195 lines)
- Comprehensive documentation with usage examples
- Parameter reference and validation rules
- Use cases and workflow examples
-
test-resolve-issue-note.ts (153 lines)
- Test demonstrations for resolve functionality
- Test demonstrations for unresolve functionality
- Backward compatibility test for body updates
- Implements GitLab API:
PUT /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id - Supports the
resolvedparameter as documented at https://docs.gitlab.com/api/discussions/#resolve-an-issue-thread - Enforces GitLab API requirement that only one of
bodyorresolvedcan be provided per request
- At least one of
bodyorresolvedmust be provided - Both parameters cannot be provided simultaneously (per GitLab API)
- Follows the exact same pattern as
update_merge_request_discussion_note - Maintains backward compatibility with existing functionality
- Consistent parameter naming and error messages
✅ TypeScript Compilation: Build successful with no errors ✅ Code Review: Passed with no comments ✅ Security Scan: 0 vulnerabilities found (CodeQL) ✅ Documentation: Comprehensive docs and examples provided ✅ Test Examples: Demonstration tests included
{
"name": "update_issue_note",
"arguments": {
"project_id": "mygroup/myproject",
"issue_iid": "123",
"discussion_id": "abc123",
"note_id": "456",
"resolved": true
}
}{
"name": "update_issue_note",
"arguments": {
"project_id": "mygroup/myproject",
"issue_iid": "123",
"discussion_id": "abc123",
"note_id": "456",
"resolved": false
}
}{
"name": "update_issue_note",
"arguments": {
"project_id": "mygroup/myproject",
"issue_iid": "123",
"discussion_id": "abc123",
"note_id": "456",
"body": "Updated content"
}
}None. The implementation is fully backward compatible.
- Users can now mark issue discussion threads as resolved or unresolved
- Matches functionality already available for merge request discussions
- Improved issue management workflow
- Better tracking of discussion status
- Consistency with merge request discussion handling
- Enables automation of issue thread resolution
schemas.ts: Schema updates and validationindex.ts: Function implementation and tool handler
docs/resolve-issue-thread.md: Feature documentationtest-resolve-issue-note.ts: Test demonstrations
- 4 files changed
- 369 insertions (+), 5 deletions (-)
- Net: +364 lines
- Code follows existing patterns
- TypeScript compilation successful
- Code review passed
- Security scan passed
- Documentation complete
- Test examples provided
- Backward compatibility maintained
- API compliance verified
Implements: [Issue tracking request for resolve support on issue threads]
https://docs.gitlab.com/api/discussions/#resolve-an-issue-thread