README.md
gitea-github-migrator
A tool to migrate GitHub Repositories to Gitea including all issues, labels, milestones and comments.
Features
Migrates:
- Repositories
- Issues
- Labels
- Milestones
- Comments
- Users
- Pull Requests (as issue)
- Statuses
Installation
From source
go get git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator
cd $GOPATH/src/git.jonasfranz.software/JonasFranzDEV/gitea-github-migrator
dep ensure
make build
Web Support
Run make web-build
instead of make build
to include web support.
From Binary
We provide binaries of master builds and all releases at our minio storage server.
Additionally we provide them for every release as release attachment under releases.
You don't need any dependencies except the binary to run the migrator.
These binaries include web support by default.
From Docker image
We provide a cli docker image:
For master builds:
docker run ggmigrator/cli:latest
For release builds:
docker run ggmigrator/cli:0.0.10
Usage
Command line
Migrate one repository:
gitea-github-migrator migrate \
--gh-repo owner/reponame \
--gh-token GITHUB_TOKEN \
--url http://gitea-url.tdl \
--token GITEA_TOKEN \
--owner 1
gh-token
is only required if you have more than 50 issues / repositories.
Migrate all repositories:
gitea-github-migrator migrate-all \
--gh-user username \
--gh-token GITHUB_TOKEN \
--url http://gitea-url.tdl \
--token GITEA_TOKEN \
--owner 1
Migrate all repositories without issues etc. (classic):
gitea-github-migrator migrate-all \
--gh-user username \
--gh-token GITHUB_TOKEN \
--url http://gitea-url.tdl \
--token GITEA_TOKEN \
--owner 1
--only-repo
Web interface
Since 0.1.0 gitea-github-migrator comes with an integrated web interface. Follow these steps to get the web interface running:
- Download or build a web-capable binary of the gitea-github-migrator. The builds on our storage server are build with web support included. If you build from source, please follow web support.
- Create
config.yml
file and change the properties according to your wishes. Please keep in mind that you have to create a GitHub OAuth application to make the web interface work. - Run
./gitea-github-migrator web
- Visit
http://localhost:4000
Docker
We're providing a docker image with web support. To start the web service please run:
docker run ggmigrator/web -p 4000:4000 -v data/:/data
Place your config.yml
into data/config.yml
.
Config
Example:
# GitHub contains the OAuth2 application data obtainable from GitHub
GitHub:
client_id: GITHUB_OAUTH_CLIENT_ID
client_secret: GITHUB_OAUTH_SECRET
# Web contains the configuration for the integrated web server
Web:
port: 4000
host: 0.0.0.0
Problems
- This migration tool does not work with Gitea instances using a SQLite database.
- Comments / Issues will be added in the name of the user to whom belongs the token (information about the original date and author will be added)
- The current date is used for creation date (information about the actual date is added in a comment)