Abstract
Run linters to catch common programming errors, stylistic errors, and possible security issues
As part of the build process, we run linters to catch common programming errors, stylistic errors, and possible security issues. Linters are run only when working with the package (directory) structure.
All linters are run via the demisto-sdk pre-commit command.
Note
This script is also used to run pytest. See: Unit Testing
An example of the result from running pre-commit checks on the HelloWorld package:
Running pre-commit using template /Users/sfainberg/dev/demisto/content/.pre-commit-config_template.yaml Running pre-commit with Python 3.11 on: Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.py Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.yml Packs/HelloWorld/Integrations/HelloWorld/HelloWorld_description.md Packs/HelloWorld/Integrations/HelloWorld/HelloWorld_image.png Packs/HelloWorld/Integrations/HelloWorld/HelloWorld_test.py Packs/HelloWorld/Integrations/HelloWorld/README.md Packs/HelloWorld/Integrations/HelloWorld/command_examples Packs/HelloWorld/Integrations/HelloWorld/test_data/get_alert.json Packs/HelloWorld/Integrations/HelloWorld/test_data/incident_note_list_command.json Packs/HelloWorld/Integrations/HelloWorld/test_data/ip_reputation.json check json...............................................................Passed check yaml...............................................................Passed check python ast.........................................................Passed check for merge conflicts................................................Passed debug statements (python)................................................Passed python tests naming......................................................Passed check for added large files..............................................Passed check for case conflicts.................................................Passed poetry-check.........................................(no files to check)Skipped pycln....................................................................Passed ruff-py3.11..............................................................Passed autopep8.................................................................Passed mypy-py3.11..............................................................Passed xsoar-lint...............................................................Passed pylint-in-docker-demisto/python3:3.11.10.115186..........................Passed pytest-in-docker-demisto/python3:3.11.10.115186..........................Passed validate-deleted-files...................................................Passed validate-content-paths...................................................Passed validate-conf-json...................................(no files to check)Skipped validate.................................................................Passed secrets..................................................................Passed merge-pytest-reports.....................................................Passed coverage-pytest-analyze..................................................Passed