Omnissa logo
Engineering
Platform Engineering
DevOps
GitHub

Source Migration: Bitbucket to GitHub

SSai Kiran Vudutala
March 24th, 2026
Source Migration: Bitbucket to GitHub

Source Migration: Bitbucket to GitHub

Overview

As part of our developer platform modernization, we migrated 500+ active repositories from Bitbucket to GitHub—without disrupting ongoing development or CI pipelines.

This was not a repository transfer. It was a live platform transition:

The migration was executed over a single weekend, backed by weeks of preparation, automation, and cross-team coordination.

This document focuses on how we executed the migration at scale—the decisions, structure, and operating model that made it possible.

Execution Complexity

The challenge was not defining constraints—it was executing against them at scale without breaking active development.

Key complexities included:

This required treating the migration as a repeatable, automated system, not a one-time activity.

Execution Model: Parallel Workstreams

To execute within a constrained timeline, we structured the work into parallel streams:

1. Execution Model: Parallel Workstreams

This structure allowed teams to move independently while staying aligned on outcomes—avoiding bottlenecks inherent in a sequential approach.

Migration Phases

We divided the migration into three clear phases:

2. Migration phases

Pre-Migration

Migration

Post-Migration

Separating these phases ensured issues were caught early, execution remained predictable, and post-migration was fully operational—not an afterthought.

For each repository, the same flow was followed:

3. Migration phases expanded

Migration Strategy: Simple vs Complex

Within the migration phase, the first critical decision was choosing the type of migration.

1. Migration type decision

CapabilityCode-Only MigrationFull-Fidelity Migration
Code & commit history
Tags & LFS
Pull requests
Reviews & comments
Integrations (hooks, JIRA)

For our organization, collaboration history was non-negotiable. Years of pull request discussions and reviews contained critical engineering context.

We chose full-fidelity migration, using GitHub Enterprise Importer for Bitbucket Server.

This decision significantly increased complexity—but ensured continuity for engineers.

Implementation Details

For a deeper technical dive, read the phases in order (1, 2, 3), then automation (4) to see how we orchestrated it at scale:

Serial NumberTitleLink
1Pre-Migration StepsRead →
2Migration: Bitbucket to GitHubRead →
3Post-Migration SetupRead →
4Our Automation (orchestrates all phases)Read →

What Made This Work

Several factors were critical to executing the migration successfully:

Without these, the migration would not have been feasible within the timeline.

Outcomes

The migration achieved its goals without compromising delivery:

What This Enabled

With source control standardized on GitHub, we established a foundation for the next phase of platform evolution:

This migration was not just a transition—it established a repeatable platform capability for the organization.

Acknowledgements

Thanks to this wonderful team who turned this around quickly—and the many others involved!

Anand AryaAnand Arya
ChinuaChinua
HW
Huan Wang
Ira PorchiaIra Porchia
Karthik DonthyKarthik Donthy
Niranjan KundaNiranjan Kunda
Shriram JajuShriram Jaju
Vikesh KumarVikesh Kumar

Next in the series: Part 3: CI Migration (coming soon)

Bitbucket
GitHub
Migration
Platform Engineering
DevOps