8 |
Article
9 |
10 |
{{ content | reading_time_as_i }} to read
11 |
12 |
{{ page.last_modified_at }}
13 |
14 |
15 | {% include article-alert.html %}
16 | {{ content | inject_anchors }}
17 |
--------------------------------------------------------------------------------
/docs/_meta/configuration.json:
--------------------------------------------------------------------------------
1 | {"title":"configuration","uniqueId":"0d57df16-1c36-4a10-a49d-1a73e464055e"}
--------------------------------------------------------------------------------
/docs/_meta/getting-started.json:
--------------------------------------------------------------------------------
1 | {"title":"getting started","uniqueId":"19d63307-e043-4b77-8dab-f24677081387"}
--------------------------------------------------------------------------------
/docs/_meta/index.json:
--------------------------------------------------------------------------------
1 | {"title":"index","uniqueId":"a31563d0-bbbc-4823-b0a9-c2e533edfea6"}
--------------------------------------------------------------------------------
/docs/_meta/server-configuration.json:
--------------------------------------------------------------------------------
1 | {"title":"server configuration","uniqueId":"4aae9f04-bc0a-4825-87c6-d26a477e40b9"}
--------------------------------------------------------------------------------
/docs/_meta/why.json:
--------------------------------------------------------------------------------
1 | {"title":"why","uniqueId":"b54d7c24-54d3-4363-a557-99beedf3c5e7"}
--------------------------------------------------------------------------------
/docs/_plugins/_capitalize_all.rb:
--------------------------------------------------------------------------------
1 | require 'liquid'
2 | require 'uri'
3 |
4 | # Capitalize all words of the input
5 | module Jekyll
6 | module CapitalizeAll
7 | def capitalize_all(words)
8 | return words.split(' ').map(&:capitalize).join(' ')
9 | end
10 | end
11 | end
12 |
13 | Liquid::Template.register_filter(Jekyll::CapitalizeAll)
--------------------------------------------------------------------------------
/docs/assets/css/main.css:
--------------------------------------------------------------------------------
1 | .mainContainer
2 | {
3 | max-width: 1768px;
4 | margin-left: auto;
5 | margin-right: auto;
6 | }
7 |
8 | .bg-brand-primary
9 | {
10 | background-color: #713183;
11 | }
12 | .bg-brand-secondary {
13 | background-color: #54595F;
14 | }
15 |
16 | .bg-brand-menu
17 | {
18 | background-color: #43464c;
19 | }
20 |
21 | pre {
22 | max-width: 1024px;;
23 | }
24 |
25 | .navbar-brand-topbaritem {
26 | font-size: 0.9em;
27 | }
28 |
29 | .nkda-text-primary {
30 | color: #713183;
31 | }
32 |
33 | .nkda-main-menu-item {
34 |
35 | }
36 |
37 | .nkda-main-menu-item:hover {
38 | color: white;
39 | background: #713183;
40 | }
41 |
42 | .btn-nkdprimary {
43 | background-color: #713183;
44 | color: white;
45 | }
46 |
47 | .btn-nkdprimary:hover {
48 | background-color: #54595F;
49 | color: white;
50 | }
--------------------------------------------------------------------------------
/docs/assets/images/Azure-DevOps-Migration-Tools-GithubSocial-Image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nkdAgility/azure-devops-migration-tools/f69105ce6d3d9c78d1c7e95b972e66f06b6f457b/docs/assets/images/Azure-DevOps-Migration-Tools-GithubSocial-Image.jpg
--------------------------------------------------------------------------------
/docs/assets/images/naked-agility-Learn-Azure-DevOps-Migration-Tools-1600x900.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nkdAgility/azure-devops-migration-tools/f69105ce6d3d9c78d1c7e95b972e66f06b6f457b/docs/assets/images/naked-agility-Learn-Azure-DevOps-Migration-Tools-1600x900.jpg
--------------------------------------------------------------------------------
/docs/collections/_faq/work-item-is-not-ready-to-save.md:
--------------------------------------------------------------------------------
1 | ---
2 | redirectFrom: []
3 | layout: page
4 | toc: true
5 | title: Work items are not migrated!
6 | categories:
7 | - Work Items
8 | ---
9 |
10 | Maybe you see a `TF237124: Work Item is not ready to save` error when you attempt to do a migration.
11 |
12 | Posible solutions are:
13 |
14 | - [Work items are not migrated!](work-items-are-not-migrated.md)
15 |
--------------------------------------------------------------------------------
/docs/collections/_faq/work-items-are-not-migrated.md:
--------------------------------------------------------------------------------
1 | ---
2 | redirectFrom: []
3 | layout: page
4 | toc: true
5 | title: Work items are not migrated!
6 | categories:
7 | - Work Items
8 | ---
9 |
10 | Maybe you see a `TF237124: Work Item is not ready to save` error when you attempt to do a migration.
11 |
12 | A number of processors have a setting `"PrefixProjectToNodes": false`. If set to true this inserts the name of the source Team Project into the created structure e.g. Area path, Iteration path, or Work Item queries. It is also used by the migration processor.
13 |
14 | This setting **must** be consistent across all processors in a configuration file. If it not it can often cause migrations to fail as expected paths are not present.
15 |
--------------------------------------------------------------------------------
/docs/collections/_knownissues/S402625.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "S402625"
3 | layout: page
4 | toc: true
5 | discussionId:
6 | ---
7 |
8 |
--------------------------------------------------------------------------------
/docs/errors.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Error Messages
3 | layout: page
4 | template: default
5 | pageType: index
6 | toc: true
7 | pageStatus: published
8 | discussionId:
9 | redirect_from: /errormessages.html
10 | ---
11 |
12 | These Error messages are a collection of those that may be generated by the tool and what they `might` mean! If you have an error message that is not listed here, please let us know and we will add it to the list.
13 |
14 | ##
--------------------------------------------------------------------------------
/docs/getstarted/introvideos.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Introductory Videos
3 | layout: page
4 | pageType: index
5 | toc: true
6 | pageStatus: published
7 | discussionId:
8 | ---
9 |
10 | - [Video Overview](https://youtu.be/RCJsST0xBCE)
--------------------------------------------------------------------------------
/docs/setup/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Setting up the Azure DevOps Migration Tools
3 | layout: page
4 | pageType: index
5 | toc: true
6 | pageStatus: published
7 | discussionId:
8 | ---
9 |
10 | To use these tools you will need to install them and configure your target environment (TFS or Azure DevOps). The following pages will guide you through the process:
11 |
12 | 1. [Installation](installation.md)
13 |
14 | The tools are run using `devopsmigration` from the command line. You can use the `--help` option to see the available commands.
15 |
16 | ```shell
17 | devopsmigration --help
18 | ```
19 |
20 | 2. [Permissions](permissions.md)
21 |
22 | The tools require specific permissions on TFS or Azure DevOps to be able to run. This page will guide you through the minimum permissions required to run the tools.
23 |
24 | 3. [ReflectedWorkItemId](reflectedworkitemid.md)
25 |
26 | We use a field on the work item to track the migration of work items. This field is always referred to in the docs as `ReflectedWorkItemId` and is used to track the work item in the target. It enables the ability to resume migrations as well as to be able to scope the work items based on a query and have multiple runs overlap.
27 |
28 | 1. [Getting Started](../getstarted/)
29 |
30 |
--------------------------------------------------------------------------------
/docs/staticwebapp.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "responseOverrides": {
3 | "404": {
4 | "rewrite": "/404"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/spellcheck.yaml:
--------------------------------------------------------------------------------
1 | matrix:
2 | - name: Markdown
3 | sources:
4 | - 'docs/**/*.md'
5 | - 'src/**/*.md'
6 | - '*.md'
7 | default_encoding: utf-8
8 | aspell:
9 | lang: en
10 | dictionary:
11 | wordlists:
12 | - wordlist.txt
13 | encoding: utf-8
14 | pipeline:
15 | - pyspelling.filters.markdown:
16 | - pyspelling.filters.stylesheets:
17 | - pyspelling.filters.url:
18 | - pyspelling.filters.html:
19 | comments: false
20 | ignores:
21 | - code
22 | - pre
23 | - blockquote
24 |
--------------------------------------------------------------------------------
/src/MigrationTools.Chocolatey/chocolateyInstall.ps1:
--------------------------------------------------------------------------------
1 | $toolsLoc = Get-ToolsLocation
2 |
3 | $vstssyncmigrationpath =Join-Path -Path $toolsLoc -ChildPath "\VSTSSyncMigration"
4 | $migrationtoolspath =Join-Path -Path $toolsLoc -ChildPath "\MigrationTools"
5 |
6 | if(test-path $vstssyncmigrationpath) {
7 | write-host "Cleaning out the contents of $vstssyncmigrationpath"
8 | Remove-Item "$($vstssyncmigrationpath)\*" -recurse -force -exclude *.json
9 | }
10 |
11 | if(test-path $migrationtoolspath) {
12 | write-host "Cleaning out the contents of $migrationtoolspath"
13 | Remove-Item "$($migrationtoolspath)\*" -recurse -force -exclude *.json
14 | }
15 |
16 | Install-ChocolateyZipPackage 'MigrationTools' 'https://github.com/nkdAgility/azure-devops-migration-tools/releases/download/v#{GITVERSION.SEMVER}#/MigrationTools-#{GITVERSION.SEMVER}#.zip' $migrationtoolspath -Checksum #{Chocolatey.FileHash}# -ChecksumType SHA256
17 | write-host 'Azure DevOps Migration have been installed. Call `migration` from the command line to see options. You may need to close and reopen the command shell.'
18 |
--------------------------------------------------------------------------------
/src/MigrationTools.Chocolatey/chocolateyUninstall.ps1:
--------------------------------------------------------------------------------
1 | Uninstall-ChocolateyZipPackage 'vstssyncmigrator' 'vstssyncmigrator-#{GITVERSION.SEMVER}#.zip'
2 | Uninstall-ChocolateyZipPackage 'MigrationTools' 'MigrationTools-#{GITVERSION.SEMVER}#.zip'
3 |
4 | write-host 'Azure DevOps Migration Tools has been uninstalled.'
5 |
--------------------------------------------------------------------------------
/src/MigrationTools.Clients.AzureDevops.Rest.Tests/MigrationTools.Clients.AzureDevops.Rest.Tests.csproj:
--------------------------------------------------------------------------------
1 |