~huyngo/gh-migrate

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~huyngo/gh-migrate
read/write
git@git.sr.ht:~huyngo/gh-migrate

You can also use your local clone with git send-email.

#Tools for migrating from GitHub to other forges

Many people argue it is difficult to move from GitHub to other forges such as Gitea or Gitlab, having so many issues and pull requests stuck there. This project is an attempt to explore how correct this assertion is.

This project is unaffiliated with GitHub or any other forge.

#Plan

diagram illustrating how migration works

This migration tool first import the data from GitHub using its API. This API has a rate limit: 60 unauthenticated requests and 5000 authenticated requests per hour. GitHub authentication is therefore required for this step, otherwise it would probably be faster to migrate by hand.

Afterwards, you can run another command to import this data to the target forge. We don't know about the target forge's API rate limit, so that should be configurable. The import process should also be aware of cross-reference using GitHub shortcuts (like #2 or GH-42). An example imported comment might looks like this:

$your_user:

	On yyyy-mm-dd hh:mm:ss UTC $original_user commented:

	I have experienced this issue blah blah.
	This might be caused by [#32](https://git.new.service/you/repo/issues/32)

Some may find this format to be unreadable, so the quote notice should be configurable as well; but in the first proof-of-concept this configuration will not be yet available.

#License

Source code for this project is licensed under GPLv3 only.