implements github auth