cciSpec top-level property
Completion spec for cci CLI
Implementation
final FigSpec cciSpec = FigSpec(
name: 'cci',
description: 'CumulusCI command line interface',
subcommands: [
Subcommand(
name: 'flow',
description: 'Commands for finding and running flows for a project',
subcommands: [
Subcommand(
name: 'doc',
description: 'Exports RST format documentation for all flows',
options: [
Option(
name: '--project',
description: 'Include project-specific flows only'
),
Option(
name: '--help',
description: 'Help for flow doc'
)
]
),
Subcommand(
name: 'info',
description: 'Displays information for a flow',
args: [
Arg(
name: 'FLOW_NAME',
description: 'Name of the flow'
)
],
options: [
Option(
name: '--help',
description: 'Help for flow info'
)
]
),
Subcommand(
name: 'list',
description: 'List available flows for the current context',
options: [
Option(
name: '--plain',
description: 'Print the table using plain ascii'
),
Option(
name: '--json',
description: 'Print a json string'
),
Option(
name: '--help',
description: 'Help for flow list'
)
]
),
Subcommand(
name: 'run',
description: 'Runs a flow',
args: [
Arg(
name: 'FLOW_NAME',
description: 'Name of the flow to run'
)
],
options: [
Option(
name: '--org',
description: 'Specify the target org. By default, runs against the current default org',
args: [
Arg(
name: 'TEXT',
description: 'Name of the target org'
)
]
),
Option(
name: '--delete-org',
description: 'If set, deletes the scratch org after the flow completes'
),
Option(
name: '--debug',
description: 'Drops into pdb, the Python debugger, on an exception'
),
Option(
name: '-o',
description: 'Pass task specific options for the task as \'-o taskname__option value\'. You can specify more than one option by using -o more than once',
args: [
Arg(
name: 'TEXT',
description: 'Task specific options'
)
]
),
Option(
name: '--no-prompt',
description: 'Disables all prompts. Set for non-interactive mode use such as calling from scripts or CI systems'
),
Option(
name: '--help',
description: 'Help for flow run'
)
]
)
]
),
Subcommand(
name: 'org',
description: 'Commands for connecting and interacting with Salesforce orgs',
subcommands: [
Subcommand(
name: 'browser',
description: 'Opens a browser window and logs into the org using the stored OAuth credentials',
args: [
Arg(
name: 'ORGNAME',
description: 'Name of the org',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. By default, runs against the current default org',
args: [
Arg(
name: 'TEXT',
description: 'Name of the target org'
)
]
),
Option(
name: ['-p', '--path'],
description: 'Navigate to the specified page after logging in',
args: [
Arg(
name: 'TEXT',
description: 'Page to navigate to',
template: 'filepaths'
)
]
),
Option(
name: ['-r', '--url-only'],
description: 'Display the target URL, but don\'t open a browser'
),
Option(
name: '--help',
description: 'Help for org browser'
)
]
),
Subcommand(
name: 'connect',
description: 'Connects a new org\'s credentials using OAuth Web Flow',
args: [
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. One of ORGNAME (see above) or --org is required',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--connected-app',
description: 'Name of the connected_app service to use',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--sandbox',
description: 'If set, connects to a Salesforce sandbox org'
),
Option(
name: '--login-url',
description: 'If set, login to this hostname',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'If set, sets the connected org as the new default org'
),
Option(
name: '--global-org',
description: 'If set, the connected org is available to all CumulusCI projects'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'default',
description: 'Sets an org as the default org for tasks and flows',
args: [
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. By default, runs against the current default org',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--unset',
description: 'Unset the org as the default org leaving no default org selected'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'import',
description: 'Import an org from Salesforce DX',
args: [
Arg(
name: 'USERNAME_OR_ALIAS'
),
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. One of ORGNAME (see above) or --org is required',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'info',
description: 'Display information for a connected org',
args: [
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. By default, runs against the current default org',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--json',
description: 'Print as JSON. Includes access token'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'list',
description: 'Lists all orgs in scope for the current project',
options: [
Option(
name: '--plain',
description: 'Print the table using plain ascii'
),
Option(
name: '--json',
description: 'Output results in JSON format'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'prune',
description: 'Removes all expired scratch orgs from the current project',
options: [
Option(
name: '--include-active',
description: 'Remove all scratch orgs, regardless of expiry'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'remove',
description: 'Removes an org from the keychain',
args: [
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. One of ORGNAME (see above) or --org is required',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--global-org',
description: 'Set this option to force remove a global org. Default behavior is to error if you attempt to delete a global org'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'scratch',
description: 'Connects a Salesforce DX Scratch Org to the keychain',
args: [
Arg(
name: 'CONFIG_NAME'
),
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. One of ORGNAME (see above) or --org is required',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'If set, sets the connected org as the new default org'
),
Option(
name: '--devhub',
description: 'If provided, overrides the devhub used to create the scratch org',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--days',
description: 'If provided, overrides the scratch config default days value for how many days the scratch org should persist',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--no-password',
description: 'If set, don\'t set a password for the org'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'scratch_delete',
description: 'Deletes a Salesforce DX Scratch Org leaving the config in the keychain for regeneration',
args: [
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. One of ORGNAME (see above) or --org is required',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'shell',
description: 'Drop into a Python shell with a simple_salesforce connection in `sf`, as well as the `org_config` and `project_config`',
args: [
Arg(
name: 'ORGNAME',
isOptional: true
)
],
options: [
Option(
name: '--org',
description: 'Alternate way to specify the target org. By default, runs against the current default org',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--script',
description: 'Path to a script to run',
args: [
Arg(
name: 'PATH'
)
]
),
Option(
name: '--python',
description: 'Python code to run directly',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
)
]
),
Subcommand(
name: 'plan',
description: 'Commands for getting information about MetaDeploy plans',
subcommands: [
Subcommand(
name: 'info',
description: 'Displays information for a MetaDeploy plan',
args: [
Arg(
name: 'PLAN_NAME',
description: 'Name of the plan'
)
],
options: [
Option(
name: '--messages',
description: 'Show only plan messages'
),
Option(
name: '--help',
description: 'Help for plan info'
)
]
),
Subcommand(
name: 'list',
description: 'List available plans for the current context',
options: [
Option(
name: '--json',
description: 'Return the list of plans in JSON format'
),
Option(
name: '--help',
description: 'Help for plan list'
)
]
)
]
),
Subcommand(
name: 'robot',
description: 'Commands for working with Robot Framework',
subcommands: [
Subcommand(
name: 'install_playwright',
description: 'Install libraries necessary to use playwright with robot framework',
options: [
Option(
name: ['-n', '--dry_run'],
description: 'Dry run'
),
Option(
name: '--help',
description: 'Help for install_playwright'
)
]
),
Subcommand(
name: 'uninstall_playwright',
description: 'Uninstalls the robotframework-browser package and node modules',
options: [
Option(
name: '--help',
description: 'Help for uninstall_playwright'
)
]
)
]
),
Subcommand(
name: 'service',
description: 'Commands for connecting services to the keychain',
subcommands: [
Subcommand(
name: 'connect',
description: 'Connect an external service to CumulusCI',
subcommands: [
Subcommand(
name: 'connected_app',
description: 'Connect a Connected App service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--login_url',
description: 'Default Salesforce Login URL to be used with this Connected App',
args: [
Arg(
name: 'login_url'
)
]
),
Option(
name: '--callback_url',
description: 'Callback URL configured on the Connected App',
args: [
Arg(
name: 'callback_url'
)
]
),
Option(
name: '--client_id',
description: 'Client ID/Consumer Key from the Connected App',
args: [
Arg(
name: 'client_id'
)
]
),
Option(
name: '--client_secret',
description: 'Client Secret/Consumer Secret from the Connected App',
args: [
Arg(
name: 'client_secret'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Help for cci service connect connected_app'
)
]
),
Subcommand(
name: 'devhub',
description: 'Connect a DevHub service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--username',
description: 'Username or alias of the SFDX org to use as a Dev Hub',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'github',
description: 'Connect a GitHub service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--username',
description: 'The Github username to use for tasks',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--email',
description: 'The email address to used by Github tasks when an operation requires an email address',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--token',
description: 'Personal Access Token for GitHub. Leave blank to log in via browser',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'github_enterprise',
description: 'Connect a GitHub Enterprise service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--username',
description: 'The GitHub Enterprise username to use for tasks',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--email',
description: 'The email address to used by GitHub tasks when an operation requires an email address',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--server_domain',
description: 'GitHub Enterprise domain (Example: git.ent.domain.com)',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--token',
description: 'Personal Access Token',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'marketing_cloud',
description: 'Connect a Marketing Cloud service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--oauth2_client',
description: 'The name of the oauth2_client service with which to establish a connection to Marketing Cloud',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'metaci',
description: 'Connect a MetaCI service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--app_name',
description: 'The Heroku app name',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--url',
description: 'The main url to the MetaCI site',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--token',
description: 'Your API token to the MetaCI site (get from SITE_URL/api/token)',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'metadeploy',
description: 'Connect a MetaDeploy service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--url',
description: 'The main url for your MetaDeploy instance',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--token',
description: 'Your API token to the MetaDeploy site (get from SITE_URL/admin/authtoken/token)',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'oauth2_client',
description: 'Connect an OAuth2 Client service to CumulusCI',
args: [
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--client_id',
description: 'The client Id',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--client_secret',
description: 'The client secret',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--auth_uri',
description: 'The URI for where users are directed to login',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--token_uri',
description: 'The URI for where we request an access token',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--callback_url',
description: 'The URL that the auth server will callback to after authentication of the user',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--default',
description: 'Set this service as the global default'
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
)
]
),
Subcommand(
name: 'default',
description: 'Set the default service for a given service type',
args: [
Arg(
name: 'SERVICE_TYPE'
),
Arg(
name: 'SERVICE_NAME'
)
],
options: [
Option(
name: '--project',
description: 'Sets the service as the default for the current project'
),
Option(
name: '--help',
description: 'Help for cci service default'
)
]
),
Subcommand(
name: 'info',
description: 'Show the details of a connected service',
args: [
Arg(
name: 'SERVICE_TYPE'
),
Arg(
name: 'SERVICE_NAME',
isOptional: true
)
],
options: [
Option(
name: '--json',
description: 'Print a json string'
),
Option(
name: '--help',
description: 'Help for cci service info'
)
]
),
Subcommand(
name: 'list',
description: 'List services available for configuration and use',
options: [
Option(
name: '--plain',
description: 'Print the table using plain ascii'
),
Option(
name: '--json',
description: 'Print a json string'
),
Option(
name: '--help',
description: 'Help for cci service list'
)
]
),
Subcommand(
name: 'remove',
description: 'Remove a service',
args: [
Arg(
name: 'SERVICE_TYPE'
),
Arg(
name: 'SERVICE_NAME'
)
],
options: [
Option(
name: '--help',
description: 'Help for cci service remove'
)
]
),
Subcommand(
name: 'rename',
description: 'Rename a service',
args: [
Arg(
name: 'SERVICE_TYPE'
),
Arg(
name: 'SERVICE_NAME'
),
Arg(
name: 'NEW_NAME'
)
],
options: [
Option(
name: '--help',
description: 'Help for cci service remove'
)
]
),
Subcommand(
name: 'update',
description: 'Allow users to update attribute values of a particular service',
args: [
Arg(
name: 'SERVICE_TYPE'
),
Arg(
name: 'SERVICE_NAME'
)
],
options: [
Option(
name: ['-s', '--attribute'],
description: 'Provide values to update the service with directly. Using `--attribute foo var` will set the \'foo\' attribute to a value of \'bar\' on the specified service',
args: [
Arg(
name: 'TEXT TEXT'
)
]
),
Option(
name: '--help',
description: 'Help for cci service remove'
)
]
)
]
),
Subcommand(
name: 'shell',
description: 'Drop into a Python shell',
options: [
Option(
name: '--script',
description: 'Path to a script to run',
args: [
Arg(
name: 'PATH',
template: 'filepaths'
)
]
),
Option(
name: '--python',
description: 'Python code to run directly',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'task',
description: 'Commands for finding and running tasks for a project',
subcommands: [
Subcommand(
name: 'doc',
description: 'Exports RST format documentation for all tasks'
),
Subcommand(
name: 'info',
description: 'Displays information for a task',
args: [
Arg(
name: 'TASK_NAME'
)
]
),
Subcommand(
name: 'list',
description: 'List available tasks for the current context'
),
Subcommand(
name: 'run',
description: 'Runs a task',
args: [
Arg(
name: 'TASK_NAME'
)
]
)
],
options: [
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'version',
description: 'Print the current version of CumulusCI',
options: [
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'error',
description: 'Get or share information about an error',
subcommands: [
Subcommand(
name: 'gist',
description: 'Creates a GitHub gist from the latest logfile'
),
Subcommand(
name: 'info',
description: 'Outputs the most recent traceback (if one exists in the most recent logfile)'
)
],
options: [
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'project',
description: 'Commands for interacting with project repository configurations',
subcommands: [
Subcommand(
name: 'dependencies',
description: 'Displays the current dependencies for the project. If the dependencies section has references to other github repositories, the repositories are inspected and a static list of dependencies is created',
options: [
Option(
name: '--resolution-strategy',
description: 'The resolution strategy to use. Defaults to production',
args: [
Arg(
name: 'TEXT'
)
]
),
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'info',
description: 'Display information about the current project\'s configuration',
options: [
Option(
name: '--help',
description: 'Show this message and exit'
)
]
),
Subcommand(
name: 'init',
description: 'Initialize a new project for use with the cumulusci toolbelt',
options: [
Option(
name: '--help',
description: 'Show this message and exit'
)
]
)
]
)
],
options: [
Option(
name: '--help',
description: 'Help for cci'
)
]
);