gh-gei

Migration CLI for GitHub to GitHub migrations

MIT License

Stars
310
Committers
41

Bot releases are visible (Hide)

gh-gei - v0.40

Published by github-actions[bot] over 1 year ago

  • Fixed a bug when migrating from GHES where we would do a bunch of unnecessary retries at the start making things slower than they needed to be
gh-gei - v0.39

Published by github-actions[bot] over 1 year ago

  • Fixed a bug where ADO Team Projects or Organizations with special characters would fail to migrate
  • When using gh gei generate-script the script will now validate that the necessary environment variables are set
  • More robust retry logic, especially on http request timeouts
  • Retry GHES archive generation process in gh gei migrate-repo in case of any failure
  • Changed the default behavior of migrate-repo and migrate-org to wait for the migration to finish (previously the default was to only queue it unless you passed --wait). If you want the previous default behavior of queuing it only (e.g. for parallel scripts that queue many migrations at once) there is a new --queue-only option. The --wait option still works but is now obsolete and will print a warning if used, and will be removed in a future version. generate-script commands have all been updated to generate scripts with the new options/defaults. Any already existing migration scripts that relied on the default (i.e. parallel) behavior, will continue to work but will now run sequentially instead of in parallel. They should be updated to pass in --queue-only to retain the previous parallel behavior (or re-generated with the updated generate-script command).
gh-gei - v0.38

Published by github-actions[bot] over 1 year ago

  • Introduce a new command gh gei migrate-code-scanning-alerts which migrates all code-scanning analysis and alert states for the default branch. This is useful if you want to migrate the history of code-scanning alerts together with their current state (open, reopened, fixed). For dismissed alerts, the dismissed-reason (e.g. won't fix, false positive etc) and dismissed-comment will also be migrated to the target repo.
  • Update gh bbs2gh generate-script so it supports more than 25 projects/repos
  • Rename --bbs-project-key to --bbs-project in gh bbs2gh generate-script for consistency
  • Fix a bug where create-team might not work due to a race condition
  • When using gh ado2gh generate-script or gh bbs2gh generate-script the script will now validate that the necessary environment variables are set
  • Make API calls to GitHub.com that require pagination more resilient by retrying on HTTP failures
gh-gei - v0.37

Published by github-actions[bot] over 1 year ago

  • Improve error message when migrate-repo is used with a target personal access token (PAT) with insufficient permissions
  • Ensure --no-ssl-verify flag is honored when downloading archives from GHES
  • --bbs-project and --bbs-repo are now both required in gh bbs2gh migrate-repo command when --bbs-server-url is set
  • Added --keep-archive flag to gh gei migrate-repo and gh gei generate-script. When migrating from GHES this will skip the step where we delete the archive from your machine, leaving it around as a local file.
  • Continue to next mannequin mapping in gh gei reclaim-mannequin --csv if a username doesn't exist
  • Display more helpful message when the Bitbucket export archive is not found when using gh bbs2gh migrate-repo
gh-gei - v0.36

Published by github-actions[bot] over 1 year ago

  • Adds retry logic during GHES archive generation in cases of transient failure
  • Added log output linking to migration log URL after migration completes
  • Add support for specifying --archive-download-host with gh bbs2gh migrate-repo and gh bbs2gh generate-script, rather than taking the host from the --bbs-server-url
  • Improve handling of GraphQL errors, throwing an exception with the specific error message returned by the API
  • Validate AWS region when using Amazon S3 to upload the migration archive in gh gei and gh bbs2gh
gh-gei - v0.35

Published by github-actions[bot] over 1 year ago

  • Fix gh bbs2gh grant-migrator-role so it doesn't throw System.InvalidOperationException
  • Rename AWS_ACCESS_KEY and AWS_SECRET_KEY environment variables to AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY respectively to align with the environment variables that the AWS CLI already uses. Old environment variables are still supported but they will be removed in future.
  • Send a User-Agent header with the current CLI version when downloading migration archives from GitHub Enterprise Server
  • Add support for migration archives larger than 2GB when using the blob storage flow
  • Add --no-ssl-verify option to gh bbs2gh generate-script and gh bbs2gh migrate-repo commands to support migrating from a Bitbucket Server or Bitbucket Data Center instance that uses a self-signed SSL certificate
gh-gei - v0.34

Published by github-actions[bot] over 1 year ago

  • Create shared access signature (SAS) with read-only permissions - not read-write - when generating Azure Blob Storage URL
  • Fixes bug where CLI would crash if the source was GHAE (while trying to parse the version)
  • Add support for authenticating with AWS session tokens when using AWS S3 for archive upload in gh gei and gh bbs2gh. When specifying a session token, the AWS region must also be specified.
  • Make parallel migrations scripts generated by gh gei generate-script and gh ado2gh generate-script more resilient by not halting the entire script if queuing a repo migration fails.
gh-gei - v0.33

Published by github-actions[bot] over 1 year ago

  • Added support for x86 Windows machines with new windows-386 build
  • Added logic to check if a target repo exists before generating GHES archives
  • Fixed reclaiming a single mannequin using reclaim-mannequin with the --mannequin-user and --target-user parameters
  • Added logic to ensure target org exists before generating GHES archives
gh-gei - v0.32

Published by github-actions[bot] over 1 year ago

  • Improve error messages when the specified target organization or enterprise cannot be found
  • Mask the value for AWS_ACCESS_KEY and AWS_SECRET_KEY parameters in log output
  • Fix log output so we don't say we've finished upload to Azure Blob Storage when you're actually using Amazon S3
  • Extend the expiration of blob storage signed URLs from 24hrs to 48hrs so migration can still be successful even if there is a long queue of migrations
  • Skip the upload to Azure/AWS blob storage when migrating from GHES 3.8+, as GHES will now handle putting the archives into blob storage. This change only applies to GHES 3.8 onwards, which is not yet released to the public.
  • Fixed a bug where bad credentials were incorrectly being treated as rate-limit errors
gh-gei - v0.31

Published by github-actions[bot] almost 2 years ago

  • introduced a new command gh gei migrate-secret-alerts which migrates the state and resolution of secret scanning alerts. This is useful if you have existing secret scanning alerts which have been closed (e.g. revoked, false positive, etc). The state (closed) and resolution will be migrated over to the target repo with this command.
  • make gh gei migrate-org visible in the help menu as this is now a published feature of GEI see more. We are now capable of moving an org with all their repositories, teams and certain cross repository references by running one command. ( Currently does not support GitHub Enterprise Server )
gh-gei - v0.30

Published by github-actions[bot] almost 2 years ago

  • Added logging to gh gei wait-for-migration and gh gei migrate-org --wait, showing the number of repos that have been migrated so far
gh-gei - v0.29

Published by github-actions[bot] almost 2 years ago

  • Added additional retry logic covering the case when polling for migration status fails for any reason (along with a few other situations)
  • Added --aws-bucket-name to gh gei generate-script and removed --azure-storage-connection-string.
gh-gei - v0.28

Published by github-actions[bot] about 2 years ago

  • Fixed a bug where uploading archives to S3 still required --azure-storage-connection-string to be passed.
gh-gei - v0.27

Published by github-actions[bot] about 2 years ago

  • 6 months ago in v0.10, we deprecated the --ssh flag, making it silently do nothing. Now, we’ve removed the flag entirely, so the CLI will error if you try to specify it. If you have any scripts that include the --ssh flag, you must remove that flag or the script will break.
  • fixed a bug where secrets were not getting scrubbed from the logs in some circumstances
  • If create-team fails when linking an IdP group with an HTTP 400, we will retry
  • If create-team fails when removing the initial team member, it will retry
  • In v0.25 we started publishing ado2gh as an extension to the gh CLI. However, we didn't update ado2gh generate-script to use the new syntax in the generated migration script. Now it will, and you will need the gh ado2gh extension installed in order to run the generated migration script.
  • Added --ghes-api-url as an optional arg to the grant-migrator-role and revoke-migrator-role commands for both ado2gh and gei.
  • Added AWS support for archive uploads to gei using the --aws-bucket-name, --aws-access-key and --aws-secret-key arguments.
gh-gei - v0.26

Published by github-actions[bot] about 2 years ago

  • Retry all failed GET requests made to Github, Azure Devops, and Bitbucket Server.
gh-gei - v0.25

Published by github-actions[bot] about 2 years ago

  • We are now shipping all functionality for Azure DevOps -> GitHub migrations as a new extension to the GitHub CLI. Run gh extension install github/gh-ado2gh to install. All commands are the same as the previous ado2gh CLI (e.g. gh ado2gh generate-script). If you were previously using gh gei to handle ADO migrations (instead of the separate ado2gh stand-alone CLI), that functionality has now been moved to the gh ado2gh extension. gh gei is solely used for GitHub -> GitHub migration scenarios.
    • We will continue shipping ado2gh stand-alone CLI in this release and probably the next couple, after that the only way to acquire new versions will be via the gh extension.
    • Technically in this release the ADO capabilities in gh gei have only been hidden from the built-in help, but will still work and give the user a warning that they should be using gh ado2gh instead. In a future release we will remove them entirely.
    • Our docs have been updated to reflect these changes and can be accessed here: https://docs.github.com/en/early-access/enterprise-importer
gh-gei - v0.24

Published by github-actions[bot] about 2 years ago

  • Added --lock-source-repo option to gh gei migrate-repo and gh gei generate-script commands. This will make the source repo read-only as part of the migration.
gh-gei - v0.23

Published by github-actions[bot] about 2 years ago

  • Added create-team command to gh gei.
  • Reduced # of REST API calls used to avoid rate limiting challenges
  • Changed how we do the version check to avoid warnings about being rate limited
  • Checks for an environment variable GEI_DEBUG_MODE and if set to 'true' will emit additional data in the verbose log file
gh-gei - v0.22

Published by github-actions[bot] over 2 years ago

  • added --repo-list argument to ado2gh generate-script. This accepts a repos.csv file previously generated by ado2gh inventory-report. This can be used to split a large migration up into batches of repos.
  • --github-pat arg in the gei reclaim-mannequin command was renamed to --github-target-pat to follow the same naming convention for other commands like gei migrate-repo or gei generate-mannequin-csv
  • ado2gh inventory-report command now also reports the compressed size of each repo in repos.csv.
  • fixed bug in gh gei generate-script so that it properly respects the --no-ssl-verify argument.
  • ado2gh inventory-report now accepts --minimal flag. If set, it generates the CSVs with the bare minimum info but it significantly speeds up their generation.
  • Added is-pat-org-admin field to orgs.csv generated by ado2gh inventory-report to indicate whether the PAT used to query the org data is an org admin.
gh-gei - v0.21

Published by github-actions[bot] over 2 years ago

  • generate-script command in ado2gh and gh gei will no longer generate an empty script if no migratable repos were found.
  • --ado-pipeline arg in the ado2gh rewire-pipeline command will now accept a pipeline name without the full pipeline path, so long as there is only one pipeline found that matches that name. If there are multiple pipelines with the same name (in different pipeline folders), you will need to provide the full pipeline path.
  • Resolved a bug where the migrate-repo command wouldn't queue a migration if the target repo had recently been renamed.
Badges
Extracted from project README
Actions Status: CI
Related Projects