forcibly migrate remaining Gitolite repositories to GitLab
As part of the Gitolite retirement procedure (TPA-RFC-36, #41180 (closed)), migrate remaining repositories from Gitolite to GitLab.
The goal is to complete this from within 12 months of the announcement, or 3 months from the original due date of this ticket, that is, before 2024-06-08, at which point the servers are supposed to be retired.
The actual list of repositories to migrate should probably be added here and users warned about the impeding change one last time. An inventory will have previously been made in #41214 (closed).
In TPA-RFC-36, the following was established:
Per-repository particularities
This section documents the fate of some repositories we are aware of. If you can think of specific changes that need to happen to repositories that are unusual, please do report them to TPA so they can be included in this proposal.
idle repositories
Repositories that did not have any new commit in the last two years are considered "idled" and should be migrated or archived to GitLab by their owners. Failing that, TPA will archive the repositories in the GitLab
legacy/
namespace before final deadline.user repositories
There are 358 repositories under the
user/
namespace, owned by 70 distinct users.Those repositories must be migrated to their corresponding user on the GitLab side.
If the Gitolite user does not have a matching user on GitLab, their repositories will be moved under the
legacy/gitolite/user/
namespace in GitLab, owned by the GitLab admin doing the migration."mirror" and "extern" repositories
Those repositories will be migrated to, and archived in, GitLab within a month of the adoption of this proposal.
Applications team repositories
[See #41181 (closed).]
So, as a task list, per repos:
-
5 mirror
orextern
(migrate and archive) -
12 TPA (see #41219 (closed)) -
49 migrated -
87 Attic
(migrate and archive) -
97 Other
(migrate, archive "idle" repositories) -
288 user
(migrate and archive)
See #41214 (comment 2983291) for how those numbers were established.
update: we also need to take special care of private repositories, here's a list:
-
admin/account-keyring (#41219 (closed)) -
admin/buildbot-conf (#41219 (closed)) -
admin/tor-passwords (#41219 (closed)) -
admin/tor-virt (#41219 (closed)) -
admin/trac/TracAccountManager (#41219 (closed)) -
admin/trac/trac-email (#41219 (closed)) -
dirauth-conf (tpo/network-health/team#338 (closed), redirects done in #41433 (closed)) -
gitolite-admin (#41219 (closed)) -
jtor (make public) -
jtorctl (make public) -
marco (migrate in a private repo, https://gitlab.torproject.org/tpo/network-health/marco) -
metrics-utils (make public) -
puppetor (make public) -
pyonionoo (make public) -
sbws (make public) -
secteam (destroy) -
sponsor19 (archive, public) -
stormy (compare with https://github.com/glamrock/stormy, if same, destroy and redirectwas empty) -
tor-browser-pre24.3.0 (make public) -
tor-history (destroy) -
torstatus (make public) -
user/arma/tor-ideas (destroy) -
user/ioerror/filedump (destroy) -
user/nickm/libevent-ideas (#41189 (closed)) -
user/nickm/tor-ideas (#41189 (closed))
other misc tasks:
-
post-migration verifications: -
check on disk space effect -
visual rewrite map check for oddities -
check each gitolite repository has an entry in the apache rewrite map -
check each gitolire repository for empty repositories, we implemented that check too late and some should be redirected instead of forks (e.g. user/ahf/tor-browser
was empty) -
check that each entry in the rewrite map exists on gitlab -
check that the git ls-remote
output matches (probably too many false negatives here) -
check for duplicate left-sides in the map
-
-
repos to redo -
user/aagbsn/torflow
-
-
re-archive all repos in legacy/gitolite (looks like some weren't properly archived) -
remove explicit memberships of all repos in legacy/gitolite -
communicate the migration, important points to mention (see tpo/web/blog#40071 (closed)) - possible data loss in redirections for existing repos, assumed safe
- possible data loss in user redirections, in particular
- clones were done on sometimes wild guess, sometimes first alphabetical position gets to be the root of the tree
-
archive tpo/tpa/gitolite-admin