Migración de un proyecto público a GitHub

Azure DevOps Services

Importante

Los proyectos públicos en Azure DevOps se retiran. A partir de 2027, los proyectos públicos existentes se convierten en privados. Para obtener más información, vea Retirada de proyectos públicos y Migra de un proyecto público a GitHub.

En este artículo se muestra cómo migrar cada área de servicio de un proyecto público de Azure DevOps a su GitHub equivalente. Abarca repositorios, canalizaciones, wikis, artefactos y elementos de trabajo.

Prerequisites

Requisito Detalles
Acceso a Azure DevOps Miembro del proyecto con al menos acceso básico
Cuenta de GitHub Una cuenta GitHub con permiso para crear repositorios
Git Git instalado localmente
GitHub CLI (opcional) GitHub CLI para operaciones simplificadas

Migración de repositorios

Los repositorios de GitHub admiten la colaboración abierta con pull requests, forks y estrellas.

Uso de GitHub Enterprise Importer

GitHub Enterprise Importer es la herramienta recomendada para migrar repositorios de Azure DevOps Cloud a GitHub Enterprise Cloud. Migra el origen de Git (incluido el historial de confirmaciones), las solicitudes de incorporación de cambios, el historial de usuarios, los vínculos de elementos de trabajo en las solicitudes de incorporación de cambios, los datos adjuntos y las directivas de rama.

  1. Instale la extensión de migración de la CLI de GitHub:

    gh extension install github/gh-gei
    
  2. Autentíquese con Azure DevOps y 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. Genere un script de migración para una organización de Azure DevOps:

    gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.sh
    
  4. O bien, migre un único repositorio:

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

Para obtener más información, consulte Comprender migraciones de Azure DevOps a GitHub.

Uso de GitHub Importer

Para obtener una opción más sencilla basada en explorador, use el GitHub Importer integrado:

  1. Inicie sesión en GitHub y seleccione Nuevo repositorio.
  2. Escriba un nombre de repositorio y establezca la visibilidad en Público.
  3. Seleccione Importar un repositorio en la parte superior de la página.
  4. Escriba la dirección URL de clonación de Azure DevOps: https://dev.azure.com/{organization}/{project}/_git/{repo}.
  5. Si se le solicita, escriba sus credenciales de Azure DevOps. Inicie sesión con Microsoft Entra ID. Si necesita usar un token de acceso personal, cree uno con el alcance Leer código>. Para obtener más información, consulte Uso de tokens de acceso personal.
  6. Seleccione Begin import (Comenzar importación).

GitHub Importer migra el origen y el historial de confirmaciones de Git, pero no migra solicitudes de incorporación de cambios, vínculos de elementos de trabajo ni directivas de rama. Para obtener más información, consulte Importar un repositorio con GitHub Importer.

Importación desde la línea de comandos

Si GitHub Enterprise Importer no satisface sus necesidades, inserte directamente desde un clon 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 el historial de Git para obtener credenciales, claves de API o datos confidenciales antes de insertar en un repositorio público de GitHub. Use herramientas como git filter-repo para quitar contenido confidencial del historial.

Migración de canalizaciones

Acciones de GitHub ofrece flujos de trabajo flexibles y minutos de ejecutor gratuitos para repositorios públicos.

Uso de Acciones de GitHub Importer

Acciones de GitHub Importer automatiza la conversión de canalizaciones de Azure DevOps a flujos de trabajo de Acciones de GitHub.

  1. Instale la extensión de la CLI de Acciones de GitHub Importer:

    gh extension install github/gh-actions-importer
    
  2. Ejecute una auditoría para identificar las canalizaciones que se van a migrar:

    gh actions-importer audit azure-devops \
      --output-dir audit-results
    
  3. Convertir una canalización específica:

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

Para obtener más información, consulte Migrate de Azure DevOps a Acciones de GitHub con Acciones de GitHub Importer.

Diferencias clave entre Azure Pipelines y Acciones de GitHub

Azure Pipelines (Canales de Azure) Acciones de GitHub
azure-pipelines.yml .github/workflows/*.yml
Fases, trabajos, pasos Trabajos, pasos (flujos de trabajo reutilizables para fases)
Conexiones de servicio secretos de GitHub y OIDC
Grupos de agentes Etiquetas de ejecutor (ubuntu-latest, windows-latest)
Referencias de tareas (task@version) Referencias de acción (owner/action@version)

Migración de contenido wiki

Use GitHub Wiki o GitHub Pages para publicar guías y manuales.

Migración a GitHub Wiki

Azure DevOps wikis son repositorios de Git. Clone y empújalos directamente:

# 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 insertar, cree al menos una página wiki en el repositorio de GitHub para inicializar el repositorio wiki. Seleccione la pestaña Wiki en el repositorio de GitHub y cree una página.

Migración a páginas de GitHub

Para proyectos con mucha documentación, GitHub Pages proporciona un sitio estático completo hospedado directamente desde el repositorio. Puede usar generadores de sitios estáticos como Jekyll o MkDocs para convertir el contenido wiki en un sitio publicado.

Migración de artefactos

GitHub Packages admite la publicación y el consumo de paquetes NuGet, npm y Maven.

Mover paquetes a paquetes de GitHub

  1. Descargue los paquetes existentes desde la fuente de Azure Artifacts.
  2. Reconfigure la fuente del paquete para que apunte a GitHub Packages.
  3. Publique paquetes en el nuevo repositorio.

Por ejemplo, para migrar un paquete de 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

Registros alternativos

Para los paquetes que necesitan una amplia visibilidad pública, tenga en cuenta los registros públicos:

Tipo de paquete Registro público
NuGet nuget.org
npm npmjs.com
Maven Maven Central
Python PyPI
Cargo crates.io

Migración de elementos de trabajo

GitHub Problemas y proyectos proporcionan herramientas modernas para administrar errores y solicitudes de características.

No hay ninguna herramienta de migración integrada para elementos de trabajo de Azure Boards a incidencias de GitHub. Hay varias opciones de comunidad disponibles:

  • Migrador de Azure DevOps a incidencias de GitHub: herramientas de código abierto en GitHub que convierten elementos de trabajo en incidencias, conservando títulos, descripciones y etiquetas.
  • CSV export/import : exporte elementos de trabajo de Azure Boards como CSV y, a continuación, use la CLI o la API de GitHub para crear problemas.
  • REST API scripting — usa la API REST de elementos de trabajo de Azure DevOps y la API REST de GitHub Issues para crear un script de migración personalizado.

Exportación de elementos de trabajo con la CLI de 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

Tip

Priorice la migración de elementos de trabajo activos y recientes. Es posible que los elementos cerrados o históricos no necesiten la migración; puede mantenerlos accesibles en el proyecto privado como referencia.

Reemplazar tableros de control

GitHub no tiene una sola característica de panel de control equivalente a los tableros de Azure DevOps. En su lugar, la funcionalidad similar se distribuye entre varias características nativas.

uso del panel de Azure DevOps GitHub equivalente
Seguimiento del trabajo y gráfico de quema GitHub Projects con gráficos de Insights integrados
Actividad del repositorio Información del repositorio (confirmaciones, solicitudes de incorporación de cambios, tráfico, colaboradores)
Estado de compilación y CI Acciones de GitHub historial de ejecuciones de flujos de trabajo y distintivos de estado
Transparencia pública Incidencias, solicitudes de incorporación de cambios, versiones e insignias README

En el caso de los paneles de nivel de organización que agregan datos en varios repositorios, explore las integraciones en GitHub Marketplace.

Lista de comprobación posterior a la migración

Después de migrar el contenido, compruebe los siguientes elementos:

  • [ ] Todos los repositorios de Git están disponibles en GitHub con historial completo.
  • [ ] Los flujos de trabajo de CI/CD se ejecutan correctamente en Acciones de GitHub.
  • [ ] El contenido wiki se representa correctamente en GitHub Wiki o GitHub Pages.
  • [ ] Los paquetes se publican y restauran desde el nuevo registro.
  • [ ] Los elementos de trabajo activos se rastrean en GitHub Issues.
  • [ ] Los vínculos y distintivos externos apuntan a las nuevas ubicaciones de GitHub.
  • [ ] Se informa a los colaboradores y a los miembros de la comunidad de la nueva ubicación.
  • [ ] Léame en el proyecto de Azure DevOps dirige a los visitantes a la nueva ubicación de GitHub.