Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit a1bad3a

Browse files
authored
Merge pull request #1922 from github/fixes/1921-collaborator-repositories
Include collaborator repositories in clone dialog list
2 parents d0ae1d5 + 8beebe8 commit a1bad3a

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

src/GitHub.App/Services/RepositoryCloneService.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public async Task<ViewerRepositoriesModel> ReadViewerRepositories(HostAddress ad
6666

6767
var affiliation = new RepositoryAffiliation?[]
6868
{
69-
RepositoryAffiliation.Owner
69+
RepositoryAffiliation.Owner, RepositoryAffiliation.Collaborator
7070
};
7171

7272
var repositorySelection = new Fragment<Repository, RepositoryListItemModel>(
@@ -84,6 +84,7 @@ public async Task<ViewerRepositoriesModel> ReadViewerRepositories(HostAddress ad
8484
.Viewer
8585
.Select(viewer => new ViewerRepositoriesModel
8686
{
87+
Owner = viewer.Login,
8788
Repositories = viewer.Repositories(null, null, null, null, null, order, affiliation, null, null)
8889
.AllPages()
8990
.Select(repositorySelection).ToList(),

src/GitHub.App/ViewModels/Dialog/Clone/RepositorySelectViewModel.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,16 @@ public async Task Activate()
111111
var results = await service.ReadViewerRepositories(connection.HostAddress).ConfigureAwait(true);
112112

113113
var yourRepositories = results.Repositories
114+
.Where(r => r.Owner == results.Owner)
114115
.Select(x => new RepositoryItemViewModel(x, "Your repositories"));
116+
var collaboratorRepositories = results.Repositories
117+
.Where(r => r.Owner != results.Owner)
118+
.OrderBy(r => r.Owner)
119+
.Select(x => new RepositoryItemViewModel(x, "Collaborator repositories"));
115120
var orgRepositories = results.OrganizationRepositories
116121
.OrderBy(x => x.Key)
117122
.SelectMany(x => x.Value.Select(y => new RepositoryItemViewModel(y, x.Key)));
118-
Items = yourRepositories.Concat(orgRepositories).ToList();
123+
Items = yourRepositories.Concat(collaboratorRepositories).Concat(orgRepositories).ToList();
119124
ItemsView = CollectionViewSource.GetDefaultView(Items);
120125
ItemsView.GroupDescriptions.Add(new PropertyGroupDescription(nameof(RepositoryItemViewModel.Group)));
121126
ItemsView.Filter = FilterItem;
@@ -149,7 +154,7 @@ bool FilterItem(object obj)
149154

150155
IRepositoryModel CreateRepository(IRepositoryItemViewModel item)
151156
{
152-
return item != null ?
157+
return item != null ?
153158
new RepositoryModel(item.Name, UriString.ToUriString(item.Url)) :
154159
null;
155160
}

src/GitHub.Exports/Models/ViewerRepositoriesModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace GitHub.Models
55
{
66
public class ViewerRepositoriesModel
77
{
8+
public string Owner { get; set; }
89
public IReadOnlyList<RepositoryListItemModel> Repositories { get; set; }
910
public IDictionary<string, IReadOnlyList<RepositoryListItemModel>> OrganizationRepositories { get; set; }
1011
}

0 commit comments

Comments
 (0)