Skip to content

Commit

Permalink
Merge branch 'preview' into fix/#1900
Browse files Browse the repository at this point in the history
  • Loading branch information
MrHinsh authored Feb 24, 2024
2 parents 60ee181 + 933bc00 commit da4e378
Show file tree
Hide file tree
Showing 117 changed files with 2,082 additions and 1,485 deletions.
11 changes: 11 additions & 0 deletions .github/workflows/update-pr-title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
on: [pull_request]

jobs:
pr_meta:
runs-on: ubuntu-latest
name: Update PR Title with a base branch label
steps:
- name: Update the Pull Request title with a base branch label
uses: lirantal/github-action-pr-title-update-branch@v1.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
197 changes: 197 additions & 0 deletions AzureDevOps.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
# 'Allow scripts to access the OAuth token' was selected in pipeline. Add the following YAML to any steps requiring access:
# env:
# MY_ACCESS_TOKEN: $(System.AccessToken)
# Variable 'agent.diagnostic' was defined in the Variables tab
# Variable 'azuredevopsToken' was defined in the Variables tab
# Variable 'githubToken' was defined in the Variables tab
# Variable 'wingetPAT' was defined in the Variables tab
trigger:
branches:
include:
- refs/heads/master
- refs/heads/preview

paths:
exclude:
- /.github/*
- /docs/*

name: $(GITVERSION_SemVer)
jobs:
- job: Build
displayName: Build
cancelTimeoutInMinutes: 1
pool:
vmImage: windows-latest
steps:
- checkout: self
fetchTags: true
persistCredentials: True
- task: gittools.gittools.setup-gitversion-task.gitversion/setup@0
displayName: gitversion/setup
inputs:
versionSpec: 5.x
- task: gitversion/execute@0
inputs:
useConfigFile: true
configFilePath: 'GitVersion.yml'
updateAssemblyInfo: true
- task: UseDotNet@2
displayName: Use .NET Core sdk 7.x
inputs:
version: 7.x
- task: DotNetCoreCLI@2
displayName: dotnet restore
inputs:
command: restore
projects: '**/*.sln'
- task: SonarSource.sonarcloud.14d9cde6-c1da-4d55-aa01-2965cd301255.SonarCloudPrepare@1
displayName: Prepare analysis on SonarCloud
continueOnError: True
inputs:
SonarCloud: f98e494c-4566-47a7-9d9d-5c39533c2ff4
organization: nkdagility
projectKey: vsts-sync-migrator:master
projectName: vsts-sync-migrator
projectVersion: $(GITVERSION.SemVer)
- task: DotNetCoreCLI@2
displayName: dotnet build
inputs:
arguments: -c $(BuildConfiguration) --no-restore /p:Version=$(GitVersion.AssemblySemVer)
- task: DotNetCoreCLI@2
displayName: dotnet test (L0 & L1)
continueOnError: True
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: -c $(BuildConfiguration) --collect "Code coverage" --no-build --filter (TestCategory=L0|TestCategory=L1)
testRunTitle: $(GitVersion.SemVer)
- task: DotNetCoreCLI@2
displayName: dotnet test (L2 & L3)
continueOnError: True
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: -c $(BuildConfiguration) --collect "Code coverage" --no-build --filter (TestCategory=L2|TestCategory=L3)
testRunTitle: $(GitVersion.SemVer)
- task: DotNetCoreCLI@2
displayName: dotnet test (L?) - tests with No Catagory
continueOnError: True
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: -c $(BuildConfiguration) --collect "Code coverage" --no-build --filter (TestCategory!=L0&TestCategory!=L1&TestCategory!=L2&TestCategory!=L3)
testRunTitle: $(GitVersion.SemVer)
- task: SonarSource.sonarcloud.ce096e50-6155-4de8-8800-4221aaeed4a1.SonarCloudAnalyze@1
displayName: Run Code Analysis
continueOnError: True
- task: PublishSymbols@2
name: PublishSymbols_7
displayName: 'Publish symbols path: '
continueOnError: True
inputs:
SymbolsFolder: ''
SearchPattern: '**\bin\**\*.pdb'
SymbolServerType: TeamServices
SymbolsMaximumWaitTime: 5
- task: CopyFiles@2
displayName: 'Copy : ConsoleFull'
inputs:
SourceFolder: $(Build.SourcesDirectory)\src\MigrationTools.ConsoleFull\bin\Release\net472\
TargetFolder: $(Build.ArtifactStagingDirectory)/MigrationTools/
- task: CopyFiles@2
displayName: 'Copy : ConsoleCore'
inputs:
SourceFolder: $(Build.SourcesDirectory)\src\MigrationTools.ConsoleCore\bin\Release\net7.0\
TargetFolder: $(Build.ArtifactStagingDirectory)/MigrationTools/preview/
- task: CopyFiles@2
displayName: 'Copy : Samples'
inputs:
SourceFolder: $(Build.SourcesDirectory)\src\MigrationTools.Samples\
TargetFolder: $(Build.ArtifactStagingDirectory)/MigrationTools/ConfigSamples
- task: ms-devlabs.utilitytasks.task-zip.zip@0
name: zip_8
displayName: Zip MigrationTools
condition: succeededOrFailed()
inputs:
pathToZipFolder: $(Build.ArtifactStagingDirectory)/MigrationTools/
pathToZipFile: $(Build.ArtifactStagingDirectory)/MigrationTools-$(GITVERSION.SemVer).zip
overwrite: true
- task: DeleteFiles@1
displayName: Delete MigrationTools Staging folder
continueOnError: True
inputs:
SourceFolder: $(Build.ArtifactStagingDirectory)/MigrationTools
Contents: '*'
RemoveSourceFolder: true
- task: PowerShell@2
name: PowerShell_9
displayName: Get-FileHash (.net)
inputs:
targetType: inline
script: >-
$ZipHash = Get-FileHash $Env:Build_ArtifactStagingDirectory/MigrationTools-$Env:GITVERSION_SemVer.zip -Algorithm SHA256
Write-Host "##vso[task.setvariable variable=Chocolatey.FileHash;]$($ZipHash.Hash)"
Write-Host "##vso[task.setvariable variable=Chocolatey.FullHash;]$ZipHash"
- task: qetza.replacetokens.replacetokens-task.replacetokens@5
name: replacetokens_10
displayName: Replace tokens in **\*.json **\*.md **\*.ps1
inputs:
rootDirectory: $(System.DefaultWorkingDirectory)
targetFiles: >-
**\*.json
**\*.md
**\*.ps1
escapeType: none
- task: ms-devlabs.vsts-developer-tools-build-tasks.tfx-installer-build-task.TfxInstaller@4
displayName: 'Use Node CLI for Azure DevOps (tfx-cli): v0.7.x'
inputs:
version: v0.7.x
- task: ms-devlabs.vsts-developer-tools-build-tasks.package-extension-build-task.PackageAzureDevOpsExtension@4
name: PackageVSTSExtension_11
displayName: 'Package Extension: src\MigrationTools.Extension'
inputs:
rootFolder: src\MigrationTools.Extension
outputPath: $(Build.ArtifactStagingDirectory)
extensionVisibility: public
extensionPricing: free
- task: gep13.chocolatey-azuredevops.chocolatey-azuredevops.ChocolateyCommand@0
displayName: Chocolatey pack
continueOnError: True
inputs:
packWorkingDirectory: src/MigrationTools.Chocolatey/
packNuspecFileName: nkdAgility.AzureDevOpsMigrationTools.nuspec
packVersion: $(GitVersion.NuGetVersion)
- task: CopyFiles@2
displayName: 'Copy : MigrationTools.nupkg'
inputs:
SourceFolder: $(Build.SourcesDirectory)\src\MigrationTools\bin\
Contents: '**\*.nupkg'
TargetFolder: $(Build.ArtifactStagingDirectory)
flattenFolders: true
- task: CopyFiles@2
displayName: 'Copy : MigrationTools Winget'
inputs:
SourceFolder: $(Build.SourcesDirectory)\src\MigrationTools.WinGet\
Contents: '**\*'
TargetFolder: $(Build.ArtifactStagingDirectory)\WinGet
flattenFolders: true
- task: nkdagility.variablehydration.variabledehydration-task.variabledehydration@0
name: variabledehydration_14
displayName: (de)Hydrate Build Veriables GITVERSION,BUILD,Extension,Chocolatey
condition: succeededOrFailed()
inputs:
prefixes: GITVERSION,BUILD,Extension,Chocolatey
- task: PublishBuildArtifacts@1
name: PublishBuildArtifacts_15
displayName: 'Publish Artifact: drop'
condition: succeededOrFailed()
inputs:
PathtoPublish: $(build.artifactstagingdirectory)
TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)'
- task: SonarSource.sonarcloud.38b27399-a642-40af-bb7d-9971f69712e8.SonarCloudPublish@1
displayName: Publish Analysis Result
61 changes: 33 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,35 +79,40 @@ We use these tools with our customers, and for fun, to do real world migrations

## Change Log

- 14.3 - Created a flag for `ShouldCreateNodesUpFront`, while the default is `true` this is a private preview of a new feature. Instead of creating the area and iteration paths up front, this new feature instead creates the Area & Iteration paths at validation time. For each missing path it will create it, and for those that exist it will simply pass over after a `GetNodeFromPath` call. For tose wishing to participate in the preview please set `ShouldCreateNodesUpFront` to `false`, and to create the nodes rather than just list them set `ShouldCreateMissingRevisionPaths` to `true` as well. It will still list nodes that are not able to be created and require a mapping. NOTE: You can also run with `"ShouldCreateMissingRevisionPaths": false` to list all the nodes that will be created so that you can create more elaborate mappings.
- 14.2 - Removed the `StopMigrationOnMissingAreaIterationNodes` flag. All missing nodes MUST be present or mapped using `AreaMaps` and `IterationMaps`. System will always stop on missing nodes.
- 14.1 - Enabled auto update on client devices, server still used choco
- 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 "devopsmigration.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 the latest version.
- 13.0 - Update to .net 7.0 with all dependencies. Focus on documentation improvements to support future updates.
- 12.1 - Make embedded images regex lazy
- 12.1 - Added a stop when there are area or iteration nodes in the source history that are not in the target. This causes missing data. System will now list the areas and iteration that are missing, and then stop. You can decide to add them manually, or add a field mapping.
- v11.11 - Refactored revision manager to have more tests and support limiting the number of revisions. CollapseRevisions has been replaced by setting MaxRevisions to 1 and setting AttachRevisionHistory to true; MaxRevisions sets the maximum number of revisions that will be migrated. "First + Last*N = Max". If this was set to 5 and there were 10 revisions you would get the first 1 (creation) and the latest 4 migrated. This is done after all of the existing revisions are created but before anything newer than that target is removed.
- v11.10 - Added ability to limit the number of revisions migrated with `MaxRevisions` on the `WorkItemMigration` processor. 0 = All, and any other number should migrate the first revision + the latest up to MAX.
- v11.9 - Dark launch of `Process` migration by @akanieski
- v11.9 - Dark launch of `Pipelines` & `Builds` migration by @tomfrenzel
- v11.8 - As part of moving to the new architecture we moved to default newtonsoft type handling with `$type` properties instead of `ObjectType` ___To Migrate rename "ObjectType" to "$type" in your configuration!___
- v11.5 - Added more useful logging levels. Replace `"TelemetryEnableTrace": false` with `"LogLevel": "Verbose"` in the config. Verbose will only be logged to the logfile.
- v11.2.1 - Removed NodeMigrationContext and converted it to an enricher for Work Items. Still needs work, so that it migrates individual nodes, but currently migrates all.
- v10.1 - Changed config design to have only the Name and not FullName of the class. Remove `MigrationTools.Core.Configuration.FieldMap.` and `MigrationTools.Core.Configuration.Processing.` from the config leaving only the Name of the class in the ObjectType field.
- v10.0 - Start of the great refactor over to .NET Core and the REST API as the Object Model has been retired.
- [v15.0.0](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v15.0.0) - Release v15! Query and CommonEnrichersConfig changes
- [v14.4.6](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v14.4.6) - Release v14! Migrate to winget and change exe name to `devopsmigration`
- [v13.2.1](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v13.2.1) - Oct 9, 2023
- 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 the latest version.
- 13.0 - Update to .net 7.0 with all dependencies. Focus on documentation improvements to support future updates.
- [v12.8.10](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v12.8.10) - Apr 25, 2023
- 12.1 - Make embedded images regex lazy
- 12.1 - Added a stop when there are area or iteration nodes in the source history that are not in the target. This causes missing data. System will now list the areas and iteration that are missing, and then stop. You can decide to add them manually, or add a field mapping.
- [v11.12.23](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v11.12.23) - Jun 6, 2022
- v11.11 - Refactored revision manager to have more tests and support limiting the number of revisions. CollapseRevisions has been replaced by setting MaxRevisions to 1 and setting AttachRevisionHistory to true; MaxRevisions sets the maximum number of revisions that will be migrated. "First + Last*N = Max". If this was set to 5 and there were 10 revisions you would get the first 1 (creation) and the latest 4 migrated. This is done after all of the existing revisions are created but before anything newer than that target is removed.
- v11.10 - Added ability to limit the number of revisions migrated with `MaxRevisions` on the `WorkItemMigration` processor. 0 = All, and any other number should migrate the first revision + the latest up to MAX.
- v11.9 - Dark launch of `Process` migration by @akanieski
- v11.9 - Dark launch of `Pipelines` & `Builds` migration by @tomfrenzel
- v11.8 - As part of moving to the new architecture we moved to default newtonsoft type handling with `$type` properties instead of `ObjectType` ___To Migrate rename "ObjectType" to "$type" in your configuration!___
- v11.5 - Added more useful logging levels. Replace `"TelemetryEnableTrace": false` with `"LogLevel": "Verbose"` in the config. Verbose will only be logged to the logfile.
- v11.2.1 - Removed NodeMigrationContext and converted it to an enricher for Work Items. Still needs work, so that it migrates individual nodes, but currently migrates all.
- [v10.2.13](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v10.2.13) - Sep 27, 2020
- v10.1 - Changed config design to have only the Name and not FullName of the class. Remove `MigrationTools.Core.Configuration.FieldMap.` and `MigrationTools.Core.Configuration.Processing.` from the config leaving only the Name of the class in the ObjectType field.
- v10.0 - Start of the great refactor over to .NET Core and the REST API as the Object Model has been retired.
- [v9.3.1](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v9.3.1) - Sep 7, 2020
- v9.0 - Added support for migration between other language versions of Azure DevOps. Developed for German -> English
- v8.9 - Added 'Collapse Revisions' feature to collapse and attache revisions instead of replaying them
- v8.8 - 'SkipToFinalRevisedWorkItemType' feature added to handle scenario when changing Work Item Type
- v8.7 - Support for inline images using a Personal Access Token added to the Source Project
- v8.6 - Support for fixing links from TFVC Changesets to Git Commits using a mapping file generated from a Git-TFS migration.
- v8.5 - Attachment Max size and linking work items to git repos between projects.
- v8.4 - Support for cross-project linking of work items between projects.
- v8.3 - Support for restarting the migration and syncing at the revision level.
- v8.2 - Merge Git commit Fixing into Work Item migration (requires repos to be migrated first, can be rerun)
- v8.0 - Merge of Work Item, Link, & attachment migrators into one.

- [v8.9.10](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/v8.9.10) -Aug 6, 2020
- v8.9 - Added 'Collapse Revisions' feature to collapse and attache revisions instead of replaying them
- v8.8 - 'SkipToFinalRevisedWorkItemType' feature added to handle scenario when changing Work Item Type
- v8.7 - Support for inline images using a Personal Access Token added to the Source Project
- v8.6 - Support for fixing links from TFVC Changesets to Git Commits using a mapping file generated from a Git-TFS migration.
- v8.5 - Attachment Max size and linking work items to git repos between projects.
- v8.4 - Support for cross-project linking of work items between projects.
- v8.3 - Support for restarting the migration and syncing at the revision level.
- v8.2 - Merge Git commit Fixing into Work Item migration (requires repos to be migrated first, can be rerun)
- v8.0 - Merge of Work Item, Link, & attachment migrators into one.
- [v7.5.74](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/7.5.74) Sep 18, 2019
- [v6.3.1](https://github.com/nkdAgility/azure-devops-migration-tools/releases/tag/6.3.1) Feb 23, 2017
## The Technical Details

|-| Technical Overview |
Expand Down
Loading

0 comments on commit da4e378

Please sign in to comment.