Moved to a caching model. cache.js should be executed in a separate instance. Still need to take advantage of last-updated fields or ETag so I'm not needlessly accessing github.