When having a big GitHub organization, with hundreds of repos, each with hundreds of branches and tags, refreshing the whole organization is not possible (or it takes ages) due to GitHub API quota being hit.
This is particularly bad when trying to add a new repo, it could take days, which is completely impractical.
There are several solutions to this issue that I can think of:
- Use GitHub GraphQL API to query the whole thing in one (or very few) request(s)
- Make a "shallow scan", that only discovers repos. Then each repo can be refreshed separately, which can 1. enable the quick addition of new repos and 2. distribute the refresh API bursts in time making hitting the API quota less likely
- Add a separate function to only discover one repo specified by the user