# Functions
NewDownloader creates a new Downloader that will store the GitHub metadata in the given DB.
NewMemoryDownloader creates a new Downloader that stores GitHub data in memory.
NewRateLimitTransport returns a new NewRateLimitTransport, who will call the passed http.RoundTripper to process the http.Request Each client (with its own token) should use its own RateLimitTransport.
NewStdoutDownloader creates a new Downloader that will print the GitHub metadata to stdout.
SetRateLimitTransport wraps the passed client.Transport with a RateLimitTransport.
SetRetryTransport wraps the passed client.Transport with a RetryTransport.
# Structs
Downloader fetches GitHub data using the v4 API.
ErrAbuseRateLimit is returned when a request triggers any GitHub abuse detection mechanism https://developer.github.com/v3/#abuse-rate-limits.
ErrRateLimit is returned when a request failed because of a RateLimit https://developer.github.com/v4/guides/resource-limitations/#rate-limit.
ErrUnauthorized is returned when a response returns 401.
RateLimitTransport implements GitHub GraphQL API v4 best practices for avoiding rate limits https://developer.github.com/v4/guides/resource-limitations/#rate-limit https://developer.github.com/v3/#abuse-rate-limits RateLimitTransport will process a Request, and if the response could not be fetched because of a RateLimit or an AbuseRateLimit, it will return an ErrorRateLimit and it no longer process any further Requests until the Limit has been expired.
# Interfaces
Connection is a unified interface for GraphQL connections.
Query is a GraphQL query that returns Connection.