Lint Splunk SOAR apps with pylint and SOAR-specific rules. Simple CLI, CI-friendly output.
- Pylint 3.3.6 (matches SOAR platform)
- SOAR-specific pylint plugins
- Auto-create missing
__init__.py
files - Text or JSON output; exit code 0/1 for CI
- Python 3.13 compatible and app.json validation
- Use Python 3.13
- Create a venv and install:
python3.13 -m venv .venv && source .venv/bin/activate pip install uv # if not already installed uv pip install -e ".[dev]"
- Errors only (CI-friendly):
soar-app-linter --single-repo ./googlepeople --message-level error
- JSON output:
soar-app-linter --single-repo /path/to/app --output-format json
soar-app-linter /path/to/apps
target
(positional): directory to app or apps to lint (default:.
)--single-repo
: treat target as one app repo--message-level {info,error}
: minimum messages to show (default: info)--output-format {text,json}
: output format (default: text)--no-deps
: skip dependency install and ignore import errors (disables E0401)-v, --verbose
: verbose logs
Advanced:
--only-import-errors
: show only import errors (E0401)--json-failures
: JSON with repos and their error messages--disable-app-json-validation
: skip app.json validation
Run tests:
pytest -v
Can use this tool with pre-commit
:
- Add to your project's
.pre-commit-config.yaml
:
repos:
- repo: https://github.com/splunk/soar-app-linter
rev: v1.0.0 # Or whatever the current tag is
hooks:
- id: soar-app-linter
args: ["--single-repo", "--message-level", "error"]
Apache License 2.0