This repo can be used to demo GitHub Enterprise Importer (GEI)
GitHub CLI
GitHub Enterprise Importer CLI
Powershell
Nodejs
gh-migration-analyzer
gh-repo-stats
Blob storage if migrating from GHES
- Make sure gh-gei is up to date by running
gh extension upgrade github/gh-gei
- Copy
setenv.sh.orig
tosetenv.sh
and populate it with values for your migration. - Run
gh-migration-analyzer.sh
to demo the use of gh-migration-analyzer. - Run
gh-repo-stats.sh
to demo gh-repo-stats. - Run
migrate-repo.sh
to demo a repo migration. - (Optional) Run
gen-migration-script.sh
to demo generating a migration script. - (Optional, only for GitHub.com to GHEC) Run
migrate-org.sh
to demo an org migration. - Run
gen-mannequin-mapping.sh
to demo generating a mannequin mapping file after a migration. - Fill out the third field of the
usermapping.csv
file, make sure the users are members of the org, then runreclaim-mannequins.sh
. - Source repository locking/unlocking:
Demonstrate source repository locking by settingLOCK_SOURCE_REPO
totrue
insetenv.sh
and runningmigrate-repo.sh
.
Unlock the source repository by runningsource-lock-remove.sh
.
The process to migrate repos that contain files larger than 100mb is as follows:
- Migrate the repo to LFS on the source system.
- Migrate the repo using GEI
- Migrate the LFS files as described here.
Note: Due to an issue with LFS, it's better to run the following, rather than
git lfs push github --all
for object_id in $(git lfs ls-files --long | awk '{print $1}'); do git lfs push --object-id github "$object_id" done