Problem
In _reply_to_discussion (line 784) and _resolve_discussion (line 828), discussion_id is interpolated directly into API URL paths without any format validation:
f"projects/:fullpath/merge_requests/{iid}/discussions/{discussion_id}/notes"
Impact
Malformed IDs (empty string, special characters, extremely long values) produce confusing API errors instead of clear validation failures.
Fix Direction
Add validate_discussion_id() that checks for non-empty hex/alphanumeric format matching GitLab discussion ID patterns.
Acceptance Criteria
Identified by Copilot AI agent
Problem
In
_reply_to_discussion(line 784) and_resolve_discussion(line 828),discussion_idis interpolated directly into API URL paths without any format validation:f"projects/:fullpath/merge_requests/{iid}/discussions/{discussion_id}/notes"Impact
Malformed IDs (empty string, special characters, extremely long values) produce confusing API errors instead of clear validation failures.
Fix Direction
Add
validate_discussion_id()that checks for non-empty hex/alphanumeric format matching GitLab discussion ID patterns.Acceptance Criteria
validate_discussion_idfunction_reply_to_discussionand_resolve_discussionvalidation_errorfor invalid IDsIdentified by Copilot AI agent