Make the GitHub Plugin Robust
Currently, the GitHub plugin is quite fragile. When loading a large repository, it is quite likely to fail in a variety of ways, for example:
- invariant violation on missing Reaction author
- GitHub hourly rate limit exceeded
- Maximum call stack size exceeded
- Failures due to entity typename changes
- Failures when a node has been deleted
- Other contract violations in the API
These issues can sometimes be worked around by updating the list of blacklisted object IDs, but this is itself a high-friction and poorly documented process, and requires the user to invalidate their cache and re-download the whole project.
The net consequence of all these issues is that running SourceCred on arbitrary GitHub projects is a substandard experience which creates a lot of frustration for users.
However, thanks to the object blacklisting system, none of these issues block SourceCred’s dogfooding, so it’s been easy for us to ignore these problems.
- We’ll stop frustrating early users
- It will become possible to reliably run SourceCred on large repositories
Estimated Work (hours):
40-80? I think it’s a lot of work.
- @wpank started a series of pull requests addressing some of these issues, but they didn’t merge.
- @wchargin wrote a detailed implementation plan for fixing the inconsistent typename issues
TODO (add contributions that already apply, and new ones)