[BUG]: Cache key ignores auth state, causing stale contributor data after adding PAT

Open Beginner friendly
#228 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
84/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
github, javascript
Domain
api, backend

Research direction

Start in src/services/github.js at fetchWithCache(), then trace its use from fetchOrg, fetchRepos, fetchContributors, fetchIssues, and fetchPulls. Reproduce the unauthenticated-then-authenticated sequence described in the issue and inspect cacheGet/cacheSet behavior. Done means page=1 is fetched again after a PAT is added instead of being served from the unauthenticated cache.

Written by the indexing model from the issue text.

Description

bug
Bug Description

fetchWithCache() in src/services/github.js caches responses using only the URL as key, ignoring pat. Since fetchContributors uses maxPages = pat ? 10 : 1, page=1 has the same URL whether authenticated or not. Once page=1 is cached without a PAT, adding a PAT later silently returns the old cached page=1 instead of re-fetching with auth. Affects fetchOrg, fetchRepos, fetchContributors, fetchIssues, fetchPulls.

Steps to Reproduce
  1. Without a PAT, explore an org (e.g. AOSSIE-Org) — caches page=1 contributors for each repo.
  2. Add a PAT in Settings, Save.
  3. Explore the same org again.
  4. In DevTools → Network, filter by a repo already explored in step 1 (e.g. "Website").
  5. page=1 shows no new request (served from cache); only page=2, page=3... appear as fresh requests.
Logs and Screenshots

async function fetchWithCache(url, pat) {
const cached = await cacheGet(url) // <-- pat ignored here
if (cached) return cached
...
const data = await res.json()
cacheSet(url, data) // <-- pat ignored here too
return data
}

Environment Details

No response

Impact

Critical - Application is unusable

Code of Conduct
  • I have joined the Discord server and will post updates there
  • I have searched existing issues to avoid duplicates
Dominant language
JavaScript
Stars
35
Forks
98
Avg merge
4d 14h
Merged PRs (30d)
12

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AOSSIE-Org/OrgExplorer

All issues in AOSSIE-Org/OrgExplorer

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.