Consider switching `Repository#fetch_remote` to use Rugged

One issue we've seen on GitLab.com is that RepositoryUpdateMirrorWorker blocks because it shells out to git to fetch a remote (gitlab-com/infrastructure#698).

I believe it's possible that Sidekiq will get blocked waiting for the git command to complete. If we used Rugged here, I think our Sidekiq process will be able to take advantage of multiple threads. @yorickpeterse Is this a valid assessment?

/cc: @pcarranza

Assignee Loading
Time tracking Loading