Automate opening/closing of change requests for FT applications


1.1.15 years ago5 years agoMinified + gzip package size for @financial-times/change-request in KB


Change Request

Automate opening/closing of change requests for FT applications.

Build status MIT licensed

change-request \
  --owner-email "you@ft.com" \
  --summary "Hello World" \
  --description "This is a description" \
  --service "my service" \
  --api-key "xxxxxx"

Table Of Contents


Running the change request tool requires Node.js 4.x and npm.


npm install -g @financial-times/change-request


Usage: change-request [options]


    -h, --help                            output usage information
    -V, --version                         output the version number
    -a, --api-key <key>                   the API key to use when accessing the CR API
    -o, --owner-email <email>             the change request owner email address
    -s, --summary <summary>               a short summary of the change
    -d, --description <description>       a short description of the change
    -f, --description-file <filename>     file to read description from, instead of --description
    -r, --reason <reason>                 the reason for the change. Default: "Deployment"
    -c, --open-category <category>        the category for opening the change request. One of "Major", "Minor", "Significant". Default: "Minor"
    -C, --close-category <category>       the category for closing the change request. One of "Implemented", "Partially Implemented", "Rejected", "Rolled back", "Cancelled". Default: "Implemented"
    -R, --risk-profile <risk-profile>     the risk profile for the change request. One of "Low", "Medium", "High". Default: "Low"
    -e, --environment <environment>       the environment the change request applies to. One of "Production", "Test", "Development", "Disaster Recovery". Default: "Test"
    -O, --outage                          whether there will be an outage. Default: false
    -S, --service <service>               the service that the change request applies to
    -n, --notify-channel <slack-channel>  the slack channel to notify of the change request


To run tests on your machine you'll need to install Node.js and run make install. Then you can run the following commands:

make test              # run all the tests
make test-unit         # run the unit tests

You can run the unit tests with coverage reporting, which expects 90% coverage or more:

make test-unit-coverage verify-coverage

The code will also need to pass linting on CI, you can run the linter locally with:

make verify

We run the tests and linter on CI, you can view results on CircleCI. make test and make lint must pass before we merge a pull request.


New versions of the module are published automatically by CI when a new tag is created matching the pattern /v.*/.


The Financial Times has published this software under the MIT license.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.