Skip to content

Commit

Permalink
fix(gitlab): use default branch instead of master
Browse files Browse the repository at this point in the history
r #28
  • Loading branch information
pd4d10 committed Feb 2, 2020
1 parent d152750 commit 79fe174
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 16 deletions.
1 change: 1 addition & 0 deletions lib/models/gitlab.dart
Expand Up @@ -92,6 +92,7 @@ class GitlabProject {
GitlabProjectStatistics statistics;
DateTime lastActivityAt;
DateTime createdAt;
String defaultBranch;
GitlabProject();
factory GitlabProject.fromJson(Map<String, dynamic> json) =>
_$GitlabProjectFromJson(json);
Expand Down
4 changes: 3 additions & 1 deletion lib/models/gitlab.g.dart

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

10 changes: 6 additions & 4 deletions lib/router.dart
Expand Up @@ -148,12 +148,14 @@ class GitlabRouter {
static final group = RouterScreen('/group/:id',
(context, p) => GitlabGroupScreen(int.parse(p['id'].first)));
static final blob = RouterScreen(
'/projects/:id/blob',
(context, params) => GitlabBlobScreen(int.parse(params['id'].first),
'/projects/:id/blob/:ref',
(context, params) => GitlabBlobScreen(
int.parse(params['id'].first), params['ref'].first,
path: params['path']?.first));
static final tree = RouterScreen(
'/projects/:id/tree',
(context, params) => GitlabTreeScreen(int.parse(params['id'].first),
'/projects/:id/tree/:ref',
(context, params) => GitlabTreeScreen(
int.parse(params['id'].first), params['ref'].first,
path: params['path']?.first));
static final project = RouterScreen('/projects/:id',
(context, params) => GitlabProjectScreen(int.parse(params['id'].first)));
Expand Down
5 changes: 3 additions & 2 deletions lib/screens/gitlab_blob.dart
Expand Up @@ -10,16 +10,17 @@ import 'package:provider/provider.dart';

class GitlabBlobScreen extends StatelessWidget {
final int id;
final String ref;
final String path;
GitlabBlobScreen(this.id, {this.path});
GitlabBlobScreen(this.id, this.ref, {this.path});

@override
Widget build(BuildContext context) {
return RefreshStatefulScaffold<GitlabBlob>(
title: AppBarTitle(path ?? ''),
fetchData: () async {
final res = await Provider.of<AuthModel>(context).fetchGitlab(
'/projects/$id/repository/files/${path.urlencode}?ref=master'); // TODO:
'/projects/$id/repository/files/${path.urlencode}?ref=$ref');
return GitlabBlob.fromJson(res);
},
action: ActionEntry(iconData: Icons.settings, url: '/choose-code-theme'),
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/gitlab_project.dart
Expand Up @@ -115,7 +115,7 @@ class GitlabProjectScreen extends StatelessWidget {
leftIconData: Octicons.code,
text: Text(langs.keys.isEmpty ? 'Code' : langs.keys.first),
rightWidget: Text(filesize(p.statistics.repositorySize)),
url: '/gitlab/projects/$id/tree',
url: '/gitlab/projects/$id/tree/${p.defaultBranch}',
),
if (p.issuesEnabled)
TableViewItem(
Expand Down
20 changes: 12 additions & 8 deletions lib/screens/gitlab_tree.dart
Expand Up @@ -10,20 +10,24 @@ import 'package:git_touch/utils/utils.dart';

class GitlabTreeScreen extends StatelessWidget {
final int id;
final String ref;
final String path;
GitlabTreeScreen(this.id, {this.path});
GitlabTreeScreen(this.id, this.ref, {this.path});

@override
Widget build(BuildContext context) {
final auth = Provider.of<AuthModel>(context);
return RefreshStatefulScaffold<Iterable<GitlabTreeItem>>(
title: AppBarTitle(path ?? 'Files'),
fetchData: () async {
var url = '/projects/$id/repository/tree';
if (path != null) {
url += '?path=' + path;
}
final res = await auth.fetchGitlab(url);
final uri = Uri(
path: '/projects/$id/repository/tree',
queryParameters: {
'ref': ref,
...(path == null ? {} : {'path': path})
},
);
final res = await auth.fetchGitlab(uri.toString());
return (res as List).map((v) => GitlabTreeItem.fromJson(v));
},
bodyBuilder: (data, _) {
Expand All @@ -37,9 +41,9 @@ class GitlabTreeScreen extends StatelessWidget {
url: (() {
switch (item.type) {
case 'tree':
return '/gitlab/projects/$id/tree?path=${item.path.urlencode}';
return '/gitlab/projects/$id/tree/$ref?path=${item.path.urlencode}';
case 'blob':
return '/gitlab/projects/$id/blob?path=${item.path.urlencode}';
return '/gitlab/projects/$id/blob/$ref?path=${item.path.urlencode}';
default:
return null;
}
Expand Down

0 comments on commit 79fe174

Please sign in to comment.