{"id":36750336,"url":"https://github.com/octodemo/gei-demo","last_synced_at":"2026-01-12T12:43:30.228Z","repository":{"id":84873271,"uuid":"513180430","full_name":"octodemo/gei-demo","owner":"octodemo","description":"Demo GitHub Enterprise Importer (GEI)","archived":false,"fork":false,"pushed_at":"2025-10-07T23:55:48.000Z","size":41,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-08T01:23:55.061Z","etag":null,"topics":["gei","migration-scripts","migrations"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octodemo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-12T14:43:41.000Z","updated_at":"2025-10-07T23:55:34.000Z","dependencies_parsed_at":"2024-04-21T18:34:28.417Z","dependency_job_id":"cb3d9fcc-4164-4547-9cd8-1a3d131f1abc","html_url":"https://github.com/octodemo/gei-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/octodemo/gei-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fgei-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fgei-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fgei-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fgei-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octodemo","download_url":"https://codeload.github.com/octodemo/gei-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fgei-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gei","migration-scripts","migrations"],"created_at":"2026-01-12T12:43:30.140Z","updated_at":"2026-01-12T12:43:30.216Z","avatar_url":"https://github.com/octodemo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Enterprise Importer Demo\nThis repo can be used to demo [GitHub Enterprise Importer (GEI)](https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer)\n\n## Prerequisites\n[GitHub CLI](https://cli.github.com/)  \n[GitHub Enterprise Importer CLI](https://github.com/github/gh-gei)  \n[Powershell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.3)  \n[gh-repo-stats](https://github.com/mona-actions/gh-repo-stats)  \n[gh-migration-audit](https://github.com/timrogers/gh-migration-audit)  \n[Blob storage](https://docs.github.com/en/early-access/enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud#step-4-set-up-blob-storage) if migrating from GHES  \n\n## Demo\n1. Make sure [gh-gei](https://github.com/github/gh-gei) is up to date by running\n\n```bash\ngh extension upgrade github/gh-gei\n```\n\n2. Copy `setenv.sh.orig` to `setenv.sh` and populate it with values for your migration.\n1. Run `gh-repo-stats.sh` to demo [gh-repo-stats](https://github.com/mona-actions/gh-repo-stats).\n1. Run `gh-migration-audit.sh` to demo [gh-migration-audit](https://github.com/timrogers/gh-migration-audit).\n1. Run `migrate-repo.sh` to demo a repo migration.\n1. (Optional) Run `gen-migration-script.sh` to demo generating a migration script.\n1. (Optional, only for GitHub.com to GHEC) Run `migrate-org.sh` to demo an org migration.\n1. Run `gen-mannequin-mapping.sh` to demo generating a mannequin mapping file after a migration.\n1. Fill out the third field of the `usermapping.csv` file, make sure the users are members of the org, then run `reclaim-mannequins.sh`.  \n1. Source repository locking/unlocking:  \n    Demonstrate source repository locking by setting `LOCK_SOURCE_REPO` to `true` in `setenv.sh` and running `migrate-repo.sh`.  \n    Unlock the source repository by running `source-lock-remove.sh`.\n\n\n## Notes\n[GEI limitations](https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer/understanding-github-enterprise-importer/migration-support-for-github-enterprise-importer#support-limitations-for-github-enterprise-importer)  \n\n## LFS\nThe process to migrate repos that contain files larger than 100mb is as follows:\n1. Migrate the repo to LFS on the source system.\n2. Migrate the repo using [GEI](https://github.com/github/gh-gei)\n3. Migrate the LFS files [as described here](https://github.github.com/enterprise-migrations/#/./4.3.0-post-migration-global-caveats).\n\n\u003e **Note:** Due to [an issue with LFS](https://github.com/git-lfs/git-lfs/issues/4899), it's better to run the following, rather than `git lfs push github --all`\n\u003e\n\u003e```\n\u003efor object_id in $(git lfs ls-files --long | awk '{print $1}'); do\n\u003e    git lfs push --object-id github \"$object_id\"\n\u003edone\n\u003e```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctodemo%2Fgei-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctodemo%2Fgei-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctodemo%2Fgei-demo/lists"}