azdev/help.py (46 lines of code) (raw):
# -----------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# -----------------------------------------------------------------------------
from knack.help_files import helps
# pylint: disable=line-too-long, anomalous-backslash-in-string
helps[''] = """
short-summary: Development utilities for Azure CLI 2.0.
"""
helps['setup'] = """
short-summary: Set up your environment for development of Azure CLI command modules and/or extensions.
long-summary: Use --verbose to show the commands that are run, --debug to show the command output.
examples:
- name: Fully interactive setup.
text: azdev setup
- name: Install only the CLI in dev mode and search for the existing repo.
text: azdev setup -c
- name: Install public CLI and setup an extensions repo. Do not install any extensions.
text: azdev setup -r azure-cli-extensions
- name: Install CLI in dev mode, along with the extensions repo. Auto-find the CLI repo and install the `alias` extension in dev mode.
text: azdev setup -c -r azure-cli-extensions -e alias
- name: Install only the CLI in dev mode and resolve dependencies from setup.py.
text: azdev setup -c -d setup.py
"""
helps['cli'] = """
short-summary: Commands for working with CLI modules.
"""
helps['cli check-versions'] = """
short-summary: Verify package versions against those hosted on PyPI.
long-summary: >
This is used to ensure the correct module versions are bumped prior to release.
examples:
- name: Verify all versions and audit them against PyPI.
text: azdev cli check-versions
"""
helps['cli create'] = """
short-summary: Create a new Azure CLI module template.
examples:
- name: Scaffold a new CLI module named 'contoso'.
text: azdev cli create contoso
- name: Scaffold a new CLI module with the azure-mgmt-contoso SDK.
text: >
azdev cli create contoso --required-sdk azure-mgmt-contoso==0.1.0 --operation-name ContosoOperations
--client-name ContosoManagementClient --sdk-property contoso_name
"""
helps['cli generate-docs'] = """
short-summary: >
Generate reference docs for CLI commands.
"""
helps['configure'] = """
short-summary: Configure azdev for use without installing anything.
"""
helps['verify'] = """
short-summary: Verify CLI product features.
"""
helps['verify license'] = """
short-summary: Verify license headers.
"""
helps['verify document-map'] = """
short-summary: Verify documentation map.
"""
helps['verify default-modules'] = """
short-summary: Verify default modules.
"""
helps['verify package'] = """
short-summary: Verify the basic requirements for command module packages.
"""
helps['verify history'] = """
short-summary: Verify the README and HISTORY files for each module so they format correctly on PyPI.
"""
helps['style'] = """
short-summary: Check code style (pylint and PEP8).
examples:
- name: Check style for only those modules which have changed based on a git diff.
text: azdev style --repo azure-cli --tgt upstream/master --src upstream/dev
"""
helps['test'] = """
short-summary: Record or replay CLI tests.
parameters:
- name: --pytest-args -a
populator-commands:
- pytest -h
examples:
- name: Run all tests.
text: azdev test
- name: Run tests for main modules.
text: azdev test CLI
- name: Run tests for extensions.
text: azdev test EXT
- name: Run tests for specific modules.
text: azdev test {mod1} {mod2}
- name: Run tests for specific cli modules, it is recommended to use the long name azure-cli-{mod}.
text: azdev test azure-cli-vm azure-cli-compute
- name: Run tests for specific extensions, it is recommended to use the long name azext_{ext}.
text: azdev test azext_containerapp azext_aosm
- name: Run tests for specific test files.
text: azdev test test_account_scenario
- name: Run tests for specific python class.
text: azdev test SubscriptionClientScenarioTest
- name: Run tests for specific test cases.
text: azdev test test_account
- name: Re-run the tests that failed the previous run.
text: azdev test --lf
- name: Run tests for a module but run the tests that failed last time first.
text: azdev test {mod} -a --ff
- name: Run tests for only those modules which have changed based on a git diff.
text: azdev test --repo azure-cli --tgt upstream/master --src upstream/dev
"""
helps['linter'] = """
short-summary: Static code checks of the CLI command table.
examples:
- name: Check linter rules for only those modules which have changed based on a git diff.
text: azdev linter --repo azure-cli --tgt upstream/master --src upstream/dev
"""
helps['scan'] = r"""
short-summary: Scan secrets for files or string
long-summary: Check built-in scanning rules at https://github.com/microsoft/security-utilities/blob/main/GeneratedRegexPatterns/PreciselyClassifiedSecurityKeys.json
examples:
- name: Scan secrets for a single file with custom patterns
text: |
azdev scan --file-path my_file.yaml --custom-pattern my_pattern.json
("my_pattern.json" contains the following content)
{
"Include": [
{
"Pattern": "(?<refine>[\w.%#+-]+)(%40|@)([a-z0-9.-]*.[a-z]{2,})",
"Name": "EmailAddress",
"Signatures": ["%40", "@"]
},
{
"Pattern": "(?<refine>[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12})",
"Name": "GUID"
}
],
"Exclude": [
{
"Id": "SEC101/156",
"Name": "AadClientAppIdentifiableCredentials",
}
]
}
- name: Scan secrets for raw string and save results to file
text: |
azdev scan --data "my string waiting to be scanned" --save-scan-result True
- name: Recursively scan secrets for a directory and save results to specific file
text: |
azdev scan --directory-path /path/to/my/folder --recursive --scan-result-path /path/to/scan_result.json
- name: Scan secrets for all json files and yaml files within a directory
text: |
azdev scan --directory-path /path/to/my/folder --include-pattern *.yaml *.json
"""
helps['mask'] = """
short-summary: Mask secrets for files or string
long-summary: |
Redaction type 'FIXED_VALUE' will mask all secrets with '***'.
Redaction type 'FIXED_LENGTH' will mask secrets with several '*'s which will keep the original secret length.
Redaction type 'SECRET_NAME' redaction type will mask secrets with their secret name (type).
Redaction type 'CUSTOM' will mask secrets with 'redaction_token' value you specify through saved scan result file.
Check built-in scanning rules at https://github.com/microsoft/security-utilities/blob/main/GeneratedRegexPatterns/PreciselyClassifiedSecurityKeys.json
"""
helps['statistics'] = """
short-summary: Commands for CLI modules statistics.
"""
helps['statistics list-command-table'] = """
short-summary: List Command table for CLI module.
examples:
- name: List command table for the network module
text: azdev statistics list-command-table network -o table
- name: List command table for all modules of azure-cli repo, without commands details
text: azdev statistics list-command-table CLI --statistics-only
"""
helps['statistics diff-command-tables'] = """
short-summary: Diff the command table change.
examples:
- name: Diff the command table change from May to Oct
text: azdev statistics diff-command-tables --table-path command-table_May_01.json --diff-table-path command-table_Oct_01.json --statistics-only
"""
helps['command-change'] = """
short-summary: Commands for CLI modules meta data.
"""
helps['command-change meta-export'] = """
short-summary: Export Command meta data for CLI module.
examples:
- name: Export command meta for the monitor and network module
text: azdev command-change meta-export network monitor -o table
"""
helps['command-change meta-diff'] = """
short-summary: Diff the command meta between provided meta files.
examples:
- name: Diff the command meta change from fileA to fileB
text: azdev command-change meta-diff --base-meta-file fileA --diff-meta-file fileB --only-break
"""
helps['command-change tree-export'] = """
short-summary: Export Command Tree for CLI modules or extensions.
examples:
- name: Export command tree for CLI modules
text: azdev command-change tree-export CLI --output-file command_tree.json
"""
helps['perf'] = """
short-summary: Commands to test CLI performance.
"""
helps['perf load-times'] = """
short-summary: Verify that all modules load within an acceptable timeframe.
"""
helps['perf benchmark'] = """
short-summary: Display benchmark staticstic of Azure CLI (Extensions) commands via execute it with "python -m azure.cli {COMMAND}" in a separate process.
examples:
- name: Run benchmark on "network application-gateway" and "storage account"
text: azdev perf benchmark "network application-gateway -h" "storage account" "version" "group list"
"""
helps['extension'] = """
short-summary: Control which CLI extensions are visible in the development environment.
"""
helps['extension create'] = """
short-summary: Create a new Azure CLI extension template.
examples:
- name: Scaffold a new CLI extension named 'contoso'.
text: azdev extension create contoso
- name: Scaffold a new CLI extension with the azure-mgmt-contoso SDK.
text: >
azdev extension create contoso --local-sdk {sdkPath} --operation-name ContosoOperations
--client-name ContosoManagementClient --sdk-property contoso_name
"""
helps['extension add'] = """
short-summary: Make an extension visible to the development environment.
long-summary: The source code for the extension must already be on your machine.
"""
helps['extension build'] = """
short-summary: Construct a WHL file for one or more extensions.
"""
helps['extension remove'] = """
short-summary: Make an extension no longer visible to the development environment.
long-summary: This does not remove the extensions source code from your machine.
"""
helps['extension list'] = """
short-summary: List what extensions are currently visible to your development environment.
"""
helps['extension show'] = """
short-summary: Show detailed extension info that installed in your development environment.
"""
helps['extension publish'] = """
short-summary: Build and publish an extension to a storage account.
long-summary: Storage parameters may be persisted in the [defaults] section of your config file for convenience.
examples:
- name: Publish the contoso extension to a storage account and update the index. This will then be ready for a PR.
text: >
azdev extension publish contoso --update-index --storage-account mystorage --storage-account-key 0000-0000 --storage-container extensions
"""
helps['extension update-index'] = """
short-summary: Update the extensions index.json from a built WHL file.
"""
helps['extension cal-next-version'] = """
short-summary: Calculate valid version for next extension module release.
"""
helps['extension repo'] = """
short-summary: Commands to manage extension repositories for development.
long-summary: >
Extensions installed via the `az extension` commands are located in a specific
folder. This folder is not well-suited for development. The CLI will look for
in-development extensions in any number of Git repositories. These commands are
used to add and remove repositories from the list of locations the CLI will search
when looking for in-development extensions.
"""
helps['extension repo add'] = """
short-summary: Add an extension repository to search for in-development extensions.
"""
helps['extension repo remove'] = """
short-summary: >
Remove a repository from the list of places to search for in-development extensions.
long-summary: >
This will not remove the extension repository from your system, but will appear to
have the effect of uninstalling any extensions that were previously installed from
that repository.
"""
helps['extension repo list'] = """
short-summary: >
List the repositories that will be searched for in-development extensions.
"""
helps['extension generate-docs'] = """
short-summary: >
Generate reference docs for CLI extensions commands.
long-summary: >
This command installs the extensions in a temporary directory and sets it as the extensions dir when generating reference docs.
"""
helps['cmdcov'] = """
short-summary: Run command test coverage and generate CLI command test coverage report.
examples:
- name: Check all CLI modules command test coverage.
text: azdev cmdcov CLI
- name: Check one or serveral modules command test coverage.
text: azdev cmdcov vm storage
- name: Check CLI modules command test coverage in argument level.
text: azdev cmdcov CLI --level argument
"""
helps['generate-breaking-change-report'] = """
short-summary: Collect pre-announced breaking changes items and generate the report.
examples:
- name: Collect all pre-announced breaking changes, including any that did not specify a target version and group them by target version.
text: azdev generate-breaking-change-report CLI --group-by-version --target-version None
- name: Collect all pre-announced breaking changes target before next breaking change window, and display them in markdown.
text: azdev generate-breaking-change-report CLI --output-format markdown
- name: Collect all pre-announced breaking changes in vm, including those failed to specify a target version, and display them in json
text: azdev generate-breaking-change-report vm --target-version None
"""