All these tools are built in PowerShell and have both a $data and a $output folder.
The expectation is that you would create a new git repo just for the data and output folders and then use the scripts to generate the data and output content that you would then use as input into your migrations.
A Sample data folder is provided in this repo.
Setting up the environmentThe scripts use config.json
in the root of this repo to determine where to find the data and where to put the output. It will be generated if it does not exist, and you can initiate it by running runmefirst.ps1
.
{
"dataFolder": "..\\my-data-repo\\data\\",
"dataEnvironment": "debug",
"queryString": "api-version=7.0",
"outputFolder": "..\\my-data-repo\\output\\"
}
Although you can use the default values, this will store your data in untracked files in the same repo as the scripts. You would ecperiance data loss if this folder were to be deleted. We recommend that you create a new git repo for your data and output folders and then use the scripts to generate the data and output content that you would then use as input into your migrations.
Once you have your config.json set up, you can run the follwoing scripts:
migrationConfigSaples
folder and it will create a folder for each project on each organisation configured with the template populated for every project. This assumes that you are migrating many projects to a single organisation. If you are migrating a single project to many organisations, you will need to edit the output with the target locations.DataLocation\fields.json
and each field is configured in DataLocation\fields\{field-name}.json
. This script will create the fields in the configured organisations and processes.DataLocation\pages\{page-name}.json
. This script will create the pages in the configured organisations, processes, & WorkItems.organisations.json
file.The data folder contains the data that is used to for each Script. You can check the .\data\sample\*
folder for examples of the data required.
organisations.json
- This is a list of all of the organsaitions and PAT tokens used for access. They can be disabled, and the scripts will skip them. This is used by all of the scripts.ReflectedWorkItemId.json
- This contains the single field configuration for the ReflectedWorkItemId field. This is used by the Install-ReflectedWorkItemID.ps1
script.fields.json
- This contains the list of fields to be created. This is used by the Install-CustomFields.ps1
script, and each field can be enabled or disabled. It will load the indevidual field from the fields
folder based on the refname
peoperty.fields\{field-name}.json
- This contains the configuration for each field. This is used by the Install-CustomFields.ps1
script. Each field definition contains all of the POST information needed to create and add them to a process.pages\{page-name}.json
- This contains the configuration for each page. This is used by the Install-CustomPages.ps1
script. Each page definition contains all of the POST information needed to create and add them to a process. Pages
are iterated over and you can use them to add Groups
to existing Pages
.templates\{template-name}.json
- This contains templates for diferent [Azure DevOps Migration Tools(https://github.com/nkdAgility/azure-devops-migration-tools)] configurations. This is used by the Generate-ConfigurationsFromTemplates.ps1
script. Each configuration template will have the source updated to reflect the source organisation and project, the target will not be updated.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4