Skip to content

Commit d1bb3bd

Browse files
jankeromnesroboquat
authored andcommitted
[server] Paginate GitHub API request listing user repositories in New Project flow
1 parent d80a5b4 commit d1bb3bd

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

components/server/ee/src/prebuilds/github-service.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ export class GitHubService extends RepositoryService {
2626
@inject(GithubContextParser) protected githubContextParser: GithubContextParser;
2727

2828
async getRepositoriesForAutomatedPrebuilds(user: User): Promise<ProviderRepository[]> {
29-
const repositories = (await this.githubApi.run(user, (gh) => gh.repos.listForAuthenticatedUser({}))).data;
30-
const adminRepositories = repositories.filter((r) => !!r.permissions?.admin);
29+
const octokit = await this.githubApi.create(user);
30+
const adminRepositories = await octokit.paginate(
31+
octokit.repos.listForAuthenticatedUser,
32+
{ per_page: 100 },
33+
(response) => response.data.filter((r) => !!r.permissions?.admin),
34+
);
3135
return adminRepositories.map((r) => {
3236
return <ProviderRepository>{
3337
name: r.name,

components/server/src/github/api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ export interface QueryLocation {
140140
export class GitHubRestApi {
141141
@inject(AuthProviderParams) readonly config: AuthProviderParams;
142142
@inject(GitHubTokenHelper) protected readonly tokenHelper: GitHubTokenHelper;
143-
protected async create(userOrToken: User | string) {
143+
public async create(userOrToken: User | string) {
144144
let token: string | undefined;
145145
if (typeof userOrToken === "string") {
146146
token = userOrToken;

0 commit comments

Comments
 (0)