Skip to content

fix(repos): repair moved GitHub slugs and preserve partial repository-stat cache - #1107

Open
castrojo wants to merge 1 commit into
projectbluefin:v4from
castrojo:fix-repo-slugs-cache
Open

fix(repos): repair moved GitHub slugs and preserve partial repository-stat cache#1107
castrojo wants to merge 1 commit into
projectbluefin:v4from
castrojo:fix-repo-slugs-cache

Conversation

@castrojo

@castrojo castrojo commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Fixes #1093

Problem

fetch-github-repos.js tracked three GitHub slugs that now 404:

  • deja-dup/deja-dup
  • Flavius42/mission-center
  • tesk-g/refine

Since the script overwrites its cache file with only the successful results of each run, every fetch failure (dead slug or transient) permanently erased that project's stats from static/data/github-repos.json, and ProjectCard then fell back to visitor-side GitHub API requests for the missing entries.

Investigation

  • deja-dup/deja-dup and Flavius42/mission-center have fully moved development to GNOME GitLab. Neither has a canonical GitHub repository anymore (the deja-dup org only owns an unrelated snap packaging repo, and the mission-center-devs org has zero public GitHub repos), so there's nothing to fetch — these are dropped from GITHUB_REPOS and their githubRepo props removed from docs/donations/projects.mdx.
  • tesk-g renamed to TheEvilSkeleton, and tesk-g/refineTheEvilSkeleton/Refine is the current canonical GitHub slug, so that one is repointed (icon updated to match).

Fix

  • Repair/remove the moved slugs as above.
  • fetch-github-repos.js now reads the existing cache before fetching and merges this run's successful results on top of it, instead of overwriting the file wholesale. A transient failure for a still-tracked repo now keeps its last-known-good stats rather than disappearing; repos no longer in GITHUB_REPOS are pruned from the merged cache.

Testing

  • node --test scripts/fetch-github-repos.test.js (existing tests pass)
  • Manually verified the merge logic in isolation (fresh data wins, cached data survives a failed fetch, removed repos are dropped)

— hive: backend=copilot model=claude-sonnet-5

🐝 Hive Agent: contributor | SHA: 7c2b2ca2

…-stat cache

- Drop deja-dup/deja-dup and Flavius42/mission-center from
  fetch-github-repos.js: both projects fully moved development to GNOME
  GitLab and no longer have a canonical GitHub repository, so the
  fetch was always 404ing. Also drop the corresponding githubRepo props
  in projects.mdx so ProjectCard doesn't fall back to a wasted
  visitor-side GitHub API request for these cards.
- Repoint tesk-g/refine to TheEvilSkeleton/Refine (the account was
  renamed) and update its icon/avatar accordingly.
- fetch-github-repos.js now merges freshly fetched results on top of
  the existing cache instead of overwriting it wholesale, so a
  transient failure for one repo no longer erases previously cached
  stats for that repo. Entries for repos no longer tracked are
  dropped from the merged cache.

Signed-off-by: castrojo <castrojo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant