read_githubarchive_json uses local cache, then S3