CodeCargo logo

Migration Plan

Plan the Org Layout

Plan the Org Layout

Open Plan the org layout from the Migration Plan journey, under Organize. This is where you name the GitHub orgs repositories in the plan land in. The sandbox organization, where the plan lives, is never a destination.

Each destination org is one of:

  • Planned — only in the plan, under the GitHub name it will have
  • Created — GitHub has an org with that name, and CodeCargo is not installed on it yet
  • Connected — linked to a CodeCargo organization in the same GitHub enterprise, with CodeCargo installed

The list is soonest needed first. Each org shows its purpose, its owner, whether it is the building block home, how many repositories it takes, the date it is first needed and why, and whether its GitHub name is free, taken, or not yet known. A name that was free and is now taken by something other than the created org is called out — choose another name. If GitHub cannot answer a later check, the last result stays.

The plan has one building block home. Making an org the building block home takes the role from whichever org had it.

Opening the page

You need the Migration Assistant manage permission. The Migration Plan is available on CodeCargo plans that include it. If you do not see it, contact your CodeCargo administrator.

The Org layout table: acme-platform (the building block home), acme-data and acme-commerce are Connected; acme-oss is Created, not connected, with no owner yet and an Install CodeCargo button; acme-mobile is Planned, its name Available on GitHub, with Copy the request. Each row shows what the org is for, its repositories, and when it is needed by and why.

Add or Change an Org

Add a destination org by the GitHub name it will have, and optionally a purpose and an owner. A name is 1 to 39 letters, digits, and single hyphens, and it does not start or end with a hyphen. CodeCargo checks the name on GitHub as you add it.

  • If no GitHub account has the name, the org stays planned and the name is free.
  • If the name is a GitHub org in your enterprise that already has CodeCargo installed, the destination org links to it and starts connected.
  • Any other name a GitHub user or org already has is taken. So is a name whose enterprise CodeCargo cannot tell yet.

The plan refuses a name it already has, the sandbox organization's name, and a CodeCargo organization already linked to another of the plan's orgs.

While an org is planned, you can rename it. A new name is checked the same way. Changing only the capitalization keeps the name the plan already knows. A linked org's name is its name on GitHub — unlink it to plan a different one. Once GitHub has created the org, the name stays. Install CodeCargo on it to connect it.

Change the purpose or the owner at any time, or clear either one.

Link a destination org to a connected CodeCargo organization in the same GitHub enterprise. It becomes connected and takes that organization's GitHub name. Repositories already assigned to it stay assigned. The page lists the organizations you can link to.

Unlink it under a new planned name, different from the linked organization's name. Under its own name it would be linked again. Repositories stay assigned. If the new name already belongs to an installed organization in your enterprise, that organization is linked instead.

Remove a destination org to take it off the plan. Projects and repositories sent to it go back to having no destination of their own. Nothing is deleted on GitHub or in CodeCargo. The plan refuses the removal while a destination rule still sends repositories to it, and names the rules in the way. Change or delete those rules first.

From Planned to Connected

CodeCargo checks a name when you add it, rename it, or unlink under a new name, and checks planned names again about once an hour.

A planned name keeps the first check that found it free. It becomes created when a later check finds a GitHub org with that name that was created after the name was free. The row includes a link to install the CodeCargo GitHub App on that org. It becomes connected once that org is in the same GitHub enterprise and CodeCargo is installed there. On github.com, that enterprise is confirmed only after the app is installed.

If CodeCargo is no longer installed on the linked organization, the destination org reads as planned again until CodeCargo is back or you unlink it.

Copy the request hands whoever creates orgs in your enterprise what to create.


What a linked org still needs

Before waves move repositories into a linked destination org, that org shows a checklist for each source connection that sends them. The checklist is headed by the connection's name. A met step is ticked. A step that is not met yet shows a dot. When only some of it is done, the label says how much is left.

An org that is not linked shows no checklist. Its state already says what to do next.

An unmet step links to the page in that organization where you fix it:

  • Connections — link the source, or inventory the repositories that are not inventoried yet
  • Import — import pipelines that are not imported yet

A missing GitHub App service connection is made in the source, so that step has no page in CodeCargo. It names the projects that still need one. A long list names the first few and how many more.

Which steps appear depends on the source. For Azure DevOps, the checklist covers the link, the inventory, imported pipelines, and a GitHub App service connection on each project that rebinds.