Migration showcase
A real migration, end to end: a live Azure DevOps organisation — three projects, six YAML pipelines — converted to GitHub Actions, reviewed in the Bifrost portal, and committed as pull requests. Everything below was created during the recording and is public — review it yourself.
About two minutes. Companion transcript and voiceover script on GitHub.
What you are watching
- Audit & convert (CLI) — a read-only audit of the real ADO org; the official Importer converts the bulk; Bifrost surfaces the gaps it cannot transform.
- Review (portal) — a portfolio heatmap, the program board (Board / Roadmap / Issues), and the three-pane diff with deterministic risk and a runbook for each gap.
- The result (GitHub) — three public repositories, six Bifrost-opened pull requests, and a public program board.
The gaps Bifrost surfaced
The Importer reported 0 unsupported / 100% partially successful — it converted the bulk of every pipeline, leaving exactly the security-sensitive residue a human must review. That residue is the point of Bifrost.
| Pipeline | Gaps surfaced |
|---|---|
| Contoso-Payments-CI | DownloadSecureFile@1 (code-signing .pfx), SonarQubePrepare@5 |
| Contoso-Payments-Release | acme-corp.vault-tools.FetchSecret@2 |
| Northwind-Logistics-CI | Gradle@3, DownloadSecureFile@1 (release keystore) |
| Northwind-Logistics-Deploy | KubernetesManifest@1 |
| Fabrikam-Identity-CI | DownloadSecureFile@1 (OIDC signing key), WhiteSource@21 |
| Fabrikam-Identity-Release | contoso.deploy-tools.NotifyTeams@3 |
Public artifacts
| Project | Repository | Pull requests |
|---|---|---|
| Contoso-Payments | contoso-payments | #1 · #2 |
| Northwind-Logistics | northwind-logistics | #1 · #2 |
| Fabrikam-Identity | fabrikam-identity | #1 · #2 |
Program board: github.com/users/olafkfreund/projects/8
How it was built
The scripts that produced this recording — terminal cast, live-portal and GitHub Playwright
walkthroughs, repo/PR creation, and ffmpeg stitching — are in
showcase/ in the repository.
Conversions land as pull requests for human approval; the commit and board-provisioning paths are
opt-in (BIFROST_COMMIT_LIVE / BIFROST_BOARD_LIVE) — never a silent rewrite of production CI.