The problem is not having a third-party host, it's having no redundancy.
We use this, in our capistrano tasks :
set :repository, ( ENV[ 'FALLBACK' ] ? fallback_url : github_url )
If github is down, we just push on that secondary repos (which is indeed on one of our servers) and just process business as usual.