Portability · 06 of 06 · Roadmap

Twenty-four weeks, GitHub first, then GitLab, then Bitbucket

Durations are estimates for one person; the order is the point. Nothing reaches GitLab until the GitHub path runs on the new contracts with no change anyone can see, so the risky migration happens on the forge where Hangar already has live traffic to measure.

Twenty-four weeks, GitHub first, then GitLab, then Bitbucket Gantt chart of six phases over twenty-four weeks. P0, weeks 1 to 4, seams on GitHub only: config instead of the jfillman literal, the scm CLI replacing inline curl, and Tower's ScmClient with a new identity annotation. P1, weeks 4 to 6, registry independence: the image repository from config and a Harbor or GitLab Container Registry lane. P2, weeks 6 to 10, provider-hangar-scm: the provider with its GitHub driver, then adopting all 88 live managed resources and dropping the upjet provider, an exit test. P3, weeks 10 to 15, GitLab end to end: drivers and broker, then Pipelines as Code, Argo CD, Backstage and Dex, then a Skyport app on GitLab, an exit test. P4, weeks 16 to 21, Bitbucket Cloud then Bitbucket Data Center. P5, weeks 21 to 24, mixed fleet: per-app forge choice, rate budgets, docs, business rules and the scorecard. 123456789101112131415161718192021222324WEEKP0P1P2P3P4P5P0 · SEAMS, GITHUB ONLYConfig, not jfillmanscm CLI replaces curlTower ScmClient, new annotationP1 · REGISTRY INDEPENDENCEImage repo from configHarbor or GitLab CR laneP2 · PROVIDER-HANGAR-SCMProvider, GitHub driverAdopt 88 MRs, drop upjetP3 · GITLAB END TO ENDGitLab drivers + brokerPaC, Argo, Backstage, DexSkyport app on GitLabP4 · BITBUCKETBitbucket CloudBitbucket Data CenterP5 · MIXED FLEETPer-app forge, rate budgetsDocs, rules, scorecardLEGENDExit test, verified liveWorkstreamPhase exit

P0 to P2: no new forge

  • Every GitHub call goes through a contract; a CI check keeps it that way.
  • A second registry proves the image path is not ghcr.io.
  • The RepositoryFile bug class is gone, on GitHub.

P3: the proof

  • A Skyport service on GitLab: scaffold, build, sign, release to Flight, roll back.
  • The merge gate refuses a merge with a red gate.

P4 and P5: breadth

  • Bitbucket Cloud, then Data Center, on the same drivers.
  • One fleet, more than one forge, chosen per app.
Hangar · Portability