Skip to content

Commit

Permalink
feat(gitlab): repo size and commits
Browse files Browse the repository at this point in the history
  • Loading branch information
pd4d10 committed Jan 28, 2020
1 parent f5ad1ac commit 248212c
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 11 deletions.
18 changes: 14 additions & 4 deletions lib/models/gitlab.dart
Expand Up @@ -82,11 +82,20 @@ class GitlabIssueNote {
}

@JsonSerializable(fieldRename: FieldRename.snake)
class GitlabLabel {
class GitlabProjectBadge {
String renderedImageUrl;
GitlabLabel();
factory GitlabLabel.fromJson(Map<String, dynamic> json) =>
_$GitlabLabelFromJson(json);
GitlabProjectBadge();
factory GitlabProjectBadge.fromJson(Map<String, dynamic> json) =>
_$GitlabProjectBadgeFromJson(json);
}

@JsonSerializable(fieldRename: FieldRename.snake)
class GitlabProjectStatistics {
int commitCount;
int repositorySize;
GitlabProjectStatistics();
factory GitlabProjectStatistics.fromJson(Map<String, dynamic> json) =>
_$GitlabProjectStatisticsFromJson(json);
}

@JsonSerializable(fieldRename: FieldRename.snake)
Expand All @@ -104,6 +113,7 @@ class GitlabProject {
bool issuesEnabled;
int openIssuesCount;
bool mergeRequestsEnabled;
GitlabProjectStatistics statistics;
GitlabProject();
factory GitlabProject.fromJson(Map<String, dynamic> json) =>
_$GitlabProjectFromJson(json);
Expand Down
28 changes: 24 additions & 4 deletions lib/models/gitlab.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 12 additions & 3 deletions lib/screens/gitlab_project.dart
@@ -1,3 +1,4 @@
import 'package:filesize/filesize.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_svg/svg.dart';
Expand Down Expand Up @@ -26,12 +27,13 @@ class GitlabProjectScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return RefreshStatefulScaffold<
Tuple4<GitlabProject, Map<String, double>, List<GitlabLabel>, String>>(
Tuple4<GitlabProject, Map<String, double>, List<GitlabProjectBadge>,
String>>(
title: AppBarTitle('Project'),
fetchData: () async {
final auth = Provider.of<AuthModel>(context);
final res = await Future.wait([
auth.fetchGitlab('/projects/$id'),
auth.fetchGitlab('/projects/$id?statistics=1'),
auth.fetchGitlab('/projects/$id/languages'),
auth.fetchGitlab('/projects/$id/badges'),
]);
Expand All @@ -44,7 +46,7 @@ class GitlabProjectScreen extends StatelessWidget {
return Tuple4(
p,
Map<String, double>.from(res[1]),
(res[2] as List).map((v) => GitlabLabel.fromJson(v)).toList(),
(res[2] as List).map((v) => GitlabProjectBadge.fromJson(v)).toList(),
readme,
);
},
Expand Down Expand Up @@ -128,6 +130,7 @@ class GitlabProjectScreen extends StatelessWidget {
TableViewItem(
leftIconData: Octicons.code,
text: Text(langs.keys.isEmpty ? 'Code' : langs.keys.first),
rightWidget: Text(filesize(p.statistics.repositorySize)),
url: '/gitlab/projects/$id/tree',
),
if (p.issuesEnabled)
Expand All @@ -143,6 +146,12 @@ class GitlabProjectScreen extends StatelessWidget {
text: Text('Merge requests'),
url: '/gitlab/projects/$id/merge_requests',
),
TableViewItem(
leftIconData: Octicons.history,
text: Text('Commits'),
rightWidget: Text(p.statistics.commitCount.toString()),
url: '/gitlab/projects/$id/commits',
),
],
),
CommonStyle.verticalGap,
Expand Down

0 comments on commit 248212c

Please sign in to comment.