diff --git a/lib/models/github.dart b/lib/models/github.dart index a007396..6c84e87 100644 --- a/lib/models/github.dart +++ b/lib/models/github.dart @@ -59,6 +59,7 @@ class GithubEventPayload { GithubEventIssue issue; GithubEventIssue pullRequest; GithubEventComment comment; + GithubEventRelease release; String action; String ref; String before; @@ -92,7 +93,7 @@ class GithubEventIssue { _$GithubEventIssueFromJson(json); } -@JsonSerializable() +@JsonSerializable(fieldRename: FieldRename.snake) class GithubEventComment { String body; GithubEventUser user; @@ -103,7 +104,7 @@ class GithubEventComment { _$GithubEventCommentFromJson(json); } -@JsonSerializable() +@JsonSerializable(fieldRename: FieldRename.snake) class GithubEventCommit { String sha; String message; @@ -114,6 +115,17 @@ class GithubEventCommit { _$GithubEventCommitFromJson(json); } +@JsonSerializable(fieldRename: FieldRename.snake) +class GithubEventRelease { + String htmlUrl; + String tagName; + + GithubEventRelease(); + + factory GithubEventRelease.fromJson(Map json) => + _$GithubEventReleaseFromJson(json); +} + @JsonSerializable() class GithubTrendingItem { String author; diff --git a/lib/models/github.g.dart b/lib/models/github.g.dart index 4d753d5..e39dc54 100644 --- a/lib/models/github.g.dart +++ b/lib/models/github.g.dart @@ -65,6 +65,9 @@ GithubEventPayload _$GithubEventPayloadFromJson(Map json) { ..comment = json['comment'] == null ? null : GithubEventComment.fromJson(json['comment'] as Map) + ..release = json['release'] == null + ? null + : GithubEventRelease.fromJson(json['release'] as Map) ..action = json['action'] as String ..ref = json['ref'] as String ..before = json['before'] as String @@ -82,6 +85,7 @@ Map _$GithubEventPayloadToJson(GithubEventPayload instance) => 'issue': instance.issue, 'pull_request': instance.pullRequest, 'comment': instance.comment, + 'release': instance.release, 'action': instance.action, 'ref': instance.ref, 'before': instance.before, @@ -146,6 +150,18 @@ Map _$GithubEventCommitToJson(GithubEventCommit instance) => 'message': instance.message, }; +GithubEventRelease _$GithubEventReleaseFromJson(Map json) { + return GithubEventRelease() + ..htmlUrl = json['html_url'] as String + ..tagName = json['tag_name'] as String; +} + +Map _$GithubEventReleaseToJson(GithubEventRelease instance) => + { + 'html_url': instance.htmlUrl, + 'tag_name': instance.tagName, + }; + GithubTrendingItem _$GithubTrendingItemFromJson(Map json) { return GithubTrendingItem() ..author = json['author'] as String diff --git a/lib/widgets/event_item.dart b/lib/widgets/event_item.dart index 37529bf..5c977db 100644 --- a/lib/widgets/event_item.dart +++ b/lib/widgets/event_item.dart @@ -367,6 +367,16 @@ class EventItem extends StatelessWidget { card: _buildCommitsCard(context), ); case 'ReleaseEvent': + return _buildItem( + context: context, + spans: [ + TextSpan(text: ' released '), + _buildLinkSpan( + context, e.payload.release.tagName, e.payload.release.htmlUrl), + TextSpan(text: ' at '), + _buildRepo(context) + ], + ); case 'RepositoryEvent': case 'RepositoryImportEvent': case 'RepositoryVulnerabilityAlertEvent':