Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services
Important
Общедоступные проекты в Azure DevOps прекращены. Начиная с 2027 года существующие общедоступные проекты преобразуются в частные. Для получения дополнительной информации см. О прекращении поддержки общедоступных проектов и Переход с общедоступного проекта на GitHub.
В этой статье показано, как перенести каждую область обслуживания из общедоступного проекта Azure DevOps в эквивалент GitHub. Он охватывает репозитории, конвейеры, вики-сайты, артефакты и рабочие элементы.
Необходимые условия
| Требование | Сведения |
|---|---|
| Azure DevOps access | Член проекта с по крайней мере базовым доступом |
| Учетная запись GitHub | Учетная запись GitHub с разрешением на создание репозиториев |
| Git | Локальная установка Git |
| GitHub CLI (необязательно) | GitHub CLI для упрощенных операций |
Перенос репозиториев
Репозитории GitHub поддерживают открытую совместную работу с пулл реквестами, форками и звёздами.
Используйте GitHub Enterprise Importer
GitHub Enterprise Importer — это рекомендуемое средство для переноса репозиториев из Azure DevOps Cloud в GitHub Enterprise Cloud. Он переносит Git-репозиторий (включая историю коммитов), запросы на вытягивание, историю пользователей, ссылки на рабочие элементы в запросах на вытягивание, вложения и политики ветвей.
Установите расширение для миграции GitHub CLI:
gh extension install github/gh-geiПроверка подлинности с помощью Azure DevOps и 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Создайте скрипт миграции для организации Azure DevOps:
gh gei generate-script --ado-org {organization} --github-org {github-org} --output migrate.shИли перенести один репозиторий:
gh gei migrate-repo --ado-org {organization} --ado-team-project {project} \ --ado-repo {repo} --github-org {github-org} --github-repo {new-repo}
Дополнительные сведения см. в разделе Понимание миграций с Azure DevOps на GitHub.
Используйте GitHub Importer
Для более простого варианта, работающего в браузере, используйте встроенный GitHub Импортёр.
- Войдите в GitHub и выберите репозиторий New.
- Введите имя репозитория и задайте видимость общедоступной.
- Выберите "Импорт репозитория" в верхней части страницы.
- Введите URL-адрес клона Azure DevOps:
https://dev.azure.com/{organization}/{project}/_git/{repo}. - При появлении запроса введите свои Azure DevOps учетные данные. Войдите с помощью Microsoft Entra ID. Если необходимо использовать токен личного доступа, создайте его с областью чтения кода>. Дополнительные сведения см. в разделе "Использование личных маркеров доступа".
- Нажмите кнопку "Начать импорт".
GitHub Importer переносит исходный код и историю коммитов Git, но не переносит pull-реквесты, ссылки на рабочие элементы или правила для веток. Дополнительные сведения см. в разделе Импортирование репозитория с использованием инструмента GitHub Importer.
Импорт из командной строки
Если GitHub Enterprise Importer не соответствует вашим потребностям, отправьте их непосредственно из локального клона:
# 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
Important
Просмотрите журнал Git для учетных данных, ключей API или конфиденциальных данных перед отправкой в общедоступный репозиторий GitHub. Используйте такие инструменты, как git filter-repo, чтобы удалить конфиденциальное содержимое из истории.
Перенос конвейеров
GitHub Actions предлагает гибкие рабочие процессы и бесплатные минуты выполнения для общедоступных репозиториев.
Используйте GitHub Actions Importer
Импортер GitHub Actions автоматизирует преобразование Azure Pipelines в рабочие процессы GitHub Actions.
Установите расширение CLI GitHub Actions Importer:
gh extension install github/gh-actions-importerВыполните аудит, чтобы определить конвейеры для миграции:
gh actions-importer audit azure-devops \ --output-dir audit-resultsПреобразование определенного конвейера:
gh actions-importer migrate azure-devops pipeline \ --target-url https://github.com/{owner}/{repo} \ --pipeline-id {pipeline-id} \ --output-dir migration-results
Дополнительные сведения см. в миграции с Azure DevOps на GitHub Actions с помощью GitHub Actions Importer.
Основные различия между Azure Pipelines и GitHub Actions
| Azure Pipelines (система конвейеров Azure) | Действия GitHub |
|---|---|
azure-pipelines.yml |
.github/workflows/*.yml |
| Этапы, задания, шаги | Задания, шаги (повторно используемые рабочие процессы для этапов) |
| Служебные подключения | GitHub секреты и OIDC |
| Пулы агентов | Метки раннера (ubuntu-latest, windows-latest) |
Ссылки на задачи (task@version) |
Ссылки на действия (owner/action@version) |
Перенос вики-содержимого
Используйте GitHub Wiki или GitHub Pages для публикации руководств и инструкций.
Миграция на GitHub Wiki
Azure DevOps вики-сайты являются репозиториями Git. Клонируйте и отправьте их напрямую:
# 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
Замечание
Перед отправкой создайте по крайней мере одну вики-страницу в репозитории GitHub, чтобы инициализировать репозиторий вики-сайта. Перейдите на вкладку Wiki в репозитории GitHub и создайте страницу.
Переход на страницы GitHub
Для проектов, требующих обширной документации, GitHub Pages предоставляет полный статический сайт, размещенный непосредственно из репозитория. Вы можете использовать генераторы статических сайтов, такие как Jekyll или MkDocs, для преобразования вики-содержимого в опубликованный сайт.
Перенос артефактов
пакеты GitHub поддерживают публикацию и использование пакетов NuGet, npm и Maven.
Перемещение пакетов в пакеты GitHub
- Скачайте существующие пакеты из источника Azure Artifacts.
- Перенастройте источник пакетов, чтобы указать на GitHub Packages.
- Опубликовать пакеты в новом фиде.
Например, чтобы перенести пакет 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
Альтернативные реестры
Для пакетов, которым требуется широкая общедоступная видимость, рассмотрим общедоступные реестры:
| Тип пакета | Общедоступный реестр |
|---|---|
| NuGet | nuget.org |
| npm | npmjs.com |
| Maven | Maven Central |
| Python | PyPI |
| Груз | crates.io |
Перенос рабочих элементов
GitHub Issues и проекты предоставляют современные средства для управления багами и запросами новых возможностей.
Нет встроенного средства миграции для рабочих элементов из Azure Boards в GitHub Issues. Доступны несколько вариантов сообщества:
- Инструмент для миграции из Azure DevOps в GitHub Issues — это средства с открытым исходным кодом на GitHub, которые преобразуют рабочие элементы в заявки, сохраняя заголовки, описания и метки.
- CSV export/import — экспорт рабочих элементов из Azure Boards в формате CSV, а затем использовать GitHub CLI или API для создания проблем.
- Сценарии REST API — используйте REST API Azure DevOps и REST API GitHub Issues для разработки пользовательского сценария миграции.
Экспорт рабочих элементов с помощью интерфейса командной строки 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
Подсказка
Дайте приоритет миграции активных и последних рабочих элементов. Закрытые или исторические элементы могут не нуждаться в миграции— их можно сохранить в частном проекте для справки.
Замена панелей мониторинга
GitHub не имеет единой функции панели мониторинга, эквивалентной Azure DevOps панелям мониторинга. Вместо этого аналогичная функциональность распределена между несколькими встроенными функциями.
| использование панели мониторинга Azure DevOps | эквивалент GitHub |
|---|---|
| Отслеживание работы и сожжение | GitHub Проекты со встроенными диаграммами Insights |
| Действие репозитория | Аналитика репозитория (коммиты, ПР, трафик, участники) |
| Состояние сборки и CI | GitHub Actions журнал выполнения рабочего процесса и индикаторы состояния |
| Общедоступная прозрачность | Проблемы, запросы на вытягивание, выпуски и эмблемы README |
Для панелей мониторинга на уровне организации, которые объединяют данные из нескольких репозиториев, изучите интеграции с GitHub Marketplace.
Контрольный список после миграции
После переноса содержимого проверьте следующие элементы:
- [ ] Все репозитории Git доступны на GitHub с полной историей изменений.
- [ ] Рабочие процессы CI/CD успешно выполняются в GitHub Actions.
- [ ] Содержимое вики правильно отображается в GitHub вики или GitHub Pages.
- [ ] Пакеты публикуются и восстанавливаются из нового реестра.
- [ ] Активные рабочие элементы отслеживаются в задачах GitHub.
- [ ] Внешние ссылки и значки указывают на новые страницы GitHub.
- [ ] Участники совместной работы и члены сообщества уведомляются о новом расположении.
- [ ] README в проекте Azure DevOps направляет посетителей в новое расположение GitHub.