Migrar de um projeto público para o GitHub

Serviços de DevOps do Azure

Importante

Projetos públicos no Azure DevOps estão retirados. A partir de 2027, os projetos públicos existentes convertem-se em privados. Para mais informações, consulte Desativação de projetos públicos e Migrar de um projeto público para GitHub.

Este artigo mostra como migrar cada área de serviço de um projeto público do Azure DevOps para o seu equivalente no GitHub. Abrange repositórios, pipelines, wikis, artefactos e itens de trabalho.

Pré-requisitos

Requisito Detalhes
Acesso ao Azure DevOps Membro do projeto com pelo menos acesso básico
Conta do GitHub Uma conta GitHub com permissão para criar repositórios
Git Git instalado localmente
GitHub CLI (opcional) GitHub CLI para operações simplificadas

Migrar repositórios

Os repositórios do GitHub suportam colaboração aberta com pedidos de pull, forks e estrelas.

Use GitHub Enterprise Importer

GitHub Enterprise Importer é a ferramenta recomendada para migrar repositórios do Azure DevOps Cloud para GitHub Enterprise Cloud. Migra o código fonte Git (incluindo histórico de commits), pull requests, histórico de utilizadores, links de itens de trabalho em pull requests, anexos e políticas de branch.

  1. Instale a extensão de migração CLI do GitHub:

    gh extension install github/gh-gei
    
  2. Autentique tanto com Azure DevOps como com GitHub:

    # Sign in to Azure DevOps with Microsoft Entra ID and set the token
    az login
    export ADO_PAT=$(az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query accessToken -o tsv)
    
    # Authenticate with GitHub
    gh auth login
    
  3. Gerar um script de migração para uma organização Azure DevOps:

    gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.sh
    
  4. Ou migrar um único repositório:

    gh gei migrate-repo --ado-org {organization} --ado-team-project {project} \
      --ado-repo {repo} --github-org {github-org} --github-repo {new-repo}
    

Para mais informações, veja Compreender migrações de Azure DevOps para GitHub.

Use GitHub Importer

Para uma opção mais simples, baseada no navegador, use o importador GitHub incorporado:

  1. Inicie sessão no GitHub e selecione Novo repositório.
  2. Introduza o nome do repositório e defina a visibilidade para Público.
  3. Selecione Importar um repositório no topo da página.
  4. Introduza o seu URL clone de Azure DevOps: https://dev.azure.com/{organization}/{project}/_git/{repo}.
  5. Se for solicitado, introduza as suas credenciais Azure DevOps. Inicie sessão usando o Microsoft Entra ID. Se precisares de usar um token de acesso pessoal, cria um com âmbito de leitura de código>. Para obter mais informações, consulte Usar tokens de acesso pessoal.
  6. Selecione Iniciar importação.

O Importador do GitHub migra o código fonte e o histórico de commits do Git, mas não migra os pull requests, as ligações dos itens de trabalho ou as políticas de ramificação. Para mais informações, veja Importar um repositório com GitHub Importer.

Importar a partir da linha de comandos

Se o GitHub Enterprise Importer não responder às suas necessidades, envie diretamente a partir de um clone local:

# Clone the Azure DevOps repository with full history
git clone --bare https://dev.azure.com/{organization}/{project}/_git/{repo}
cd {repo}.git

# Push to the new GitHub repository
git push --mirror https://github.com/{owner}/{new-repo}.git

Importante

Revise o seu histórico Git para credenciais, chaves API ou dados sensíveis antes de enviar para um repositório público do GitHub. Usa ferramentas como o git filter-repo para remover conteúdo sensível do histórico.

Migrar fluxos de trabalho

GitHub Actions oferece fluxos de trabalho flexíveis e minutos gratuitos de runner para repositórios públicos.

Utilize o GitHub Actions Importer

O GitHub Actions Importer automatiza a conversão de pipelines Azure DevOps para fluxos de trabalho GitHub Actions.

  1. Instale a extensão CLI GitHub Actions Importer:

    gh extension install github/gh-actions-importer
    
  2. Execute uma auditoria para identificar pipelines a migrar:

    gh actions-importer audit azure-devops \
      --output-dir audit-results
    
  3. Converter um pipeline específico:

    gh actions-importer migrate azure-devops pipeline \
      --target-url https://github.com/{owner}/{repo} \
      --pipeline-id {pipeline-id} \
      --output-dir migration-results
    

Para mais informações, consulte Migrar de Azure DevOps para GitHub Actions com GitHub Actions Importer.

Principais diferenças entre Azure Pipelines e GitHub Actions

Azure Pipelines (Pipelines do Azure) GitHub Actions
azure-pipelines.yml .github/workflows/*.yml
Palcos, trabalhos, passos Trabalhos, etapas (fluxos de trabalho reutilizáveis para fases)
Ligações de serviço Segredos do GitHub e OIDC
Pools de agentes Rótulos de runner (ubuntu-latest, windows-latest)
Referências de tarefas (task@version) Referências de ação (owner/action@version)

Migrar conteúdo wiki

Use a Wiki do GitHub ou as páginas do GitHub para publicar guias e manuais.

Migrar para a Wiki do GitHub

As wikis do Azure DevOps são repositórios Git. Clone-os e promove-os diretamente:

# Clone the Azure DevOps wiki repository
git clone https://dev.azure.com/{organization}/{project}/_git/{project}.wiki

cd {project}.wiki

# Add the GitHub wiki as a remote
git remote add github https://github.com/{owner}/{repo}.wiki.git

# Push to GitHub wiki
git push github main

Note

Antes de lançar, cria pelo menos uma página wiki no teu repositório GitHub para inicializar o repositório wiki. Selecione o separador Wiki no seu repositório de GitHub e crie uma página.

Migrar para o GitHub Pages

Para projetos com muita documentação, GitHub Pages fornece um site estático completo alojado diretamente a partir do seu repositório. Podes usar geradores de sites estáticos como o Jekyll ou o MkDocs para converter o teu conteúdo wiki num site publicado.

Artefactos de migração

O GitHub Packages suporta a publicação e consumo de pacotes NuGet, npm e Maven.

Mover pacotes para os pacotes do GitHub

  1. Descarregue pacotes existentes do seu feed Artefactos do Azure.
  2. Reconfigure o código-fonte do seu pacote para apontar para os Pacotes do GitHub.
  3. Publicar pacotes no novo feed.

Por exemplo, para migrar um pacote npm:

# Set the GitHub Packages registry
npm config set @{owner}:registry https://npm.pkg.github.com

# Authenticate
npm login --registry=https://npm.pkg.github.com

# Publish
npm publish

Registos alternativos

Para pacotes que necessitam de ampla visibilidade pública, considere os registos públicos:

Tipo de embalagem Registo público
NuGet nuget.org
npm npmjs.com
Maven Maven Central
Python PyPI
Carga crates.io

Migrar itens de trabalho

O GitHub Issues and Projects fornece ferramentas modernas para gerir bugs e pedidos de funcionalidades.

Não existe uma ferramenta de migração incorporada para trabalhos do Azure Boards para o GitHub Issues. Existem várias opções comunitárias disponíveis:

  • Azure DevOps to GitHub Issues migrator — ferramentas open-source em GitHub que convertem itens de trabalho em edições, preservando títulos, descrições e etiquetas.
  • Exportação/Importação CSV — exportar itens de trabalho do Azure Boards como CSV, depois usar a CLI ou API do GitHub para criar issues.
  • Scripting de API REST — use a API REST do Azure DevOps Work Items e a API REST do GitHub Issues para construir um script de migração personalizado.

Exportar itens de trabalho com a CLI do Azure DevOps

# Export work items from a query
az boards query --wiql "SELECT [System.Id], [System.Title], [System.State] FROM workitems WHERE [System.TeamProject] = '{project}'" --organization https://dev.azure.com/{organization} --output table

Dica

Dê prioridade à migração de itens de trabalho ativos e recentes. Itens fechados ou históricos podem não precisar de migração — pode mantê-los acessíveis no projeto privado para referência.

Substituir painéis de controlo

O GitHub não tem uma única funcionalidade de dashboard equivalente aos dashboards do Azure DevOps. Em vez disso, funcionalidades semelhantes estão distribuídas por várias funcionalidades nativas.

Uso do painel do Azure DevOps Equivalente ao GitHub
Rastreio de trabalho e gráfico de burndown GitHub Projects com gráficos incorporados de Insights
Atividade do repositório Insights do Repositório (commits, PRs, tráfego, colaboradores)
Estado de construção e CI Histórico de execuções e emblemas de estado de GitHub Actions
Transparência pública Edições, pull requests, releases e emblemas README

Para dashboards ao nível da organização que agregam dados em múltiplos repositórios, explore integrações no GitHub Marketplace.

Lista de verificação pós-migração

Depois de migrar o seu conteúdo, verifique os seguintes itens:

  • [ ] Todos os repositórios Git estão disponíveis no GitHub com o histórico completo.
  • [ ] Os fluxos de trabalho CI/CD correm com sucesso no GitHub Actions.
  • [ ] O conteúdo da Wiki é renderizado corretamente no GitHub Wiki ou no GitHub Pages.
  • [ ] Os pacotes são publicados e restaurados a partir do novo registo.
  • [ ] Os itens de trabalho ativos são rastreados nas Questões do GitHub.
  • [ ] Links externos e emblemas apontam para as novas localizações do GitHub.
  • [ ] Colaboradores e membros da comunidade são informados sobre a nova localização.
  • [ ] O README no projeto Azure DevOps direciona os visitantes para a nova localização do GitHub.