Don't regenerate GHES archives if target repo already exists
One of our goals is to have our generated scripts be idempotent. Meaning if you run a script and it dies halfway through, once you fix whatever caused it to fail you can re-run the script unchanged, and it will basically do noops for the first half that have already been migrated then pickup where it failed out the first time.
In order to achieve this we have tried to make all our commands idempotent. For migrate-repo the way we did that is check if the target repo exists, and if so spit out a warning and return.
Recently - in the interest of minimizing the number of REST API calls the CLI makes - we changed the implementation to eliminate the REST call to check the target repo existence, and instead just kicked off the migration, but if it fails we inspect the error returned and specifically look to see if it failed because the target repo already existed, and if so we do the same behavior (spit out a warning and exit without error).
HOWEVER, if we are migrating from GHES, in the case where the target repo already exists we wont' discover that until after we've already asked GHES to generate the migration archives, downloaded them, uploaded them to azure, then tried to migrate them. That's alot of unnecessary work, and wasted time.
In GHES migrations specifically we should re-introduce the REST API call to check for target repo existence, before trying to generate the migration archive.