Self-hosted app for migrating GitHub repositories to Codeberg, Forgejo, Gitea, or GitLab, with permanent repository deletion support.
Maybe, just maybe, but most certainly because I'm a dinosaur (Old-school web developer —
just HTML, CSS, and vanilla JavaScript) and have been away for a while, but not too far, I
was aware of the earthquakes happening in code's world but barely felt them. If you are
a developer you know what I'm talking about, otherwise check out
Why do you do this, GitHub?.
The web is now full of articles, videos and even dedicated pages to show what
happened, is happening in real time
The Missing GitHub Status Page, and
where all these major cracks are probably going to...
AI trained on developers'
code without anyone being asked. Open source code modified using AI and made proprietary
thanks to "legal" loopholes... Watch
This Is Crazy if you're not
yet in the picture...
Bottom line, AI is being misused from day one at much more
dangerous scales — who would have thought it? (sarcasm) — so it's time to backup your
online digital assets (whatever they may be) and search for human clouds if you want to
share them, or create your own
VPS.
Migrating my repos
Millions of developers, enterprises, platforms... were deeply affected by GitHub's
outages, making a lot of them leaving it, and a lot more searching for alternatives...
Because
I finally swallowed
The Red Pill that had been hanging
halfway down my throat for years and totally switched back to Linux, I said to myself:
"It's time to make some digital organization!". Easier said than done with
thousands of assets that have been accumulated over the years...
I had two urgent
priorities:
- Bookmarks — For which I created //bookmarks. You can read more about it on // bookmarks: Firefox Bookmark Manager
- Repositories — For which I created repo-migrator
I installed a local Forgejo instance and another one on my VPS then migrated all my repos
(public and private) in one shot using repo-migrator. Then came the question of
finding public cloud-based alternatives...
The first obvious thought was GitLab, but I
made a lot of research and here is was I found:
- Codeberg — Git hosting
- CodeFloe — Git hosting
- GitLab — Git platform + DevOps
- Heptapod — Mercurial forge built on GitLab CE concepts
- Launchpad — Canonical’s collaboration platform with Git support
- NotABug — Git hosting
- sourcehut — Git-based development platform
- Savannah — Free software hosting with Git support
Of course there are many more out there like AWS CodeCommit, Azure DevOps, Beanstalk,
Bitbucket, OneDev, RhodeCode... but I'm obviously not looking for these 🤣
Worth
mentioning some self-hosted software:
- Forgejo — Self-hosted Git forge
- GitBucket — Self-hosted Git platform
- Gitea — Self-hosted Git forge
- GitLab Self-Managed — Self-hosted DevOps platform with Git repository management
- Gogs — Self-hosted Git service
- Radicle — Decentralized self-hosted Git collaboration platform
Repo Migrator Application
The app is simple, intuitive, and easy to use. It has two pages/views:
- The migrator page — To migrate repos
- The remover page — To delete repos
Migrator page
The migrator page is composed of:
-
A header menu — To navigate between the two pages
-
A migration source — The platform from which repositories will be migrated, GitHub
-
A repositories select — Available after fetching GitHub repos, to select the repos you
want to migrate
-
A migration destination — To choose where to migrate the fetched GitHub repos
-
A migration log — That reports the migration status of each repo
Remover page
The remover page is composed of:
-
A header menu — To navigate between the two pages
-
A remover source — To select the platform from which you want to delete repositories
-
A repositories select — Available after fetching repos, to select the repos you want to
delete
-
A double confirmation step — To warn you and make sure that you are aware of your
decision
-
A deletion log — That reports the deletion status of each repo
Notes
- The app is made using LiteNode only, my Node.js web framework, that proves the unnecessary compilation and complication of multiple packages to achieve simple tasks, just like my CMS/SSG Aether proves it.
- For now, the app migrates only: Git history, branches, tags, and releases. If you need to import more data, use the available built-in tools of the platform where you are migrating repositories.
- The supported platforms are: Codeberg, Forgejo/Gitea, GitHub, GitLab.
- Zero credentials are hard-coded. All tokens and usernames are submitted through the UI at runtime and never stored.
- A detailed README is included in the source code.
On AI Use
Yes, I use AI tools as part of my development process to refine ideas, improve logic, and
evaluate architectural decisions more efficiently. Without them, the process would have
taken significantly longer — but every decision, every line of code, is still written by
me.
I see AI as a thinking partner, not a substitute. AI helps get done things much
faster, but
any developer must review every line of code, test every aspect and redirect the AI
when it hallucinates.
Source Code
MIT-licensed. The application’s source code is available on the following platforms: