nkdAgility / azure-devops-migration-tools

Azure DevOps Migration Tools allow you to migrate Teams, Backlogs, Tasks, Test Cases, and Plans & Suits from one Project to another in Azure DevOps / TFS both within the same Organisation, and between Organisations.
https://marketplace.visualstudio.com/items?itemName=nkdagility.vsts-sync-migration
MIT License
475 stars 322 forks source link
azure-devops azure-devops-extension azure-devops-migrtation azure-devops-services bulk-editing chocolatey microsoft migration tfs vsts

azure-devops-migration-tools GitHub release GitHub pre-release

Build Status Azure DevOps tests Coverage Maintainability Rating Security Rating Vulnerabilities Visual Studio Marketplace Rating Chocolatey Downloads

Created and maintained by Martin Hinshelwood (http://nkdagility.com)

YouTube Channel Subscribers YouTube Channel Views

Azure DevOps Migration Tools

The Azure DevOps Migration Tools allow you to bulk edit and migrate data between Team Projects on both Microsoft Team Foundation Server (TFS) and Azure DevOps Services. Take a look at the documentation to find out how. This project is published as code on GitHub as well as a Winget package a nkdAgility.AzureDevOpsMigrationTools.

Ask Questions on Github: https://github.com/nkdAgility/azure-devops-migration-tools/discussions

Some Data from the last 30 days (as of 05/03/2024)

Category Metric Notes
Work Items 1m A single Work Item may have many revisions that we need to migrate
Work Item Revisions 23m A single Work Item may have many revisions that we need to migrate
RelatedLinkCount 11m Each work item may have many links or none.
Git Commit Links 1.3m
Attachments 1.2m Total number of attachments migrated
Test Suits 52k total suits migrated
Test Cases Mapped 1.4m Total test cases mapped into Suits
Migration Run Ave 14 minutes Includes dry-runs as well.
Migration Run Total 19bn Seconds Thats 316m hours or 13m days of run time in the last 30 days.
Average Work item Migration Time 22s Work Item (includes all revisions, links, and attachments for the work item)

What can you do with this tool?

WARNING: This tool is not designed for a novice. This tool was developed to support the scenarios below, and the edge cases that have been encountered by the 30+ contributors from around the Azure DevOps community. You should be comfortable with the TFS/Azure DevOps object model, as well as debugging code in Visual Studio. Community support is available through GitHub ; Paid support is available through our recommended consultants as well as our contributors and many DevOps consultants around the world.

What versions of Azure DevOps & TFS do you support?

Typical Uses of this tool

NOTE: If you are able to migrate your entire Collection to Azure DevOps Services you should use Azure DevOps Migration Service from Microsoft. If you have a requirement to change Process Template then you will need to do that before you move to Azure DevOps Services.

Quick Links

Installing and running the tools

These tools are available as a portable application and can be installed in a number of ways, including manually from a zip. For a more detailed getting started guide please see the documentation.

Option 1: Winget

We use winget to host the tools, and you can use the command winget install nkdAgility.AzureDevOpsMigrationTools to install them on Windows 10 and Windows 11.

The tools will be installed to %Localappdata%\Microsoft\WinGet\Packages\nkdAgility.AzureDevOpsMigrationTools_Microsoft.Winget.Source_XXXXXXXXXX and a symbolic link to devopsmigration.exe that lets you run it from anywhere using devopsmigration init.

NOTE: Do not install using an elevated command prompt!

Option 2: Chocolatey

We also deploy to Chocolatey and you can use the command choco install vsts-sync-migrator to install them on Windows Server.

The tools will be installed to C:\Tools\MigrationTools\ which should be added to the path. You can run devopsmigration.exe

Option 3: Manual

You can download the latest release and unzip it to a folder of your choice.

Minimum Permission Requirements

At this time the documented minimum required permissions for running the tools are:

Note: I have been informed by the Azure DevOps product team information that ObjectModel API only works with full scoped PATs, so it won't work with any PAT that has specific scopes.

Advanced Unsupported Permission Options

We have seen that the tools may work with less permissions however the following has not been full tested and is not currently supported:

If you do try this out then please let us know how you get on!

Advanced tools

There are additional advanced tooling available on Azure DevOps Automation Tools. These are a collection of Powershell scripts that can be used to;

These tools are designed to help you manage migration of Work Items at scale.

Support

  1. Question & Discussion - The first place to look for usage, configuration, and general help.
  2. Issues on GitHub - If you have identified a bug and have logs then please raise an issue.

Professional Support

You can get free support from the community above and on social media on a best effort basis if folks are available. If you are looking for paid support naked Agility with Martin Hinshelwood & Co has a number of experts, many of whom contribute to this project, that can help. Find out how we can help you with your migration and book a free consultation to discuss how we can make things easier.

We use these tools with our customers, and for fun, to do real world migrations on a daily basis and we can:

Change Log