Edgar speelde vier seizoenen in de jeugdopleiding van Newcastle United. Hij debuteerde in de Premier League op 26 december 2006 tegen Bolton Wanderers. Op 1 januari 2007 maakte hij zijn eerste doelpunt voor Newcastle United tegen Manchester United. In totaal speelde hij negentien competitiewedstrijden voor The Magpies. In 2009 tekende hij een vierjarig contract bij Burnley. In maart 2010 werd hij voor twee maanden uitgeleend aan Swansea City. Tijdens het seizoen 2011/12 speelde Edgar 44 competitiewedstrijden, het seizoen erna nog slechts 27. Dit seizoen werd hij meestal als bankzitter gebruikt. In de zomer van 2014 tekende Edgar transfervrij een contract voor twee seizoenen bij Birmingham City FC; in de eerste seizoenshelft speelde hij zestien competitieduels. In januari 2015 werd hij voor de rest van het seizoen uitgeleend aan Huddersfield Town.[1]
In november 2008 werd Edgar voor het eerst opgeroepen voor het Canadees nationaal elftal voor een WK-kwalificatiewedstrijd tegen Jamaica. Hij debuteerde uiteindelijk pas drie jaar later, op 9 februari 2011 in de vriendschappelijke interland tegen Griekenland. Op 12 oktober 2012 maakte hij zijn eerste interlanddoelpunt: in het WK-kwalificatieduel tegen Cuba. In juli 2013 nam Edgar voor het eerst deel aan een interlandtoernooi, de CONCACAF Gold Cup 2013. Hij speelde mee in alle drie groepswedstrijden; van Martinique werd met 0–1 verloren, waarna Mexico ook won (2–0) en met 0–0 de groepsfase werd afgesloten tegen het Panamees voetbalelftal.[2] Bondscoach Benito Floro nam Roberts in juni 2015 op in de selectie voor de CONCACAF Gold Cup 2015, gehouden in de Verenigde Staten en Canada.[3]