chore: github trending package
This commit is contained in:
parent
65e43dc633
commit
1edc61edef
|
@ -0,0 +1,11 @@
|
||||||
|
# Files and directories created by pub
|
||||||
|
.dart_tool/
|
||||||
|
.packages
|
||||||
|
# Remove the following pattern if you wish to check in your lock file
|
||||||
|
pubspec.lock
|
||||||
|
|
||||||
|
# Conventional directory for build outputs
|
||||||
|
build/
|
||||||
|
|
||||||
|
# Directory created by dartdoc
|
||||||
|
doc/api/
|
|
@ -0,0 +1,44 @@
|
||||||
|
# [1.1.0](https://github.com/git-touch/github-trending/compare/v1.0.0...v1.1.0) (2021-03-07)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- null safety ([40d285a](https://github.com/git-touch/github-trending/commit/40d285a511598545aa2c82199f94e1d51f6c256f))
|
||||||
|
|
||||||
|
# [1.0.0](https://github.com/git-touch/github-trending/compare/v0.3.0...v1.0.0) (2020-11-14)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- decode with utf8 ([b13d07a](https://github.com/git-touch/github-trending/commit/b13d07a0ea6f98d434c95b1873508741af97d147))
|
||||||
|
|
||||||
|
# [0.3.0](https://github.com/git-touch/github-trending/compare/v0.2.0...v0.3.0) (2020-10-06)
|
||||||
|
|
||||||
|
# [0.2.0](https://github.com/git-touch/github-trending/compare/v0.1.2...v0.2.0) (2020-02-09)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- developer repo ([09223e2](https://github.com/git-touch/github-trending/commit/09223e238538ff6d9e304171c4dca6a9bc7b77e2))
|
||||||
|
|
||||||
|
## [0.1.2](https://github.com/git-touch/github-trending/compare/v0.1.1...v0.1.2) (2019-04-25)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- language color match ([3967fcc](https://github.com/git-touch/github-trending/commit/3967fccc440ceee3cb8c57ab42070c8acfe4507b))
|
||||||
|
|
||||||
|
## [0.1.1](https://github.com/git-touch/github-trending/compare/v0.1.0...v0.1.1) (2019-03-12)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- fix color matcher for colors like #ccc ([3222ed6](https://github.com/git-touch/github-trending/commit/3222ed6f261d0f3069d761b7d7229f7c8c888a51))
|
||||||
|
|
||||||
|
# [0.1.0](https://github.com/git-touch/github-trending/compare/edb71b7a5fe1f8bcf6662ac20888fc795159137a...v0.1.0) (2019-03-06)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- language node null ([9691db2](https://github.com/git-touch/github-trending/commit/9691db2eebad85e2b4e3ff44c91522086294bca8))
|
||||||
|
- star and fork number with comma ([4a99551](https://github.com/git-touch/github-trending/commit/4a995516409881f259875b2491a12b312d2125e4))
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- add description HTML field, remove anchor tag of description ([922ecb1](https://github.com/git-touch/github-trending/commit/922ecb194d19d9536436498d642f16c45c9d58c2))
|
||||||
|
- add since and language params ([ab7a7f0](https://github.com/git-touch/github-trending/commit/ab7a7f03d61a588564ea3c2a4a0500e2643ac434))
|
||||||
|
- basic implemetation ([edb71b7](https://github.com/git-touch/github-trending/commit/edb71b7a5fe1f8bcf6662ac20888fc795159137a))
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2019 Rongjian Zhang
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
|
@ -0,0 +1,42 @@
|
||||||
|
# github_trending
|
||||||
|
|
||||||
|
[![pub](https://img.shields.io/pub/v/github_trending.svg)](https://pub.dev/packages/github_trending)
|
||||||
|
[![test](https://github.com/pd4d10/github-trending/workflows/test/badge.svg)](https://github.com/pd4d10/github-trending/actions?query=workflow:test)
|
||||||
|
|
||||||
|
A Dart library to get GitHub trending repositories and developers via [github-trending-api](https://github.com/huchenme/github-trending-api).
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Add `github_trending` as a [dependency in your pubspec.yaml file](https://flutter.dev/docs/development/packages-and-plugins/using-packages)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```dart
|
||||||
|
import 'package:github_trending/github_trending.dart';
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
final trending = GithubTrending(prefix: 'https://gtrend.yapie.me');
|
||||||
|
|
||||||
|
// get trending repositories
|
||||||
|
var repos = await trending.getTrendingRepositories();
|
||||||
|
print(repos[0].name);
|
||||||
|
|
||||||
|
// specify time period
|
||||||
|
var weeklyRepos = await trending.getTrendingRepositories(since: 'weekly');
|
||||||
|
print(weeklyRepos[0].name);
|
||||||
|
|
||||||
|
// specify language
|
||||||
|
var dartRepos = await trending.getTrendingRepositories(language: 'dart');
|
||||||
|
print(dartRepos[0].language); // Dart
|
||||||
|
print(dartRepos[0].languageColor); // #00B4AB
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
- [github-trending-api](https://github.com/huchenme/github-trending-api)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Defines a default set of lint rules enforced for
|
||||||
|
# projects at Google. For details and rationale,
|
||||||
|
# see https://github.com/dart-lang/pedantic#enabled-lints.
|
||||||
|
include: package:pedantic/analysis_options.yaml
|
||||||
|
|
||||||
|
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
|
||||||
|
# Uncomment to specify additional rules.
|
||||||
|
# linter:
|
||||||
|
# rules:
|
||||||
|
# - camel_case_types
|
||||||
|
|
||||||
|
analyzer:
|
||||||
|
# exclude:
|
||||||
|
# - path/to/excluded/files/**
|
|
@ -0,0 +1,18 @@
|
||||||
|
import 'package:github_trending/github_trending.dart';
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
final trending = GithubTrending();
|
||||||
|
|
||||||
|
// get trending repositories
|
||||||
|
var repos = await trending.getTrendingRepositories();
|
||||||
|
print(repos[0].name);
|
||||||
|
|
||||||
|
// specify time period
|
||||||
|
var weeklyRepos = await trending.getTrendingRepositories(since: 'weekly');
|
||||||
|
print(weeklyRepos[0].name);
|
||||||
|
|
||||||
|
// specify language
|
||||||
|
var dartRepos = await trending.getTrendingRepositories(language: 'dart');
|
||||||
|
print(dartRepos[0].language); // Dart
|
||||||
|
print(dartRepos[0].languageColor); // #00B4AB
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
export 'src/model.dart';
|
||||||
|
export 'src/api.dart';
|
|
@ -0,0 +1,61 @@
|
||||||
|
import 'dart:convert';
|
||||||
|
import 'package:github_trending/src/model.dart';
|
||||||
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
|
class TrendingRepositoryPrimaryLanguage {
|
||||||
|
String? name;
|
||||||
|
String? color;
|
||||||
|
TrendingRepositoryPrimaryLanguage({this.name, this.color});
|
||||||
|
}
|
||||||
|
|
||||||
|
class GithubTrending {
|
||||||
|
String prefix;
|
||||||
|
|
||||||
|
GithubTrending({this.prefix = 'https://ghapi.huchen.dev'});
|
||||||
|
|
||||||
|
Future _getJson(Uri url) async {
|
||||||
|
final res = await http.get(url);
|
||||||
|
return json.decode(utf8.decode(res.bodyBytes));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get trending repositories
|
||||||
|
///
|
||||||
|
/// https://github.com/huchenme/github-trending-api#trending-repositories
|
||||||
|
Future<List<GithubTrendingRepository>> getTrendingRepositories({
|
||||||
|
/// daily, weekly, monthly
|
||||||
|
String? since,
|
||||||
|
String? language,
|
||||||
|
String? spokenLanguageCode,
|
||||||
|
}) async {
|
||||||
|
final res = await _getJson(Uri.parse('$prefix/repositories').replace(
|
||||||
|
queryParameters: {
|
||||||
|
if (since != null) 'since': since,
|
||||||
|
if (language != null) 'language': language,
|
||||||
|
if (spokenLanguageCode != null)
|
||||||
|
'spoken_language_code': spokenLanguageCode
|
||||||
|
},
|
||||||
|
));
|
||||||
|
return (res as List)
|
||||||
|
.map((v) => GithubTrendingRepository.fromJson(v))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get trending developers
|
||||||
|
///
|
||||||
|
/// https://github.com/huchenme/github-trending-api#trending-developers
|
||||||
|
Future<List<GithubTrendingDeveloper>> getTrendingDevelopers({
|
||||||
|
/// daily, weekly, monthly
|
||||||
|
String? since,
|
||||||
|
String? language,
|
||||||
|
}) async {
|
||||||
|
final res = await _getJson(Uri.parse('$prefix/developers').replace(
|
||||||
|
queryParameters: {
|
||||||
|
if (since != null) 'since': since,
|
||||||
|
if (language != null) 'language': language,
|
||||||
|
},
|
||||||
|
));
|
||||||
|
return (res as List)
|
||||||
|
.map((v) => GithubTrendingDeveloper.fromJson(v))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'model.g.dart';
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class GithubTrendingRepository {
|
||||||
|
String? author;
|
||||||
|
String? name;
|
||||||
|
String? avatar;
|
||||||
|
String? url;
|
||||||
|
String? description;
|
||||||
|
String? language;
|
||||||
|
String? languageColor;
|
||||||
|
int? stars;
|
||||||
|
int? forks;
|
||||||
|
int? currentPeriodStars;
|
||||||
|
List<GithubTrendingRepositoryBuiltBy>? builtBy;
|
||||||
|
GithubTrendingRepository();
|
||||||
|
factory GithubTrendingRepository.fromJson(Map<String, dynamic> json) =>
|
||||||
|
_$GithubTrendingRepositoryFromJson(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class GithubTrendingRepositoryBuiltBy {
|
||||||
|
String? href;
|
||||||
|
String? avatar;
|
||||||
|
String? username;
|
||||||
|
GithubTrendingRepositoryBuiltBy();
|
||||||
|
factory GithubTrendingRepositoryBuiltBy.fromJson(Map<String, dynamic> json) =>
|
||||||
|
_$GithubTrendingRepositoryBuiltByFromJson(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class GithubTrendingDeveloper {
|
||||||
|
String? username;
|
||||||
|
String? name;
|
||||||
|
String? type;
|
||||||
|
String? url;
|
||||||
|
String? avatar;
|
||||||
|
GithubTrendingDeveloperRepository? repo;
|
||||||
|
GithubTrendingDeveloper();
|
||||||
|
factory GithubTrendingDeveloper.fromJson(Map<String, dynamic> json) =>
|
||||||
|
_$GithubTrendingDeveloperFromJson(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class GithubTrendingDeveloperRepository {
|
||||||
|
String? name;
|
||||||
|
String? description;
|
||||||
|
String? url;
|
||||||
|
GithubTrendingDeveloperRepository();
|
||||||
|
factory GithubTrendingDeveloperRepository.fromJson(
|
||||||
|
Map<String, dynamic> json) =>
|
||||||
|
_$GithubTrendingDeveloperRepositoryFromJson(json);
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'model.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// JsonSerializableGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
GithubTrendingRepository _$GithubTrendingRepositoryFromJson(
|
||||||
|
Map<String, dynamic> json) {
|
||||||
|
return GithubTrendingRepository()
|
||||||
|
..author = json['author'] as String?
|
||||||
|
..name = json['name'] as String?
|
||||||
|
..avatar = json['avatar'] as String?
|
||||||
|
..url = json['url'] as String?
|
||||||
|
..description = json['description'] as String?
|
||||||
|
..language = json['language'] as String?
|
||||||
|
..languageColor = json['languageColor'] as String?
|
||||||
|
..stars = json['stars'] as int?
|
||||||
|
..forks = json['forks'] as int?
|
||||||
|
..currentPeriodStars = json['currentPeriodStars'] as int?
|
||||||
|
..builtBy = (json['builtBy'] as List<dynamic>?)
|
||||||
|
?.map((e) =>
|
||||||
|
GithubTrendingRepositoryBuiltBy.fromJson(e as Map<String, dynamic>))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> _$GithubTrendingRepositoryToJson(
|
||||||
|
GithubTrendingRepository instance) =>
|
||||||
|
<String, dynamic>{
|
||||||
|
'author': instance.author,
|
||||||
|
'name': instance.name,
|
||||||
|
'avatar': instance.avatar,
|
||||||
|
'url': instance.url,
|
||||||
|
'description': instance.description,
|
||||||
|
'language': instance.language,
|
||||||
|
'languageColor': instance.languageColor,
|
||||||
|
'stars': instance.stars,
|
||||||
|
'forks': instance.forks,
|
||||||
|
'currentPeriodStars': instance.currentPeriodStars,
|
||||||
|
'builtBy': instance.builtBy,
|
||||||
|
};
|
||||||
|
|
||||||
|
GithubTrendingRepositoryBuiltBy _$GithubTrendingRepositoryBuiltByFromJson(
|
||||||
|
Map<String, dynamic> json) {
|
||||||
|
return GithubTrendingRepositoryBuiltBy()
|
||||||
|
..href = json['href'] as String?
|
||||||
|
..avatar = json['avatar'] as String?
|
||||||
|
..username = json['username'] as String?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> _$GithubTrendingRepositoryBuiltByToJson(
|
||||||
|
GithubTrendingRepositoryBuiltBy instance) =>
|
||||||
|
<String, dynamic>{
|
||||||
|
'href': instance.href,
|
||||||
|
'avatar': instance.avatar,
|
||||||
|
'username': instance.username,
|
||||||
|
};
|
||||||
|
|
||||||
|
GithubTrendingDeveloper _$GithubTrendingDeveloperFromJson(
|
||||||
|
Map<String, dynamic> json) {
|
||||||
|
return GithubTrendingDeveloper()
|
||||||
|
..username = json['username'] as String?
|
||||||
|
..name = json['name'] as String?
|
||||||
|
..type = json['type'] as String?
|
||||||
|
..url = json['url'] as String?
|
||||||
|
..avatar = json['avatar'] as String?
|
||||||
|
..repo = json['repo'] == null
|
||||||
|
? null
|
||||||
|
: GithubTrendingDeveloperRepository.fromJson(
|
||||||
|
json['repo'] as Map<String, dynamic>);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> _$GithubTrendingDeveloperToJson(
|
||||||
|
GithubTrendingDeveloper instance) =>
|
||||||
|
<String, dynamic>{
|
||||||
|
'username': instance.username,
|
||||||
|
'name': instance.name,
|
||||||
|
'type': instance.type,
|
||||||
|
'url': instance.url,
|
||||||
|
'avatar': instance.avatar,
|
||||||
|
'repo': instance.repo,
|
||||||
|
};
|
||||||
|
|
||||||
|
GithubTrendingDeveloperRepository _$GithubTrendingDeveloperRepositoryFromJson(
|
||||||
|
Map<String, dynamic> json) {
|
||||||
|
return GithubTrendingDeveloperRepository()
|
||||||
|
..name = json['name'] as String?
|
||||||
|
..description = json['description'] as String?
|
||||||
|
..url = json['url'] as String?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> _$GithubTrendingDeveloperRepositoryToJson(
|
||||||
|
GithubTrendingDeveloperRepository instance) =>
|
||||||
|
<String, dynamic>{
|
||||||
|
'name': instance.name,
|
||||||
|
'description': instance.description,
|
||||||
|
'url': instance.url,
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
name: github_trending
|
||||||
|
description: A library to get GitHub trending repositories and developers, with languages and period options.
|
||||||
|
version: 1.1.0
|
||||||
|
homepage: https://github.com/git-touch/github-trending
|
||||||
|
|
||||||
|
environment:
|
||||||
|
sdk: ">=2.12.0 <3.0.0"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
http: ^0.13.0
|
||||||
|
json_annotation: ^4.0.0
|
||||||
|
|
||||||
|
dev_dependencies:
|
||||||
|
pedantic: ^1.11.0
|
||||||
|
test: ^1.16.5
|
||||||
|
build_runner: ^1.11.5
|
||||||
|
json_serializable: ^4.0.2
|
|
@ -0,0 +1,59 @@
|
||||||
|
import 'package:github_trending/github_trending.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
// https://github.com/huchenme/github-trending-api/issues/130#issuecomment-703483762
|
||||||
|
final trending = GithubTrending(prefix: 'https://gtrend.yapie.me');
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
group('repositories', () {
|
||||||
|
List<GithubTrendingRepository>? items;
|
||||||
|
|
||||||
|
setUpAll(() async {
|
||||||
|
items = await trending.getTrendingRepositories();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('has data', () {
|
||||||
|
expect(items, isList);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('owner, name are not null', () {
|
||||||
|
items!.forEach((item) {
|
||||||
|
expect(item.author, isNotNull);
|
||||||
|
expect(item.name, isNotNull);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('star and fork count', () {
|
||||||
|
// make sure at least one item has star or fork
|
||||||
|
// to ensure no parse error
|
||||||
|
var itemHasStar = items!.where((item) => item.stars != null);
|
||||||
|
expect(itemHasStar, isNotEmpty);
|
||||||
|
|
||||||
|
var itemHasFork = items!.where((item) => item.forks != null);
|
||||||
|
expect(itemHasFork, isNotEmpty);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('language color', () {
|
||||||
|
items!.forEach((item) {
|
||||||
|
if (item.languageColor != null) {
|
||||||
|
expect(
|
||||||
|
RegExp(r'#[0-9a-fA-F]{3,6}').hasMatch(item.languageColor!),
|
||||||
|
isTrue,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
group('developers', () {
|
||||||
|
List<GithubTrendingDeveloper>? items;
|
||||||
|
|
||||||
|
setUpAll(() async {
|
||||||
|
items = await trending.getTrendingDevelopers();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('has data', () {
|
||||||
|
expect(items, isList);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
|
@ -21,7 +21,7 @@ packages:
|
||||||
path: "../ant-design-mobile-flutter"
|
path: "../ant-design-mobile-flutter"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "0.0.1"
|
version: "0.1.0"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -339,9 +339,9 @@ packages:
|
||||||
github_trending:
|
github_trending:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: github_trending
|
path: "packages/github_trending"
|
||||||
url: "https://pub.dartlang.org"
|
relative: true
|
||||||
source: hosted
|
source: path
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
glob:
|
glob:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
|
|
|
@ -35,6 +35,8 @@ dependencies:
|
||||||
path: ./packages/gql_github
|
path: ./packages/gql_github
|
||||||
gql_gitlab:
|
gql_gitlab:
|
||||||
path: ./packages/gql_gitlab
|
path: ./packages/gql_gitlab
|
||||||
|
github_trending:
|
||||||
|
path: ./packages/github_trending
|
||||||
cupertino_icons:
|
cupertino_icons:
|
||||||
ferry:
|
ferry:
|
||||||
ferry_flutter:
|
ferry_flutter:
|
||||||
|
@ -46,7 +48,6 @@ dependencies:
|
||||||
flutter_svg:
|
flutter_svg:
|
||||||
flutter_vector_icons:
|
flutter_vector_icons:
|
||||||
github:
|
github:
|
||||||
github_trending:
|
|
||||||
gql:
|
gql:
|
||||||
gql_http_link:
|
gql_http_link:
|
||||||
http:
|
http:
|
||||||
|
|
Loading…
Reference in New Issue