Gashi doorliep de jeugdopleiding van FC Zürich, waarvoor hij ook eenmaal uitkwam in het seizoen 2006/07. In 2007 werd hij verhuurd aan FC Schaffhausen en het seizoen erop aan AC Bellinzona. In januari 2010 had hij Neuchâtel Xamax voldoende overtuigd om hem over te nemen. Hij werd in januari 2011 verhuurd aan FC Aarau, waar hij na het faillissement van Neuchâtel ook een permanente verbintenis ondertekende. Na het aflopen van zijn contract bij Aarau verkaste de middenvelder naar Grasshoppers, waar hij een contract tekende tot medio 2015. Na twee seizoenen verkaste Gashi naar FC Basel en begin 2016 maakte hij de overstap naar Colorado Rapids.[1] Na drie seizoenen besloten club en speler uit elkaar te gaan.[2] Een klein jaar later keerde hij terug bij FC Aarau.[3] In de zomer van 2023 besloot Gashi op vierendertigjarige leeftijd een punt te zetten achter zijn actieve loopbaan.[4]
Gashi maakte zijn debuut in het Albanees voetbalelftal op 14 augustus 2013, toen met 2–0 werd gewonnen van Armenië door doelpunten van Valdet Rama en Ergys Kaçe. Van bondscoach Gianni De Biasi moest de middenvelder op de bank beginnen. In de tweede helft viel hij in voor Edmond Kapllani. De andere debutanten dit duel waren Amir Abrashi (Grasshoppers), Vullnet Basha (FC Sion) en Jürgen Gjasula (Litex Lovetsj).[5] In juni 2016 nam Gashi met Albanië deel aan het Europees kampioenschap voetbal 2016 in Frankrijk, het eerste interlandtoernooi waarvoor het land zich ooit plaatste. Albanië werd in de groepsfase uitgeschakeld na een overwinning op Roemenië (1–0) en nederlagen tegen Zwitserland (0–1) en Frankrijk (0–2). Gashi speelde alleen tegen Zwitserland mee.