All checks were successful
ci/woodpecker/push/flutterBuild Pipeline was successful
251 lines
7.2 KiB
Dart
251 lines
7.2 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
import 'package:gitea_client/model/user.dart';
|
|
|
|
class Repository extends Equatable {
|
|
int id;
|
|
User owner;
|
|
String name;
|
|
String? fullName;
|
|
String? description;
|
|
bool? empty;
|
|
bool? private;
|
|
bool? fork;
|
|
bool? template;
|
|
bool? mirror;
|
|
int? size;
|
|
String? language;
|
|
String? languagesUrl;
|
|
String? htmlUrl;
|
|
String? sshUrl;
|
|
String? cloneUrl;
|
|
String? originalUrl;
|
|
String? website;
|
|
int? starsCount;
|
|
int? forksCount;
|
|
int? watchersCount;
|
|
int? openIssuesCount;
|
|
int? openPrCounter;
|
|
int? releaseCounter;
|
|
String? defaultBranch;
|
|
bool? archived;
|
|
String? createdAt;
|
|
DateTime? updatedAt;
|
|
Permissions? permissions;
|
|
bool? hasIssues;
|
|
InternalTracker? internalTracker;
|
|
bool? hasWiki;
|
|
bool? hasPullRequests;
|
|
bool? hasProjects;
|
|
bool? ignoreWhitespaceConflicts;
|
|
bool? allowMergeCommits;
|
|
bool? allowRebase;
|
|
bool? allowRebaseExplicit;
|
|
bool? allowSquashMerge;
|
|
String? defaultMergeStyle;
|
|
String? avatarUrl;
|
|
bool? internal;
|
|
String? mirrorInterval;
|
|
String? mirrorUpdated;
|
|
|
|
Repository(
|
|
{required this.id,
|
|
required this.owner,
|
|
required this.name,
|
|
this.fullName,
|
|
this.description,
|
|
this.empty,
|
|
this.private,
|
|
this.fork,
|
|
this.template,
|
|
this.mirror,
|
|
this.size,
|
|
this.language,
|
|
this.languagesUrl,
|
|
this.htmlUrl,
|
|
this.sshUrl,
|
|
this.cloneUrl,
|
|
this.originalUrl,
|
|
this.website,
|
|
this.starsCount,
|
|
this.forksCount,
|
|
this.watchersCount,
|
|
this.openIssuesCount,
|
|
this.openPrCounter,
|
|
this.releaseCounter,
|
|
this.defaultBranch,
|
|
this.archived,
|
|
this.createdAt,
|
|
this.updatedAt,
|
|
this.permissions,
|
|
this.hasIssues,
|
|
this.internalTracker,
|
|
this.hasWiki,
|
|
this.hasPullRequests,
|
|
this.hasProjects,
|
|
this.ignoreWhitespaceConflicts,
|
|
this.allowMergeCommits,
|
|
this.allowRebase,
|
|
this.allowRebaseExplicit,
|
|
this.allowSquashMerge,
|
|
this.defaultMergeStyle,
|
|
this.avatarUrl,
|
|
this.internal,
|
|
this.mirrorInterval,
|
|
this.mirrorUpdated});
|
|
|
|
Repository.fromJson(Map<String, dynamic> json)
|
|
: name = json['name'],
|
|
id = json['id'],
|
|
owner = User.fromJson(json['owner']) {
|
|
fullName = json['full_name'];
|
|
description = json['description'];
|
|
empty = json['empty'];
|
|
private = json['private'];
|
|
fork = json['fork'];
|
|
template = json['template'];
|
|
mirror = json['mirror'];
|
|
size = json['size'];
|
|
language = json['language'];
|
|
languagesUrl = json['languages_url'];
|
|
htmlUrl = json['html_url'];
|
|
sshUrl = json['ssh_url'];
|
|
cloneUrl = json['clone_url'];
|
|
originalUrl = json['original_url'];
|
|
website = json['website'];
|
|
starsCount = json['stars_count'];
|
|
forksCount = json['forks_count'];
|
|
watchersCount = json['watchers_count'];
|
|
openIssuesCount = json['open_issues_count'];
|
|
openPrCounter = json['open_pr_counter'];
|
|
releaseCounter = json['release_counter'];
|
|
defaultBranch = json['default_branch'];
|
|
archived = json['archived'];
|
|
createdAt = json['created_at'];
|
|
updatedAt = DateTime.parse(json['updated_at']);
|
|
permissions = json['permissions'] != null
|
|
? Permissions.fromJson(json['permissions'])
|
|
: null;
|
|
hasIssues = json['has_issues'];
|
|
internalTracker = json['internal_tracker'] != null
|
|
? InternalTracker.fromJson(json['internal_tracker'])
|
|
: null;
|
|
hasWiki = json['has_wiki'];
|
|
hasPullRequests = json['has_pull_requests'];
|
|
hasProjects = json['has_projects'];
|
|
ignoreWhitespaceConflicts = json['ignore_whitespace_conflicts'];
|
|
allowMergeCommits = json['allow_merge_commits'];
|
|
allowRebase = json['allow_rebase'];
|
|
allowRebaseExplicit = json['allow_rebase_explicit'];
|
|
allowSquashMerge = json['allow_squash_merge'];
|
|
defaultMergeStyle = json['default_merge_style'];
|
|
avatarUrl = json['avatar_url'];
|
|
internal = json['internal'];
|
|
mirrorInterval = json['mirror_interval'];
|
|
mirrorUpdated = json['mirror_updated'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = <String, dynamic>{};
|
|
data['id'] = id;
|
|
data['owner'] = owner.toJson();
|
|
data['name'] = name;
|
|
data['full_name'] = fullName;
|
|
data['description'] = description;
|
|
data['empty'] = empty;
|
|
data['private'] = private;
|
|
data['fork'] = fork;
|
|
data['template'] = template;
|
|
data['mirror'] = mirror;
|
|
data['size'] = size;
|
|
data['language'] = language;
|
|
data['languages_url'] = languagesUrl;
|
|
data['html_url'] = htmlUrl;
|
|
data['ssh_url'] = sshUrl;
|
|
data['clone_url'] = cloneUrl;
|
|
data['original_url'] = originalUrl;
|
|
data['website'] = website;
|
|
data['stars_count'] = starsCount;
|
|
data['forks_count'] = forksCount;
|
|
data['watchers_count'] = watchersCount;
|
|
data['open_issues_count'] = openIssuesCount;
|
|
data['open_pr_counter'] = openPrCounter;
|
|
data['release_counter'] = releaseCounter;
|
|
data['default_branch'] = defaultBranch;
|
|
data['archived'] = archived;
|
|
data['created_at'] = createdAt;
|
|
data['updated_at'] = updatedAt;
|
|
if (permissions != null) {
|
|
data['permissions'] = permissions!.toJson();
|
|
}
|
|
data['has_issues'] = hasIssues;
|
|
if (internalTracker != null) {
|
|
data['internal_tracker'] = internalTracker!.toJson();
|
|
}
|
|
data['has_wiki'] = hasWiki;
|
|
data['has_pull_requests'] = hasPullRequests;
|
|
data['has_projects'] = hasProjects;
|
|
data['ignore_whitespace_conflicts'] = ignoreWhitespaceConflicts;
|
|
data['allow_merge_commits'] = allowMergeCommits;
|
|
data['allow_rebase'] = allowRebase;
|
|
data['allow_rebase_explicit'] = allowRebaseExplicit;
|
|
data['allow_squash_merge'] = allowSquashMerge;
|
|
data['default_merge_style'] = defaultMergeStyle;
|
|
data['avatar_url'] = avatarUrl;
|
|
data['internal'] = internal;
|
|
data['mirror_interval'] = mirrorInterval;
|
|
data['mirror_updated'] = mirrorUpdated;
|
|
return data;
|
|
}
|
|
|
|
@override
|
|
List<Object> get props => [id, owner, name];
|
|
}
|
|
|
|
class Permissions {
|
|
bool? admin;
|
|
bool? push;
|
|
bool? pull;
|
|
|
|
Permissions({this.admin, this.push, this.pull});
|
|
|
|
Permissions.fromJson(Map<String, dynamic> json) {
|
|
admin = json['admin'];
|
|
push = json['push'];
|
|
pull = json['pull'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = <String, dynamic>{};
|
|
data['admin'] = admin;
|
|
data['push'] = push;
|
|
data['pull'] = pull;
|
|
return data;
|
|
}
|
|
}
|
|
|
|
class InternalTracker {
|
|
bool? enableTimeTracker;
|
|
bool? allowOnlyContributorsToTrackTime;
|
|
bool? enableIssueDependencies;
|
|
|
|
InternalTracker(
|
|
{this.enableTimeTracker,
|
|
this.allowOnlyContributorsToTrackTime,
|
|
this.enableIssueDependencies});
|
|
|
|
InternalTracker.fromJson(Map<String, dynamic> json) {
|
|
enableTimeTracker = json['enable_time_tracker'];
|
|
allowOnlyContributorsToTrackTime =
|
|
json['allow_only_contributors_to_track_time'];
|
|
enableIssueDependencies = json['enable_issue_dependencies'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = <String, dynamic>{};
|
|
data['enable_time_tracker'] = enableTimeTracker;
|
|
data['allow_only_contributors_to_track_time'] =
|
|
allowOnlyContributorsToTrackTime;
|
|
data['enable_issue_dependencies'] = enableIssueDependencies;
|
|
return data;
|
|
}
|
|
}
|