anuraghazra/github-readme-stats

Stats and languages results incorrect due to graphql 100 records limit

Open

#1,852 opened on Jul 7, 2022

View on GitHub
 (14 comments) (6 reactions) (1 assignee)JavaScript (33,282 forks)batch import
:star: top bugbughacktoberfesthacktoberfest-acceptedhelp wantedlang-cardstats-card

Repository metrics

Stars
 (79,424 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Describe the bug

The current language and stats card results are incorrect for users with more than 100 repositories (see https://docs.github.com/en/graphql/overview/resource-limitations). This is because we are currently only fetching the first 100 repositories of a user account.

https://github.com/anuraghazra/github-readme-stats/blob/a68abbb9b3a47ad73988f37fce274e882e86b7ad/src/fetchers/stats-fetcher.js#L47

https://github.com/anuraghazra/github-readme-stats/blob/a68abbb9b3a47ad73988f37fce274e882e86b7ad/src/fetchers/top-languages-fetcher.js#L17

Because of this not all languages and stars of a user are represented.

Expected behaviour

I think we can use pagination options (i.e. cursor, after, endCursor objects) to loop through all repositories of a user account (see https://stackoverflow.com/a/70039506/8135687). @anuraghazra Let me know what you think.

TODOs

  • Allow fetching of multiple pages for the languages data. #2111.
  • Improve the stats card such that it fetches more pages when a user has more than 100 repositories with stars. #2100
    • Merge #2159 to make this available on private Vercel instances while giving us the control to disable it on the public instance because of rate-limiting problems.

Contributor guide