From a9dd81aed96fff9f05861885784576e00d68d68f Mon Sep 17 00:00:00 2001 From: KaranManickam Date: Sat, 4 Jul 2026 12:25:02 +0530 Subject: [PATCH 1/2] fix: add safety guards for paginated GitHub API requests --- src/services/github.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/services/github.js b/src/services/github.js index e2bda91..e6ef2fd 100644 --- a/src/services/github.js +++ b/src/services/github.js @@ -101,8 +101,10 @@ export async function fetchRepos(org, repoCount, pat) { export async function fetchContributors(org, repo, pat) { const all = [] for(let page = 1; ; page++) { + if (page > 50) break const url = `https://api.github.com/repos/${org}/${repo}/contributors?per_page=100&page=${page}` const data = await fetchWithCache(url, pat) + if (!Array.isArray(data)) break all.push(...data) if(data.length < 100) break } @@ -112,8 +114,10 @@ export async function fetchContributors(org, repo, pat) { export async function fetchIssues(org, repo, pat) { const all = [] for(let page = 1; ; page++) { + if (page > 50) break const url = `https://api.github.com/repos/${org}/${repo}/issues?state=all&per_page=100&page=${page}` const data = await fetchWithCache(url, pat) + if (!Array.isArray(data)) break all.push(...data) if(data.length < 100) break } From 13c1114648ca302197e4612ae6d9efa5f3125b94 Mon Sep 17 00:00:00 2001 From: KaranManickam Date: Sat, 4 Jul 2026 12:49:43 +0530 Subject: [PATCH 2/2] fix: addressed the changes suggested by code rabbitai --- src/services/github.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/services/github.js b/src/services/github.js index e6ef2fd..eb5adc0 100644 --- a/src/services/github.js +++ b/src/services/github.js @@ -104,7 +104,10 @@ export async function fetchContributors(org, repo, pat) { if (page > 50) break const url = `https://api.github.com/repos/${org}/${repo}/contributors?per_page=100&page=${page}` const data = await fetchWithCache(url, pat) - if (!Array.isArray(data)) break + if (!Array.isArray(data)) { + console.warn(`[fetchContributors] Unexpected response on page ${page} for ${org}/${repo}:`, data) + break + } all.push(...data) if(data.length < 100) break } @@ -117,7 +120,10 @@ export async function fetchIssues(org, repo, pat) { if (page > 50) break const url = `https://api.github.com/repos/${org}/${repo}/issues?state=all&per_page=100&page=${page}` const data = await fetchWithCache(url, pat) - if (!Array.isArray(data)) break + if (!Array.isArray(data)) { + console.warn(`[fetchIssues] Unexpected response on page ${page} for ${org}/${repo}:`, data) + break + } all.push(...data) if(data.length < 100) break }