Ci sono sempre più organizzazioni aziendali che utilizzano GitHub per gestire i propri progetti e repository, anche trainati dall'aumento dell'adozione del cloud e di Copilot per la parte AI. Tuttavia, la migrazione verso GitHub non è sempre semplice e la complessità dipende anche da un semplice fattore numerico: più sono i repository da migrare, più tempo ci vorrà. Per facilitare e velocizzare questo processo, GitHub fornisce un helper chiamato "GitHub Enterprise Importer", che automatizza molte delle operazioni necessarie per migrare una repository verso GitHub Enterprise Cloud. Vediamo come funziona, cercando di importare un repository da Bitbucket Server a GitHub Enterprise Cloud.
La prima operazione da eseguire riguarda l'installazione del tool della command line chiamato bbs2gh:
gh gh extension install github/gh-bbs2gh
La seconda, e ultima, riguarda proprio l'import:
gh bbs2gh migrate-repo \ --bbs-server-url <server-url> \ --bbs-project <project-name> \ --bbs-repo <repository-name> \ --github-org <github-org-name> \ --github-repo <github-repository-name> \ --use-github-storage \ # se l'istanza gira su Linux: --ssh-user <user> --ssh-private-key <key> # se l'istanza gira su Windows: --smb-user <user>
Sono sufficienti queste poche impostazioni per avviare tutto il processo. L'uso della flag use-github-storage, tra l'altro, è una aggiunta molto recente e ha semplificato moltissimo il processo: fino a pochissimi giorni fa, la creazione di uno Storage Account (blob storage) in Azure, come storage temporaneo per la migrazione, era obbligatorio. Infatti, spesso le istanze di Bitbucket si trovano on-premise e protette da firewall che non comunicano con il cloud, pertanto lo storage è necessario perché viene aperta una connessione tra l'ambiente on-prem e l'ambiente cloud. Sebbene prima questo passaggio era manuale, oggi viene eseguito completamente in automatico.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
DevSecOps per .NET: dalla teoria alla pratica
Cache temporanea in Javascript con oggetti
How to be a DevOps engineer in the AI era
Introduzione a GitHub Copilot CLI
Gestire il ciclo di vita di AbortController in Javascript
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot
Ricerca delle GitHub issue tramite operatori logici
Gestire pubblicazione Kubernetes tramite .NET Aspire
Blazor e Static Web Assets in .NET 10
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Pubblicare un MCP Server in GitHub MCP Registry


