[go: up one dir, main page]

Skip to content

Improve progress reporting of repository mirroring

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem to solve

Repo mirroring can be slow. There is currently no indication of how long the process will take, or even whether any progress is being made. In addition, failures do not appear to be reported until the page is manually reloaded.

Target audience

DevOps Engineer, I guess — but anybody who uses repo mirroring and is not sitting at the end of a gigabit link :)

Further details

When I attempted to mirror a repo from a self-hosted GitLab CE (Omnibus Edition) to GitHub, it did not auto-start. On clicking the sync button in the list of mirrored repositories, it changed to a spinner with a tooltip saying just "Updating". It was not until I reloaded the page manually some time later that I discovered the password was incorrect.

Additionally, the error message is only visible when mousing over the "Error" indicator. For long and complicated errors, it is necessary to use the browser's DOM inspector to get the message into a state where you can read it while working to correct the error. (To make matters worse, the email address was GitHub complaining that the push would publish a private email address. URLs were provided in the error message to enable me to correct this, but GitLab deleted them from the error message rather than escaping them.)

On correcting the issue and starting the mirroring process again, I am once again looking at a spinner with just the tooltip "Updating". I have no idea how long this process will take, or if push speeds are slow (indicating, perhaps, that some other process is hogging bandwidth — my connection is only 18Mbit/s down, 0.75Mbit/s up, so this matters a lot).

Proposal

The status text and sync button state should be live-updated using AJAX. Ideally, the status text should be moved from a tooltip (not touch-friendly) to a status line under the repo URL.

On-hover tooltips should not be used to show information that the user might need to refer to for more than a brief instant.

What does success look like, and how can we measure that?

If there is an error on the mirroring process, the sync button stops spinning and the error message shows in red under the repo URL.

While the mirroring process is taking place, a status line appears under the repo URL. Ideally, this will contain amount of data transferred, total amount of data to transfer, and current transfer rate (though whether this can be drawn from git push is another matter!)

Links / references

The live updating would seem to be related to gitlab-ce#42777 as this is mainly down to the use of full reloads rather than in-place updates — so work on that could possibly help this.

Edited by 🤖 GitLab Bot 🤖