Refactor and extract common logic from asana, basecamp and github