Pushes a snapshot of an Azure DevOps Git repository's default branch to a new GitHub Enterprise Server branch, along with its tags.
What it does
Prompts for the ADO and GHES Git clone URLs.
Uses locally configured git credentials to fetch both repositories.
Creates a unique migration/ado-<timestamp> branch directly from the ADO default branch.
Pushes that snapshot branch and all source tags to GHES without force-pushing.
Leaves GHES main unchanged and does not create a pull request; your developers choose when and how to open the PR.
The extension pauses before changing GHES. It does not modify main, force-push, overwrite tags, delete branches, create a pull request, or store credentials.
Git installed and authenticated for both repository URLs.
Permission to push a branch and tags in the GHES repository.
Run during development
npm install
npm run compile
Open this folder in VS Code and press F5. In the Extension Development Host run ADO to GHES: Push ADO Repository Snapshot to GHES from the Command Palette.
Important limitations
A GHES tag with the same name but different commit causes the tag push to stop; this is deliberate so tags are never overwritten.
If the new snapshot branch has unrelated history to GHES main, a developer may need to merge it locally with --allow-unrelated-histories before opening a PR.
Git repositories are migrated. Azure DevOps work items, pipelines, PR discussions, permissions, LFS objects, and release metadata are out of scope for this extension.