The code moves in a week. Everything else is the migration.

The GitHub Readiness Assessment tells you what your Azure DevOps to GitHub migration actually involves, before you commit to it.

Book a free 30-minute call Start with the free import

GitHub's importer is good at what it does, and what it does is repositories. It will bring your Git repos across cleanly, wire up some pipelines, and leave you with a list titled "remaining assets." That list is your work items, your Test Plans, your classic release pipelines, your deployment groups, your variable groups, your service connections, your wiki, your package feeds, and, if you've been on TFS long enough, a TFVC tree nobody wants to touch.

That list is where migrations stall. Not in the repos. In the six months after the repos, when half the team is still living in Azure DevOps because the release process never came over, and the other half is on GitHub wondering why the tickets didn't.

I've been doing TFS and Azure DevOps work since 2005 and GitHub Enterprise work for the last several years, and the migration between them is most of what I do now. Two ways I can help: a fixed-price assessment that tells you what your migration actually involves, and the work that follows it.

Sound familiar?

"We moved the repos over a weekend. Six months later, deploys still run from Azure DevOps."

"Test Plans has 2,000 test cases. Nobody can tell me how many still get run."

"There are 40 release pipelines. Maybe 12 matter. Nobody's sure which 12."

"Our TFVC has fifteen years of history and a $/Main nobody dares branch."

"Leadership says we're on GitHub. The org chart says we're on GitHub. The deploys say otherwise."

"We asked GitHub how to migrate work items and they sent us a Marketplace link."

None of that means the migration was a bad idea. It means the migration was scoped as a code move, and a code move is the one part of it that's easy.

What GitHub's tooling moves, and what it leaves

The GitHub Enterprise Importer handles Git repositories, pull request history, and the identities behind them (as "mannequins" you reclaim afterward, which is its own project). GitHub Actions Importer can convert a good share of YAML pipelines and will tell you honestly which steps it couldn't.

Everything else is yours to figure out:


The GitHub Readiness Assessment

A fixed-price, two-week, remote diagnostic of your Azure DevOps estate that ends in a written report and a sequenced plan. It's for deciding what your migration involves before you commit budget, people, and a date to it.

The idea is simple: name the disease before you buy the cure. Most migrations that go badly went badly at scoping, when somebody counted repositories and called it a plan. The platform decision takes an afternoon. The decisions that actually matter take months, and this is where they get made on paper instead of in production.

What I look at

It starts with why. Teams that want to move are usually reacting to one of four things: strategic anxiety about Azure DevOps' future, pipelines and branches that are a mess, developers who want GitHub, or a consolidation after an acquisition. Each has a different real question underneath it, and the first conversation is about which one is yours. (For consolidations: are you consolidating, or just relocating?)

Then read-only access to your Azure DevOps organization (or Server), a handful of conversations with the people who actually run things, and whatever documentation exists (I'll take "none"). For each of these, what you have, what's live, what's dead, and what it'll take to move or retire:

What you get

A written report. Not slides. Specifically:

  1. The inventory. What's there, with counts, and what's live versus abandoned. You'll be surprised by the abandoned number, and everything abandoned is something you don't have to move.
  2. The findings. The things that will make this migration harder than the repo count suggests, stated as findings with their consequence, so you can decide what to do about them.
  3. The plan. A sequenced migration in phases, with what moves, what gets rebuilt, what gets retired, and what stays on Azure DevOps on purpose, including a recommendation on repository structure for TFVC, which is where most of the arguing happens. Sometimes what stays is a lot: code on GitHub and work tracking in Azure Boards is a legitimate pattern, not a failed migration, and the plan says so when it's the right one.
  4. A rough sizing. Enough to budget with. Not a quote for the migration; you can take the plan to anyone, including your own team.

How it goes

Two weeks assumes one Azure DevOps organization or Server instance and reasonable access on day one. Bigger estates take longer and I'll say so on the call.

What it costs

Fixed price: $10,000, for one Azure DevOps organization or Server instance. If the estate is bigger than that, I'll tell you on the intro call before anyone spends anything.

What it isn't

It's not a sales document for a migration project. Sometimes the honest answer for a piece of your estate is "don't migrate this," and sometimes it's "don't migrate yet." The report says that when it's true. You can take the plan and run it yourself, hand it to your own team, or hand it back to me. All three happen.

Book the intro call Or email


What usually follows

The assessment ends in a plan. These are the parts of the plan I get asked to do:

Start with the import

If you'd rather see it before you book anything: Honest Cheetah is the product I built for the part of the migration GitHub doesn't have, and it includes a free import. Point it at one Azure DevOps team project and it brings the backlog, the tasks, the test cases, and the throughput history onto a GitHub Projects board in one sitting, showing you what will and won't come over before it moves anything.

It's built for one team project, once, with limits it states on the page. If your estate is bigger than that, the import is a fine way to find out exactly how, and the assessment is the next step.

Reading

Book a free 30-minute call