Compare · Migrating to GitHub

CodeCargo vs GitHub Actions Importer

Actions Importer translates one pipeline at a time and hands your engineers the rest. CodeCargo migrates the estate.

See the side-by-side
GitHub Actions Importer
CodeCargo

1 pipeline

per dry-run or migrate command

Every pipeline

Discover, scan, and migrate them at the same time

80%

conversion goal per workflow; the rest is manual

1 review

per pipeline family, not per pipeline

Unsupported

scripted Jenkins pipelines, per GitHub’s docs

Converted

scripted and declarative Jenkinsfiles and shared libraries

None

repositories, secrets, runners or cutover

All of it

repositories, pipelines, secrets, teams and cutover

GitHub Actions Importer compared with CodeCargo: 1 pipeline per dry-run or migrate command, versus Every pipeline Discover, scan, and migrate them at the same time; 80% conversion goal per workflow; the rest is manual, versus 1 review per pipeline family, not per pipeline; Unsupported scripted Jenkins pipelines, per GitHub’s docs, versus Converted scripted and declarative Jenkinsfiles and shared libraries; None repositories, secrets, runners or cutover, versus All of it repositories, pipelines, secrets, teams and cutover.

The difference

A translator versus a migration.

GitHub Actions Importer is a translator. Point it at one pipeline and it writes one GitHub Actions workflow. GitHub's stated goal is an 80% conversion rate per workflow, and everything else comes back as manual tasks: secrets, self-hosted runners, unknown plugins and tasks, environments and approvals. On Jenkins, GitHub's own docs list scripted pipelines as unsupported.

That works for ten pipelines. At two thousand it means two thousand separate translations, two thousand pull requests and hundreds of manual-task lists for your engineers to finish, with nothing grouping the work, tracking it or cutting it over. And because each pipeline is translated as it is, you land with two thousand slightly different copies of the same build.

CodeCargo migrates the estate. It inventories every repository and pipeline, groups pipelines into families, converts each family once onto shared building blocks your platform team owns, ships them in waves of pull requests, and cuts over with approvals and rollback at every step. Repositories move too, through GitHub Enterprise Importer, and our migration team takes the pipelines nobody wants to touch.

Side by side

Stage by stage.

What each one does at every stage of a migration. Actions Importer's column is from GitHub's documentation, linked below.

StageCodeCargoGitHub Actions Importer
Unit of workThe whole estate, as one program: inventory, families, waves and cutoverOne pipeline per dry-run or migrate command, with one pull request each
ConversionAI conversion that reads each pipeline as code: scripted and declarative Jenkinsfiles, shared libraries, Azure DevOps YAML and Classic, GitLab CI. Bitbucket Pipelines, CircleCI and Bamboo run by our migration teamRule-based translation with an 80% conversion goal per workflow. Scripted Jenkins pipelines unsupported; unknown plugins and tasks left unconverted
What lands in GitHubThin workflows that call shared reusable workflows and composite actions your platform team owns, checked against your standards before they mergeOne standalone workflow per pipeline: a copy of whatever the pipeline did before
Left for your engineersA review per pipeline family. Our migration team handles the edge casesA manual-task list per pipeline: secrets, self-hosted runners, unknown steps, service connections, environments and approvals
RepositoriesMoved in the app through GitHub Enterprise Importer, in runs with preflight checks and failures sorted for retryNot included. Repositories need GitHub Enterprise Importer, run separately
Running it at scaleWaves and batches, a progress view across every repository and team, and every ready pull request opened in one clickA CLI extension and Docker container on an engineer’s machine. Audit and forecast reports, then pipelines one by one
CutoverSource branches rewired, pipelines relinked and old systems set read-only, each step approved first and reversible afterNot included
After the moveManage keeps every workflow on your standards, fixes drift as pull requests and triages GHAS alertsNothing. The job ends at the pull request
CostThe free Starter plan includes everything on up to 10 repositories; paid plans are priced to your estateFree to run. The manual tasks it leaves are paid in engineering time

Which one fits

Moving ten pipelines? Use the free tool. Moving an estate? It isn't close.

GitHub Actions Importer

GitHub's free command-line tool for translating CI pipelines into GitHub Actions workflows, one pipeline per run.

Best when

  • You have a handful of simple, declarative pipelines.
  • Your engineers have time to finish the manual tasks pipeline by pipeline.
  • You are happy to land each pipeline as a copy of what it was.

CodeCargo

A migration platform and team that move the whole estate as one program, onto shared building blocks, in waves, with cutover and rollback.

Best when

  • You are moving hundreds or thousands of repositories and pipelines from Jenkins, Azure DevOps, GitLab, Bitbucket, CircleCI or Bamboo.
  • You want to land on shared reusable workflows, not thousands of one-off copies.
  • You have a deadline, and someone has to own progress, failures and cutover across every team.
  • You want GitHub kept clean after the move, not just reached.

Where GitHub’s tools fit

CodeCargo runs GitHub Enterprise Importer for you.

For repositories, GitHub's Enterprise Importer is the right engine, so CodeCargo uses it, and adds everything around it that the CLI leaves to you.

  1. 01

    Inventory and preflight

    Every repository inventoried, and what would fail flagged before the copy starts: large repositories, LFS, empty repositories and over-long ref names.

  2. 02

    Copy through GitHub Enterprise Importer

    The repository copy is GitHub's own, run in waves from one place, not from a script on someone's laptop.

  3. 03

    Classify failures and retry

    Failures are sorted into categories with retry guidance, and every run has its own progress view and logs.

  4. 04

    Pipelines onto shared blocks

    Pipelines convert by family onto shared reusable workflows and composite actions, then open as pull requests for each team to review.

Questions buyers ask.

Tell us what you're migrating from and how big the estate is, and we'll show you the plan.

Is CodeCargo an alternative to GitHub Actions Importer?

Yes, and it goes further. Actions Importer translates one pipeline per command and aims for 80% of each workflow. CodeCargo groups pipelines into families, converts each family once onto shared building blocks, moves the repositories, and runs the waves and cutover.

Can GitHub Actions Importer migrate scripted Jenkins pipelines?

No. GitHub's documentation lists scripted pipelines among the constructs you must migrate manually, along with secrets, self-hosted runners and unknown plugins. CodeCargo's AI conversion reads scripted and declarative Jenkinsfiles and shared libraries as code.

Why not run Actions Importer and finish the rest by hand?

At small scale you can. At estate scale the conversion is the cheap part. The expensive part is finishing hundreds of manual-task lists, keeping thousands of translated copies consistent, moving repositories and cutting over without breaking teams, which is the work CodeCargo is built for.

GitHub Actions Importer is free. Why pay for CodeCargo?

Because the tool is free and the migration is not. Every pipeline it leaves at 80% costs an engineer the other 20%, and every copied pipeline is one more thing to maintain. You can run a free pilot on 10 repositories with the Starter plan before you commit.

Does CodeCargo use any of GitHub’s migration tools?

Yes. Repositories move through GitHub Enterprise Importer, GitHub's own engine for repository copies. CodeCargo adds the inventory, preflight checks, waves, failure handling and tracking around it.

What happens after the migration?

GitHub Actions Importer stops at the pull request. With Manage, CodeCargo keeps working: every workflow held to your standards, drift fixed as pull requests, GHAS alerts triaged, and CargoWall controlling runner egress.

Find out how many weeks
your migration takes.

Or start free on 10 repositories.

CodeCargo vs GitHub Actions Importer: Migration Compared