Move GH user middleware to its own file