Contentful's command line interface tool. Use Contentful features straight from your CLI.
Contentful provides a content infrastructure for digital teams to power content in websites, apps, and devices. Unlike a CMS, Contentful was built to integrate with the modern software stack. It offers a central hub for structured content, powerful management and delivery APIs, and a customizable web app that enable developers and content creators to ship digital products faster.
init
command.Make sure you have Node LTS installed
Then using npm or yarn:
npm install -g contentful-cli
# Or
yarn global add contentful-cli
Please note that for the non standalone versions you need Node LTS to use the CLI.
Use the --help
parameter to display the help section for CLI tool or combined with a specific command to get the help section for that command.
contentful --help
# Or
contentful space --help
More detailed documentation for every command can be found in the docs section.
You can save the proxy configuration in your .contentfulrc.json
via:
contentful config add --proxy user:auth@host:port
We also respect the http(s)_proxy
environment variables:
https_proxy=user:auth@host:port contentful
When multiple proxy configurations exists, precedence is taken in this form:
http_proxy
takes precedence over .contentfulrc.json
https_proxy
takes precedence over .contentfulrc.json
https_proxy
takes precedence over http_proxy
You can override the host configuration in your .contentfulrc.json
via:
contentful config add --host api.eu.contentful.com
Then any subsequent command will use the EU host. E.g. contentful login
will log you in to your EU Contentful instance.
rawProxy: true
in your .contentfulrc.json
via:contentful config add --raw-proxy
npm i
package.json
"bin": {
- "contentful": "bin/contentful.js"
+ "ctfl": "bin/contentful.js"
}
npm link
To run integration tests locally, you'll need the following:
.jest/env.js
(can be found in 1Password)
process.env.CONTENTFUL_INTEGRATION_TEST_CMA_TOKEN = '<cma_auth_token>'
process.env.CLI_E2E_ORG_ID = '<organization_id>'
npm run talkback-proxy
## Run all integration tests
npm run test:jest
## Or run specific tests
npx jest test/integration/cmds/space/* --watch
Simply run:
# Run all unit tests
npm run test:unit:watch
# Or run specific tests
npx jest test/unit/cmds/* --watch
See jest documentation for more details about running tests and optional flags.
You might need to update snapshots and it's challenging with the recordings.
Tip: run tests without recordings to update the snapshots.
npx jest test/integration/cmds/<path to the affected test file> --updateSnapshot
If you have a problem with this tool, please file an issue here on Github.
If you have other problems with Contentful not related to this library, you can contact Customer Support.
See CONTRIBUTING.md
MIT