more robust repo parsing