From c94d4035fbcbaeed3f964e27895847691d1f1e0f Mon Sep 17 00:00:00 2001 From: Roshni Roshni Date: Wed, 9 Sep 2026 12:08:25 +0530 Subject: [PATCH 1/2] fix: handle non-array GitHub API responses --- src/services/github.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/services/github.js b/src/services/github.js index a4180fa..7dcbb0e 100644 --- a/src/services/github.js +++ b/src/services/github.js @@ -76,7 +76,9 @@ async function fetchWithCache(url, pat) { if (res.status === 403) throw new Error('RATE_LIMIT') if (res.status === 404) throw new Error('NOT_FOUND') if (!res.ok) throw new Error(`HTTP_${res.status}`) - + if(res.status==204){ + return[] + } const data = await res.json() cacheSet(url, data) // write-back, non-blocking return data @@ -104,6 +106,7 @@ export async function fetchContributors(org, repo, pat) { for(let page = 1; page<=maxPages ; page++) { 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 } @@ -116,6 +119,7 @@ export async function fetchIssues(org, repo, pat) { for(let page = 1; page<=maxPages ; page++) { 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 } @@ -128,6 +132,7 @@ export async function fetchPulls(org, repo, pat) { for(let page = 1; page<=maxPages ; page++) { const url = `https://api.github.com/repos/${org}/${repo}/pulls?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 efb4d09b933d49f1fff99eec8ce2b2689a46ef56 Mon Sep 17 00:00:00 2001 From: Roshni Roshni Date: Wed, 9 Sep 2026 12:28:17 +0530 Subject: [PATCH 2/2] fix: cache empty 204 responses --- src/services/github.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/github.js b/src/services/github.js index 7dcbb0e..ef8a85d 100644 --- a/src/services/github.js +++ b/src/services/github.js @@ -77,6 +77,7 @@ async function fetchWithCache(url, pat) { if (res.status === 404) throw new Error('NOT_FOUND') if (!res.ok) throw new Error(`HTTP_${res.status}`) if(res.status==204){ + cacheSet(url, []) return[] } const data = await res.json()