Azure DevOps Migration Tools

v16.0.9

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.

Home
 › 
Learn
 › 
Overview
 › 
Reference
 › 
Processors
 › 
Azuredevopspipelineprocessor
Overview

Processors : AzureDevOpsPipelineProcessor

Ref

  

Less than 1 minute to read

  

2024-12-04 17:20:47 +0000

Azure DevOps Processor that migrates Taskgroups, Build- and Release Pipelines.

Features

  • Migrates service connections
  • Migrates variable groups
  • Migrates task groups
  • Migrates classic and yml build pipelines
  • Migrates release pipelines

Options

Parameter name Type Description Default Value
BuildPipelines List List of Build Pipelines to process. If this is `null` then all Build Pipelines will be processed. missing XML code comments
Enabled Boolean If set to `true` then the processor will run. Set to `false` and the processor will not run. missing XML code comments
MigrateBuildPipelines Boolean Migrate Build Pipelines true
MigrateReleasePipelines Boolean Migrate Release Pipelines true
MigrateServiceConnections Boolean Migrate Service Connections **secrets need to be entered manually** true
MigrateTaskGroups Boolean Migrate Task Groups true
MigrateVariableGroups Boolean Migrate Valiable Groups true
ReleasePipelines List List of Release Pipelines to process. If this is `null` then all Release Pipelines will be processed. missing XML code comments
RepositoryNameMaps Dictionary Map of Source Repository to Target Repository Names missing XML code comments
SourceName String missing XML code comments missing XML code comments
TargetName String missing XML code comments missing XML code comments

Examples

sample

This is an example of what your config might look like once configured.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    {
  "MigrationTools": {
    "Version": "16.0",
    "Processors": [
      {
        "ProcessorType": "AzureDevOpsPipelineProcessor",
        "BuildPipelines": "",
        "Enabled": "False",
        "MigrateBuildPipelines": "True",
        "MigrateReleasePipelines": "True",
        "MigrateServiceConnections": "True",
        "MigrateTaskGroups": "True",
        "MigrateVariableGroups": "True",
        "ReleasePipelines": "",
        "SourceName": "sourceName",
        "TargetName": "targetName"
      }
    ]
  }
}
    

defaults

These are the default values for this configuration. If you do not set it in your config the default always applies. You can overide by adding a diferent value in your config.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    {
  "MigrationTools": {
    "Version": "16.0",
    "Processors": [
      {
        "ProcessorType": "AzureDevOpsPipelineProcessor",
        "BuildPipelines": "",
        "Enabled": "False",
        "MigrateBuildPipelines": "True",
        "MigrateReleasePipelines": "True",
        "MigrateServiceConnections": "True",
        "MigrateTaskGroups": "True",
        "MigrateVariableGroups": "True",
        "ReleasePipelines": "",
        "SourceName": "sourceName",
        "TargetName": "targetName"
      }
    ]
  }
}
    

classic

We have moved to a new config format, and you will need to update your old configs. This entry is a strate seralisation of the object and is here for legacy, and may provide value for debugging issues.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    {
  "$type": "AzureDevOpsPipelineProcessorOptions",
  "Enabled": false,
  "MigrateBuildPipelines": true,
  "MigrateReleasePipelines": true,
  "MigrateTaskGroups": true,
  "MigrateVariableGroups": true,
  "MigrateServiceConnections": true,
  "BuildPipelines": null,
  "ReleasePipelines": null,
  "RepositoryNameMaps": null,
  "SourceName": "sourceName",
  "TargetName": "targetName"
}
    

Example Full Migration from v12.0

The following file is an example that can be used in your configuration.json file to migrate Azure DevOps pipelines.

{
    "GitRepoMapping": null,
    "LogLevel": "Information",
    "Processors": [
      {
        "$type": "AzureDevOpsPipelineProcessorOptions",
        "Enabled": true,
        "MigrateBuildPipelines": true,
        "MigrateReleasePipelines": true,
        "MigrateTaskGroups": true,
        "MigrateVariableGroups": true,
        "MigrateServiceConnections": true,
        "BuildPipelines": null,
        "ReleasePipelines": null,
        "RefName": null,
        "SourceName": "Source",
        "TargetName": "Target",
        "RepositoryNameMaps": {}
      }
    ],
    "Version": "12.0",
    "Endpoints": {
      "AzureDevOpsEndpoints": [
        {
          "name": "Source",
          "$type": "AzureDevOpsEndpointOptions",
          "Organisation": "https://dev.azure.com/source-org/",
          "Project": "Awesome project",
          "AuthenticationMode": "AccessToken",
          "AccessToken": "xxxxxx",
          "EndpointEnrichers": null
        },
        {
          "Name": "Target",
          "$type": "AzureDevOpsEndpointOptions",
          "Organisation": "https://dev.azure.com/target-org/",
          "Project": "Cool project",
          "AuthenticationMode": "AccessToken",
          "AccessToken": "xxxxxx",
          "EndpointEnrichers": null
        }
      ]
    }
  }

If the repository in the target has a different name from the one that was used in the source project, you should map it. In the example above replace "RepositoryNameMaps": {} with the following:

"RepositoryNameMaps": {
    "Awesome project": "Cool project"
}

Important note

When the application is creating service connections make sure you have proper permissions on Azure Active Directory and you can grant Contributor role to the subscription that was chosen.

...
Getting Support

Community Support

Question & Discussion - The first place to look for usage, configuration, and general help.

Commercial Support

We provide training, ad-hoc support, and full service migrations through Azure DevOps Migration Services