Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Instale la extensión de migración de la CLI de GitHub:
gh extension install github/gh-geiAutentí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 loginGenere 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.shO 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:
- Inicie sesión en GitHub y seleccione Nuevo repositorio.
- Escriba un nombre de repositorio y establezca la visibilidad en Público.
- Seleccione Importar un repositorio en la parte superior de la página.
- Escriba la dirección URL de clonación de Azure DevOps:
https://dev.azure.com/{organization}/{project}/_git/{repo}. - 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.
- 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.
Instale la extensión de la CLI de Acciones de GitHub Importer:
gh extension install github/gh-actions-importerEjecute una auditoría para identificar las canalizaciones que se van a migrar:
gh actions-importer audit azure-devops \ --output-dir audit-resultsConvertir 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
- Descargue los paquetes existentes desde la fuente de Azure Artifacts.
- Reconfigure la fuente del paquete para que apunte a GitHub Packages.
- 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.