Publicatie datum: 2026-09-19

We weten dat de grootste hindernis om van GitHub over te stappen niet per se ideologie is, maar vaak gewoon logistiek. Eén repository handmatig migreren is goed te doen. Zeker met de uitstekende, op de UI gebaseerde migratietool van Forgejo. Maar tientallen repositories migreren, of je gehele account, is een weekendklus van klikken, wachten en nagaan dat er niets verloren is gegaan.

Daarom lanceren we vandaag ForgePort, een kleine CLI-tool die repositories migreert van GitHub naar het OpenCommit-platform. Of je nu één project wilt overzetten of in één keer alle repositories van een gebruiker of organisatie wilt migreren, ForgePort doet het zware werk voor je.

Haal het hier: https://opencommit.eu/opencommit/forgeport

Neem het hele account mee, niet zomaar één repo

ForgePort leest al zijn configuratie uit één enkel YAML-bestand in de map waarin je de tool uitvoert. Elke repository wordt één voor één gemigreerd via de Forgejo-migratie-API, met een korte willekeurige pauze tussen de migraties zodat we de server niet overbelasten.

Geef er één repository aan en hij migreert er één:

2026/01/01 12:00:00 migrating https://github.com/foo/bar -> opencommit/bar
2026/01/01 12:00:05 migrated: https://opencommit.eu/opencommit/bar

Of geef een enkele gebruikers-/organisatienaam en hij breidt dat uit naar alle bronrepositories (geen forks) van dat account, en werkt daarna de lijst af. Forks worden altijd uitgesloten en je kunt zelf bepalen of private en gearchiveerde repositories wel of niet worden meegenomen.

Wat er wordt gemigreerd bepaal je volledig zelf: issues, pull requests, milestones, labels, wiki, releases en meer kunnen per repository aan- of uitgezet worden, of in één keer worden ingesteld in een defaults-sectie en overal worden overgenomen. Let wel: als je kiest om de repositories van een hele gebruiker of organisatie te migreren, kun je opties alleen als standaardwaarden instellen, niet per repo. Wil je meer controle, dan zul je een lijst met repos en hun opties in het configuratiebestand moeten opgeven.

Eerst een testrun met -dryrun

Niet zeker wat je precies gaat verhuizen? ForgePort heeft een -dryrun-vlag die elke repository oplost (inclusief uitbreiding van gebruikers/orgs) en precies laat zien wat er zou worden gemigreerd, zonder contact op te nemen met OpenCommit. Voer het uit, bekijk de lijst en migreer pas daarna écht.

Gedacht aan geheimen

Migratie heeft tokens nodig: een GitHub-personal access token voor de bronrepositories en een OpenCommit- (Forgejo) API-token voor de bestemming. Beide kunnen in je omgeving staan (GITHUB_TOKEN, FORGEJO_TOKEN) of in het configuratiebestand, waarbij de omgeving voorrang heeft. Omdat de configuratie geheimen kan bevatten, is deze git-ignored. Commit migrate.yaml nooit als het geheimen bevat.

Aan de slag

ForgePort is geschreven in Go en gebouwd op onze eigen Forgejo SDK. Je kunt een voorgebouwde binary pakken of de tool vanaf de broncode bouwen (vereist Go 1.26 of later). Het wordt gedistribueerd onder de EUPL-1.2-licentie, en hoewel we het hebben gebouwd voor OpenCommit, zou het bruikbaar moeten zijn om naar elk Forgejo-gebaseerd platform te migreren — wijs het gewoon naar de URL van je bestemming. We verwelkomen pull requests voor functietoevoegingen en verbeteringen.

Eén eerlijke beperking voor nu: ForgePort migreert geen packages. Die zul je zelf moeten verhuizen, bijvoorbeeld met Skopeo en een kleine bash-script.

We hopen dat ForgePort weer één excuus wegneemt om te blijven zitten. Je code verdient een thuis dat jouw waarden deelt, en verhuizen is net een stuk makkelijker geworden.

Voor de volledige configuratiereferentie, kijk in de ForgePort-repository.