import 'package:json_annotation/json_annotation.dart'; part 'gogs.g.dart'; @JsonSerializable(fieldRename: FieldRename.snake) class GogsUser { int id; String username; String fullName; String avatarUrl; String email; GogsUser(); factory GogsUser.fromJson(Map json) => _$GogsUserFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsRepository { int id; String fullName; bool private; GogsUser owner; String htmlUrl; String description; String defaultBranch; DateTime createdAt; DateTime updatedAt; int starsCount; int forksCount; String website; int watchersCount; GogsRepository(); factory GogsRepository.fromJson(Map json) => _$GogsRepositoryFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsOrg { int id; String username; String fullName; String avatarUrl; String description; String location; String website; GogsOrg(); factory GogsOrg.fromJson(Map json) => _$GogsOrgFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsTree { String type; String name; String path; int size; String downloadUrl; GogsTree(); factory GogsTree.fromJson(Map json) => _$GogsTreeFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsBlob extends GogsTree { String content; GogsBlob(); factory GogsBlob.fromJson(Map json) => _$GogsBlobFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsBranch { String name; GogsBranch(); factory GogsBranch.fromJson(Map json) => _$GogsBranchFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsCommit { GogsUser author; GogsCommitDetail commit; String sha; String htmlUrl; GogsCommit(); factory GogsCommit.fromJson(Map json) => _$GogsCommitFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsCommitDetail { String message; GogsCommitAuthor author; GogsCommitAuthor committer; GogsCommitDetail(); factory GogsCommitDetail.fromJson(Map json) => _$GogsCommitDetailFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsCommitAuthor { String name; String email; DateTime date; GogsCommitAuthor(); factory GogsCommitAuthor.fromJson(Map json) => _$GogsCommitAuthorFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsIssue { int number; String state; String title; String body; GogsUser user; List labels; DateTime createdAt; DateTime updatedAt; int comments; GogsIssue(); factory GogsIssue.fromJson(Map json) => _$GogsIssueFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GogsLabel { String name; String color; GogsLabel(); factory GogsLabel.fromJson(Map json) => _$GogsLabelFromJson(json); }