diff --git a/lib/apis/githost.dart b/lib/apis/githost.dart index 1704f788..c79334be 100644 --- a/lib/apis/githost.dart +++ b/lib/apis/githost.dart @@ -16,9 +16,9 @@ abstract class GitHost { } class UserInfo { - String name; - String email; - String username; + final String name; + final String email; + final String username; UserInfo({ @required this.name, @@ -29,19 +29,50 @@ class UserInfo { class GitHostRepo { final String fullName; + final String description; + final String cloneUrl; final DateTime updatedAt; + final bool private; + final int stars; + final int forks; + final String language; + final int issues; + final String license; + + final List tags; + GitHostRepo({ @required this.fullName, + @required this.description, @required this.cloneUrl, @required this.updatedAt, + @required this.private, + @required this.stars, + @required this.forks, + @required this.language, + @required this.issues, + @required this.tags, + @required this.license, }); + Map toJson() => { + 'fullName': fullName, + 'description': description, + 'cloneUrl': cloneUrl, + 'updatedAt': updatedAt, + 'private': private, + 'stars': stars, + 'forks': forks, + 'language': language, + 'issues': issues, + 'tags': tags, + 'license': license, + }; + @override - String toString() { - return 'GitRepo{fulleName: $fullName, cloneUrl: $cloneUrl, updatedAt: $updatedAt}'; - } + String toString() => toJson().toString(); } class GitHostException implements Exception { diff --git a/lib/apis/github.dart b/lib/apis/github.dart index fcf3e7ed..e0d64fc0 100644 --- a/lib/apis/github.dart +++ b/lib/apis/github.dart @@ -217,10 +217,26 @@ class GitHub implements GitHost { } catch (e) { Log.e(e); } + var licenseMap = parsedJson['license']; + + /* + print(""); + parsedJson.forEach((key, value) => print(" $key: $value")); + print(""); + */ + return GitHostRepo( fullName: parsedJson['full_name'], cloneUrl: parsedJson['ssh_url'], updatedAt: updatedAt, + description: parsedJson['description'], + stars: parsedJson['stargazers_count'], + forks: parsedJson['forks_count'], + issues: parsedJson['open_issues_count'], + language: parsedJson['language'], + private: parsedJson['private'], + tags: parsedJson['topics'], + license: licenseMap != null ? licenseMap['spdx_id'] : null, ); } diff --git a/lib/apis/gitlab.dart b/lib/apis/gitlab.dart index 53cb4f3c..b84a68f3 100644 --- a/lib/apis/gitlab.dart +++ b/lib/apis/gitlab.dart @@ -201,11 +201,20 @@ class GitLab implements GitHost { } catch (e) { Log.e(e); } + var licenseMap = parsedJson['license']; return GitHostRepo( fullName: parsedJson['path_with_namespace'], cloneUrl: parsedJson['ssh_url_to_repo'], updatedAt: updatedAt, + description: parsedJson['description'], + stars: parsedJson['star_count'], + forks: parsedJson['forks_count'], + issues: parsedJson['open_issues_count'], + language: parsedJson['language'], + private: parsedJson['visibility'] == 'private', + tags: parsedJson['tag_list'], + license: licenseMap ?? licenseMap['nickname'], ); }