Process migrator node.js utility for VSTS inherited process
Перейти к файлу
Dan Hellem a12084daf4 Dependabot alert fix 2022-07-25 12:17:30 -07:00
.vscode Bug fixes, refactor for future support of web usage and clean up. 2018-05-25 16:41:32 -07:00
src Fix Issue #30 AB#1432228 2019-07-03 20:14:53 -07:00
.gitignore Support PAT token on command line 2018-09-26 19:53:58 -07:00
.npmignore bump up publish version number 2018-09-27 19:47:25 -07:00
LICENSE Initial commit 2018-04-20 11:24:34 -07:00
README.md Updated text in readme for spelling error and logLevel capatalisation. 2018-09-25 13:37:52 +02:00
configuration.json Bug fixes, refactor for future support of web usage and clean up. 2018-05-25 16:41:32 -07:00
package-lock.json Dependabot alert fix 2022-07-25 12:17:30 -07:00
package.json Dependabot alert fix 2022-07-25 12:17:30 -07:00

README.md

VSTS Process Migrator for Node.js

This application provide you ability to automate the Process export/import across VSTS accounts through Node.js CLI.

NOTE: This only works with 'Inherited Process', for 'XML process' you may upload/download process as ZIP.

Getting Started

Run

  • Install npm if not yet - link

  • Install this package through npm install process-migrator -g

  • Create and fill required information in config file configuration.json. See document section for details

    Just run process-migrator without any argument will create the file if it does not exist.

    CONFIGURATION FILE HAS PAT, RIGHT PROTECT IT !
  • Run process-migrator [--mode=<migrate(default)/import/export> [--config=<your-configuration-file-path>]

Contribute

  • From the root of source, run npm install
  • Build by npm run build
  • Execute through node build\nodejs\nodejs\main.js <args>

Documentation

Command line parameters
  • --mode: Optional, default as 'migrate'. Mode of the execution, can be 'migrate' (export and then import), 'export' (export only) or 'import' (import only).
  • --config: Optional, default as './configuration.json'. Specify the configuration file.
Configuration file structure
  • This file is in JSONC format, you don't have to remove comments lines for it to work.
{
    "sourceAccountUrl": "Source account url. Required in export/migrate mode, ignored in import mode. ",
    "sourceAccountToken": "!!TREAT AS PASSWORD!! Personal access token for source account. Required in export/migrate mode, ignored in import mode.",
    "targetAccountUrl": "Target account url. Required in import/migrate mode, ignored in export mode. ",
    "targetAccountToken": "!!TREAT AS PASSWORD!! Personal access token for target account. Required in import/migrate mode, ignored in export mode.",
    "sourceProcessName": "Source process name to export. Required in export/migrate mode, ignored in import mode. ",
    "targetProcessName": "Optional. Set to override process name in import/migrate mode.",
    "options": {
        "processFilename": "File with process payload. Required in import mode, optional for export/migrate mode.",
        "logLevel":"Optional, log level for console. Possible values are 'verbose'/'information'/'warning'/'error'.",
        "logFilename":"Optional, file name for log. defaulted to 'output/processMigrator.log'",
        "overwritePicklist": "Optional, default to 'false'. Set as true to overwrite picklist if exists on target or import will fail when picklist entries varies across source and target",
        "continueOnRuleImportFailure": "Optional, default to 'false', set true to continue import on failure importing rules, warning will be provided.",
        "skipImportFormContributions": "Optional, default to 'false', set true to skip import control contributions on work item form.",
    }
}
Notes
  • If extensions used by source account are not available in target account, import MAY fail
    1. Control/Group/Page contributions on work item form are by default imported, so it will fail if the extension is not available on target account. use 'skipImportFormContributions' option to skip importing custom controls.
  • If identities used in field default value or rules are not available in target account, import WILL fail
    1. For rules you may use 'continueOnRuleImportFailure' option to proceed with rest of import when such error is occurred.
    2. For identity field default value, you may use 'continueOnFieldDefaultValueFailure' option to proceed with rest of import when such error is occurred.