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

Commit 12a33f9

Browse files
committed
Use RepositoryAffiliation.OrganizationMember
Load organization repositories by including OrganizationMember in ownerAffiliations rather than iterating over Repositories for each of the viewer's Organizations.
1 parent b830a6d commit 12a33f9

File tree

3 files changed

+6
-15
lines changed

3 files changed

+6
-15
lines changed

src/GitHub.App/Services/RepositoryCloneService.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public async Task<ViewerRepositoriesModel> ReadViewerRepositories(HostAddress ad
7575

7676
var affiliation = new RepositoryAffiliation?[]
7777
{
78-
RepositoryAffiliation.Owner, RepositoryAffiliation.Collaborator
78+
RepositoryAffiliation.Owner, RepositoryAffiliation.Collaborator, RepositoryAffiliation.OrganizationMember
7979
};
8080

8181
var repositorySelection = new Fragment<Repository, RepositoryListItemModel>(
@@ -97,13 +97,6 @@ public async Task<ViewerRepositoriesModel> ReadViewerRepositories(HostAddress ad
9797
Repositories = viewer.Repositories(null, null, null, null, null, null, null, order, affiliation, null)
9898
.AllPages()
9999
.Select(repositorySelection).ToList(),
100-
Organizations = viewer.Organizations(null, null, null, null).AllPages().Select(org => new
101-
{
102-
org.Login,
103-
Repositories = org.Repositories(null, null, null, null, null, null, null, order, null, null)
104-
.AllPages()
105-
.Select(repositorySelection).ToList()
106-
}).ToDictionary(x => x.Login, x => (IReadOnlyList<RepositoryListItemModel>)x.Repositories),
107100
}).Compile();
108101
}
109102

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,13 @@ public async Task Activate()
114114
var yourRepositories = results.Repositories
115115
.Where(r => r.Owner == results.Owner)
116116
.Select(x => new RepositoryItemViewModel(x, "Your repositories"));
117-
var collaboratorRepositories = results.Repositories
117+
118+
var orgRepositories = results.Repositories
118119
.Where(r => r.Owner != results.Owner)
119120
.OrderBy(r => r.Owner)
120-
.Select(x => new RepositoryItemViewModel(x, "Collaborator repositories"));
121-
var orgRepositories = results.Organizations
122-
.OrderBy(x => x.Key)
123-
.SelectMany(x => x.Value.Select(y => new RepositoryItemViewModel(y, x.Key)));
124-
Items = yourRepositories.Concat(collaboratorRepositories).Concat(orgRepositories).ToList();
121+
.Select(r => new RepositoryItemViewModel(r, r.Owner));
122+
123+
Items = yourRepositories.Concat(orgRepositories).ToList();
125124
log.Information("Read {Total} viewer repositories", Items.Count);
126125
ItemsView = CollectionViewSource.GetDefaultView(Items);
127126
ItemsView.GroupDescriptions.Add(new PropertyGroupDescription(nameof(RepositoryItemViewModel.Group)));

src/GitHub.Exports/Models/ViewerRepositoriesModel.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,5 @@ public class ViewerRepositoriesModel
77
{
88
public string Owner { get; set; }
99
public IReadOnlyList<RepositoryListItemModel> Repositories { get; set; }
10-
public IDictionary<string, IReadOnlyList<RepositoryListItemModel>> Organizations { get; set; }
1110
}
1211
}

0 commit comments

Comments
 (0)