Separate gitlab shell install into it's own class, with tests