diff --git a/client/src/store/sagas/projects.ts b/client/src/store/sagas/projects.ts index 3a1a0d8..ff17a20 100644 --- a/client/src/store/sagas/projects.ts +++ b/client/src/store/sagas/projects.ts @@ -3,10 +3,18 @@ import { FETCH_PROJECTS_SUCCESS, FETCH_PROJECTS_FAILURE } from '../actions/proje import { gitea } from '../../util/gitea'; export function* fetchProjectsSaga() { - - let projects; + let projects = []; try { - projects = yield call(gitea.fetchUserProjects.bind(gitea)) + let page = 1; + while(true) { + let pageProjects = yield call(gitea.fetchUserProjects.bind(gitea), page); + if (pageProjects.length === 0) { + break; + } + projects.push(...pageProjects); + page++; + } + } catch(error) { yield put({ type: FETCH_PROJECTS_FAILURE, error }); return; diff --git a/client/src/util/gitea.ts b/client/src/util/gitea.ts index faff29b..0c65c56 100644 --- a/client/src/util/gitea.ts +++ b/client/src/util/gitea.ts @@ -16,8 +16,8 @@ export class GiteaClient { ; } - fetchUserProjects() { - return fetch(`/gitea/api/v1/user/repos`) + fetchUserProjects(page = 1) { + return fetch(`/gitea/api/v1/user/repos?page=${page}`) .then(this.assertAuthorization) .then(this.assertOk) .then(res => res.json())