Refactor GitHub client to separate distinct steps in process.