From 1fe2a50a38da9d35846ad58e6c4933e61535ebc9 Mon Sep 17 00:00:00 2001 From: Jamie Cansdale Date: Fri, 14 Sep 2018 16:45:09 +0100 Subject: [PATCH 1/2] Include collaborator repositories in list --- src/GitHub.App/Services/RepositoryCloneService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitHub.App/Services/RepositoryCloneService.cs b/src/GitHub.App/Services/RepositoryCloneService.cs index 7998e73417..2a3d4ba96a 100644 --- a/src/GitHub.App/Services/RepositoryCloneService.cs +++ b/src/GitHub.App/Services/RepositoryCloneService.cs @@ -66,7 +66,7 @@ public async Task ReadViewerRepositories(HostAddress ad var affiliation = new RepositoryAffiliation?[] { - RepositoryAffiliation.Owner + RepositoryAffiliation.Owner, RepositoryAffiliation.Collaborator }; var repositorySelection = new Fragment( From 8beebe8a631e2df4239e21551d58fa61e20af579 Mon Sep 17 00:00:00 2001 From: Jamie Cansdale Date: Fri, 14 Sep 2018 17:38:53 +0100 Subject: [PATCH 2/2] Include collaborator repositories in list --- src/GitHub.App/Services/RepositoryCloneService.cs | 1 + .../ViewModels/Dialog/Clone/RepositorySelectViewModel.cs | 9 +++++++-- src/GitHub.Exports/Models/ViewerRepositoriesModel.cs | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/GitHub.App/Services/RepositoryCloneService.cs b/src/GitHub.App/Services/RepositoryCloneService.cs index 2a3d4ba96a..8ef95e0215 100644 --- a/src/GitHub.App/Services/RepositoryCloneService.cs +++ b/src/GitHub.App/Services/RepositoryCloneService.cs @@ -84,6 +84,7 @@ public async Task ReadViewerRepositories(HostAddress ad .Viewer .Select(viewer => new ViewerRepositoriesModel { + Owner = viewer.Login, Repositories = viewer.Repositories(null, null, null, null, null, order, affiliation, null, null) .AllPages() .Select(repositorySelection).ToList(), diff --git a/src/GitHub.App/ViewModels/Dialog/Clone/RepositorySelectViewModel.cs b/src/GitHub.App/ViewModels/Dialog/Clone/RepositorySelectViewModel.cs index 87fae2b1d0..e48a0b9822 100644 --- a/src/GitHub.App/ViewModels/Dialog/Clone/RepositorySelectViewModel.cs +++ b/src/GitHub.App/ViewModels/Dialog/Clone/RepositorySelectViewModel.cs @@ -111,11 +111,16 @@ public async Task Activate() var results = await service.ReadViewerRepositories(connection.HostAddress).ConfigureAwait(true); var yourRepositories = results.Repositories + .Where(r => r.Owner == results.Owner) .Select(x => new RepositoryItemViewModel(x, "Your repositories")); + var collaboratorRepositories = results.Repositories + .Where(r => r.Owner != results.Owner) + .OrderBy(r => r.Owner) + .Select(x => new RepositoryItemViewModel(x, "Collaborator repositories")); var orgRepositories = results.OrganizationRepositories .OrderBy(x => x.Key) .SelectMany(x => x.Value.Select(y => new RepositoryItemViewModel(y, x.Key))); - Items = yourRepositories.Concat(orgRepositories).ToList(); + Items = yourRepositories.Concat(collaboratorRepositories).Concat(orgRepositories).ToList(); ItemsView = CollectionViewSource.GetDefaultView(Items); ItemsView.GroupDescriptions.Add(new PropertyGroupDescription(nameof(RepositoryItemViewModel.Group))); ItemsView.Filter = FilterItem; @@ -149,7 +154,7 @@ bool FilterItem(object obj) IRepositoryModel CreateRepository(IRepositoryItemViewModel item) { - return item != null ? + return item != null ? new RepositoryModel(item.Name, UriString.ToUriString(item.Url)) : null; } diff --git a/src/GitHub.Exports/Models/ViewerRepositoriesModel.cs b/src/GitHub.Exports/Models/ViewerRepositoriesModel.cs index ce84c2a555..27cba30bd1 100644 --- a/src/GitHub.Exports/Models/ViewerRepositoriesModel.cs +++ b/src/GitHub.Exports/Models/ViewerRepositoriesModel.cs @@ -5,6 +5,7 @@ namespace GitHub.Models { public class ViewerRepositoriesModel { + public string Owner { get; set; } public IReadOnlyList Repositories { get; set; } public IDictionary> OrganizationRepositories { get; set; } }