UX improvement - NOT syncing all repositories when filtered on 'failed'
Release notes
Problem to solve
Emergency call with customer, we looked into a relatively small number of repositories that had failed to sync. GitLab team members can find out more in the ticket and SF
They had around 28,500 repositories in total.
We drilled into the issues for individual repos, ending up in this view, with 'filer by status' set to 'failed'.
The errors looked to be temporary, so we agreed to trigger a resync for those repos.
Neither the customer or I expected the 'resync all' button to literally resync all 28,500 repositories. Not when filtered on just failed ones.
The customer therefore accidentally triggered a resync of all 28,500 twice - we realised what was going on the second time.
Saw this on 13.6.7 - single node Omnibus (a very large server)
Intended users
User experience goal
In this context, it would be expected (and it would be nice) if the buttons resynced just failed repos.
I guess the rails console instructions in the docs are doing a similar thing, so being able to do it in the UI would be nice?
failed_geo_syncs.each do |fgs|
registry = Geo::ProjectRegistry.failed.find(fgs)
registry.update(resync_repository: true, force_to_redownload_repository: false, repository_retry_count: 0)
Geo::RepositorySyncService.new(registry.project).execute
end
A good first iteration would be to warn that this will resync ALL repos, as if a customer's troubleshooting failed ones, resetting all repos to 'unsynced' is not desirable.