Processors : AzureDevOpsPipelineProcessor
Ref
Less than 1 minute to read
2024-12-04 17:20:47 +0000
draft
This page is in draft and may include errors or omissions. Please check the discussions for any pending updates and changes to the content or to suggest your own changes.
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.