Skip to content

Commit

Permalink
Migrate to winget and change exe name to devops-migration (#1677)
Browse files Browse the repository at this point in the history
* Replaced documented references with Winget
* Update telemetry message
* Updated execute to DevOps-Migration.exe
* Updated all packages to latest
+semver: major
  • Loading branch information
MrHinsh authored Oct 10, 2023
1 parent 119e5cb commit 868105d
Show file tree
Hide file tree
Showing 23 changed files with 125 additions and 83 deletions.
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Azure DevOps Migration Tools [![Chocolatey](https://img.shields.io/chocolatey/dt/vsts-sync-migrator.svg)](https://chocolatey.org/packages/vsts-sync-migrator/) [![GitHub release](https://img.shields.io/github/release/nkdAgility/vsts-sync-migration.svg)](https://github.com/nkdAgility/azure-devops-migration-tools/releases) ![Build on VSTS](https://nkdagility.visualstudio.com/_apis/public/build/definitions/1b52ce63-eccc-41c8-88f9-ae6ebeefdc63/94/badge)
# Azure DevOps Migration Tools [![GitHub release](https://img.shields.io/github/release/nkdAgility/vsts-sync-migration.svg)](https://github.com/nkdAgility/azure-devops-migration-tools/releases) ![Build on VSTS](https://nkdagility.visualstudio.com/_apis/public/build/definitions/1b52ce63-eccc-41c8-88f9-ae6ebeefdc63/94/badge)

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](https://nkdagility.com/docs/azure-devops-migration-tools/) to find out how. This project is published as [code on GitHub](https://github.com/nkdAgility/azure-devops-migration-tools/) as well as a [Azure DevOps Migration Tools on Chocolatey](https://chocolatey.org/packages/vsts-sync-migrator/).
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](https://nkdagility.com/docs/azure-devops-migration-tools/) to find out how. This project is published as [code on GitHub](https://github.com/nkdAgility/azure-devops-migration-tools/) as well as a Winget package a `nkdAgility.AzureDevOpsMigrationTools`.

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

Expand Down Expand Up @@ -53,7 +53,14 @@ The Azure DevOps Migration Tools allow you to bulk edit and migrate data between
- [Getting Started](https://nkdagility.com/learn/azure-devops-migration-tools/getting-started.html)
- [Documentation](https://nkdagility.com/learn/azure-devops-migration-tools/)
- [Questions on Usage](https://github.com/nkdAgility/azure-devops-migration-tools/discussions)
- [Bugs](https://github.com/nkdAgility/azure-devops-migration-tools)

## Installing an running the tools

We use [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/) to host the tools, and you can use the command `winget install nkdAgility.AzureDevOpsMigrationTools` to install them on Windows 10 and Windows 11. For other operating systems you can download the [latest release](https://github.com/nkdAgility/azure-devops-migration-tools/releases/latest) and unzip it to a folder of your choice.

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

For a more detailed getting started guide please see the [documentation](https://nkdagility.com/docs/azure-devops-migration-tools/getting-started.html).

## Support

Expand All @@ -72,6 +79,7 @@ We use these tools with our customers, and for fun, to do real world migrations

## Change Log

- 14.0 - Move from Chocolaty to Winget as the base installer. We will continue to publish to Chocolaty, but we recommend using `winget install nkdAgility.AzureDevOpsMigrationTools` for future installs. Main executable renamed to "devops-migration.exe" to prevent conflict with other applications with symbolic links.
- 13.2 - Added [ExportUsersForMapping](https://nkdagility.com/learn/azure-devops-migration-tools/Reference/v1/Processors/TeamMigrationContext/) to export a json file with a list of users ready for a field mapping.
- 13.1 - Update all NuGet packages to latest version.
- 13.0 - Update to .net 7.0 with all dependancies. Focus on documentation improvements to support future updates.
Expand Down Expand Up @@ -107,4 +115,3 @@ We use these tools with our customers, and for fun, to do real world migrations
| Security Rating | [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=vsts-sync-migrator%3Amaster&metric=security_rating)](https://sonarcloud.io/dashboard?id=vsts-sync-migrator%3Amaster) |
| Vulnerabilities | [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=vsts-sync-migrator%3Amaster&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=vsts-sync-migrator%3Amaster) |
| Release | [![GitHub release](https://img.shields.io/github/release/nkdAgility/vsts-sync-migration.svg)](https://github.com/nkdAgility/azure-devops-migration-tools/releases) |
| Chocolatey |[![Chocolatey](https://img.shields.io/chocolatey/v/vsts-sync-migrator.svg)](https://chocolatey.org/packages/vsts-sync-migrator/)|
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ configurationSamples:
},
"MaxGracefulFailures": 0,
"SkipRevisionWithInvalidIterationPath": false,
"SkipRevisionWithInvalidAreaPath": false
"SkipRevisionWithInvalidAreaPath": false,
"ShouldCreateMissingRevisionPaths": true
}
sampleFor: MigrationTools._EngineV1.Configuration.Processing.WorkItemMigrationConfig
description: WorkItemMigrationConfig is the main processor used to Migrate Work Items, Links, and Attachments. Use `WorkItemMigrationConfig` to configure.
Expand Down Expand Up @@ -118,6 +119,10 @@ options:
type: Boolean
description: You can choose to migrate the tip only (a single write) or all of the revisions (many writes). If you are setting this to `false` to migrate only the tip then you should set `BuildFieldTable` to `true`.
defaultValue: true
- parameterName: ShouldCreateMissingRevisionPaths
type: Boolean
description: When set to True the susyem will try to create any missing missing area or iteration paths from the revisions.
defaultValue: missng XML code comments
- parameterName: SkipRevisionWithInvalidAreaPath
type: Boolean
description: When set to true, this setting will skip a revision if the source area has not been migrated, has been deleted or is somehow invalid, etc.
Expand All @@ -132,7 +137,7 @@ options:
defaultValue: false
- parameterName: StopMigrationOnMissingAreaIterationNodes
type: Boolean
description: ''
description: With this enabled the system will stop after the check for missing nodes if detected.
defaultValue: '?'
- parameterName: UpdateCreatedBy
type: Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,29 @@ categories:
topics:
- topic: notes
path: /docs/Reference/v1/Processors/ExportUsersForMapping-notes.md
exists: false
markdown: ''
exists: true
markdown: >-
## Additional Samples & Info
```
{
"$type": "ExportUsersForMappingConfig",
"Enabled": false,
"LocalExportJsonFile": "c:\\temp\\ExportUsersForMappingConfig.json",
"WIQLQuery": "SELECT [System.Id], [System.Tags] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan') ORDER BY [System.ChangedDate] desc",
"IdentityFieldsToCheck": [
"System.AssignedTo",
"System.ChangedBy",
"System.CreatedBy",
"Microsoft.VSTS.Common.ActivatedBy",
"Microsoft.VSTS.Common.ResolvedBy",
"Microsoft.VSTS.Common.ClosedBy"
]
}
```
- topic: introduction
path: /docs/Reference/v1/Processors/ExportUsersForMapping-introduction.md
exists: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ configurationSamples:
},
"MaxGracefulFailures": 0,
"SkipRevisionWithInvalidIterationPath": false,
"SkipRevisionWithInvalidAreaPath": false
"SkipRevisionWithInvalidAreaPath": false,
"ShouldCreateMissingRevisionPaths": true
}
sampleFor: MigrationTools._EngineV1.Configuration.Processing.WorkItemMigrationConfig
description: WorkItemMigrationConfig is the main processor used to Migrate Work Items, Links, and Attachments. Use `WorkItemMigrationConfig` to configure.
Expand Down Expand Up @@ -119,6 +120,10 @@ options:
type: Boolean
description: You can choose to migrate the tip only (a single write) or all of the revisions (many writes). If you are setting this to `false` to migrate only the tip then you should set `BuildFieldTable` to `true`.
defaultValue: true
- parameterName: ShouldCreateMissingRevisionPaths
type: Boolean
description: When set to True the susyem will try to create any missing missing area or iteration paths from the revisions.
defaultValue: missng XML code comments
- parameterName: SkipRevisionWithInvalidAreaPath
type: Boolean
description: When set to true, this setting will skip a revision if the source area has not been migrated, has been deleted or is somehow invalid, etc.
Expand All @@ -133,7 +138,7 @@ options:
defaultValue: false
- parameterName: StopMigrationOnMissingAreaIterationNodes
type: Boolean
description: ''
description: With this enabled the system will stop after the check for missing nodes if detected.
defaultValue: '?'
- parameterName: UpdateCreatedBy
type: Boolean
Expand Down Expand Up @@ -473,7 +478,26 @@ topics:
> Note: This mappings could also be achieved with other forms of Field mapper e.g. `RegexFieldMapConfig`, but the value mapper as an example is easy to understand
- topic: introduction
path: /docs/Reference/v1/Processors/WorkItemMigrationContext-introduction.md
exists: false
markdown: ''
exists: true
markdown: >+
The `WorkItemMigrationContext` processor is used for migrating work items from one Azure DevOps instance to another. This encompasses a variety of activities:
1. **Transferring Work Items Between Instances**: The primary purpose of the processor is to transfer work items, including bugs, tasks, user stories, features, and more, from one Azure DevOps instance to another.
2. **Migrating Work Item History**: The processor can also replicate the entire revision history of work items, providing continuity and maintaining a record of changes.
3. **Migrating Attachments and Links**: The processor can transfer any attachments or links associated with work items. This includes both external links and internal links to other work items.
4. **Updating Metadata**: If configured, the processor can update the "Created Date" and "Created By" fields on migrated work items to match the original items in the source instance.
5. **Filtering Work Items**: The processor can be configured to only migrate certain work items based on their area or iteration paths.
Overall, the `WorkItemMigrationContext` processor is a comprehensive tool for transferring work items and their associated data and metadata between Azure DevOps instances. It should be used whenever there is a need to move work items between instances while preserving as much information as possible.
---
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ topics:
The Work Item endpoint is super awesome.
Client | WriteTo/ReadFrom | Endpoint | Data Target | Description
|Client | WriteTo/ReadFrom | Endpoint | Data Target | Description |
----------|-----------|------------
|:-:|:-:|:-:|:-:|:-:|
AzureDevops.ObjectModel | Tfs Object Model | `TfsWorkItemEndPoint` | WorkItems | TBA
Expand Down
4 changes: 2 additions & 2 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ For details on how to add the field in each case, and trouble shooting check the

## Can I disable the telemetry collected and sent to Application Insights?

Yes! You can turn off telemetry from v13.2 by passing `off` as a value for `--telemetry` on the command line.
Yes! You can turn off telemetry from v13.2 by passing `true` as a value for `--disableTelemetry` on the command line.

```
migration.exe --config configuration.json --telemetry off
devops-migration.exe --config configuration.json --disableTelemetry true
```
16 changes: 8 additions & 8 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,23 @@ Watch the [Video Overview](https://youtu.be/RCJsST0xBCE) to get started in 30 mi

In order to run the migration you will need to install the tools first.

1. Install Chocolatey from [https://chocolatey.org/install](https://chocolatey.org/install)
1. Run `choco install vsts-sync-migrator` to install the tools [source](https://chocolatey.org/packages/vsts-sync-migrator)
1. Install [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
1. Run `winget install nkdAgility.AzureDevOpsMigrationTools` from the [Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/) to install on Windows 10 and Windows 11. For other operating systems you can download the [latest release](https://github.com/nkdAgility/azure-devops-migration-tools/releases/latest) and unzip it to a folder of your choice.

The tools are now installed. To run them, you must switch to `c:\tools\MigrationTools\` and run `migration.exe`.
The tools will be installed to `%Localappdata%\Microsoft\WinGet\Packages\nkdAgility.AzureDevOpsMigrationTools_Microsoft.Winget.Source_XXXXXXXXXX` and a symbolic link to `devops-migration.exe` that lets you run it from anywhere using `devops-migration init`.

## Upgrade

1. Run `choco upgrade vsts-sync-migrator` to upgrade the tools [source](https://chocolatey.org/packages/vsts-sync-migrator)
1. Run `winget upgrade nkdAgility.AzureDevOpsMigrationTools` to upgrade the tools.

## Server configuration and setup

Follow the [setup instructions](server-configuration.md) to make sure that you can run the tool against your environments and more importantly add the required custom field 'ReflectedWorkItemId'

## Create a default configuration file

1. Open a command prompt or PowerShell window at `C:\tools\MigrationTools\`
2. Run `./migration.exe init` to create a default configuration
1. Open your [Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/) in your chosen working folder
2. Run `migration init` to create a default configuration
3. Open `configuration.json` from the current directory

You can now customize the configuration depending on what you need to do. However, a basic config that you can use to migrate from one team project to another with the same process template is:
Expand Down Expand Up @@ -70,14 +70,14 @@ The default [WorkItemMigrationConfig](/docs/Reference/v1/Processors/WorkItemMigr
5. Enable the `WorkItemMigrationConfig` processor by setting `Enabled` to `true`
6. [OPTIONAL] Modify the `WIQLQueryBit` to migrate only the work items you want. The default WIQL will migrate all open work items and revisions excluding test suites and plans
7. Adjust the [`NodeBasePaths`](/docs/Reference/v1/Processors/WorkItemMigrationConfig.md) or leave empty to migrate all nodes
8. From the `C:\tools\MigrationTools\` path run `.\migration.exe execute --config .\configuration.json`
8. From your working folder run `devops-migration execute --config .\configuration.json`

**Remember:** If you want a processor to run, its `Enabled` attribute must be set to `true`.

Refer to the [Reference Guide](/docs/Reference/index.md) for more details.

## Other Configuration Options
When running `./migration.exe init` you can also pass `--options` with one of the following:
When running `devops-migration init` you can also pass `--options` with one of the following:

- *Full* -
- *WorkItemTracking* -
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pageStatus: published
discussionId:
---

[![Chocolatey](https://img.shields.io/chocolatey/dt/vsts-sync-migrator.svg)](https://chocolatey.org/packages/vsts-sync-migrator/) [![GitHub release](https://img.shields.io/github/release/nkdAgility/vsts-sync-migration.svg)](https://github.com/nkdAgility/azure-devops-migration-tools/releases) ![Build on VSTS](https://nkdagility.visualstudio.com/_apis/public/build/definitions/1b52ce63-eccc-41c8-88f9-ae6ebeefdc63/94/badge)
[![GitHub release](https://img.shields.io/github/release/nkdAgility/vsts-sync-migration.svg)](https://github.com/nkdAgility/azure-devops-migration-tools/releases) ![Build on VSTS](https://nkdagility.visualstudio.com/_apis/public/build/definitions/1b52ce63-eccc-41c8-88f9-ae6ebeefdc63/94/badge)

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](https://nkdagility.com/docs/azure-devops-migration-tools/) to find out how. This project is published as [code on GitHub](https://github.com/nkdAgility/azure-devops-migration-tools/) as well as a [Azure DevOps Migration Tools on Chocolatey](https://chocolatey.org/packages/vsts-sync-migrator/).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.21.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="Microsoft.TeamFoundationServer.ExtendedClient" Version="16.205.1" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.21.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.21.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="YamlDotNet" Version="13.1.1" />
<PackageReference Include="YamlDotNet" Version="13.5.2" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<OutputType>Exe</OutputType>
<TargetFramework>net472</TargetFramework>
<Product>Azure DevOps Migration Tools [Object Model]</Product>
<AssemblyName>migration</AssemblyName>
<AssemblyName>devops-migration</AssemblyName>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

Expand Down
Loading

0 comments on commit 868105d

Please sign in to comment.