feat(types): Add GitLab Resource Event serde types with deserialization tests
Adds six new types for deserializing responses from GitLab's three Resource Events API endpoints (state, label, milestone): - GitLabStateEvent: State transitions with optional user, source_commit, and source_merge_request reference - GitLabLabelEvent: Label add/remove events with nested GitLabLabelRef - GitLabMilestoneEvent: Milestone assignment changes with nested GitLabMilestoneRef - GitLabMergeRequestRef: Lightweight MR reference (iid, title, web_url) - GitLabLabelRef: Label metadata (id, name, color, description) - GitLabMilestoneRef: Milestone metadata (id, iid, title) All types derive Deserialize + Serialize and use Option<T> for nullable fields (user, source_commit, color, description) to match GitLab's API contract where these fields may be null. Includes 8 new test cases covering: - State events with/without user, with/without source_merge_request - Label events for add and remove actions, including null color handling - Milestone event deserialization - Standalone ref type deserialization (MR, label, milestone) Uses r##"..."## raw string delimiters where JSON contains hex color codes (#FF0000) that would conflict with r#"..."# delimiters. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ pub use transformers::{
|
||||
transform_discussion, transform_issue, transform_notes,
|
||||
};
|
||||
pub use types::{
|
||||
GitLabAuthor, GitLabDiscussion, GitLabIssue, GitLabNote, GitLabNotePosition, GitLabProject,
|
||||
GitLabUser, GitLabVersion,
|
||||
GitLabAuthor, GitLabDiscussion, GitLabIssue, GitLabLabelEvent, GitLabLabelRef,
|
||||
GitLabMergeRequestRef, GitLabMilestoneEvent, GitLabMilestoneRef, GitLabNote,
|
||||
GitLabNotePosition, GitLabProject, GitLabStateEvent, GitLabUser, GitLabVersion,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user