rootio_patcher
rootio_patcher is Root’s open-source CLI tool for applying security patches to your project’s dependencies. It scans installed packages and applies fixes from Root’s vulnerability database - modifying your requirements.txt, package.json, or pom.xml without changing package versions unless necessary.
Source: github.com/rootio-avr/rootio_patcher
For full documentation, see Root Library Catalog Patcher.
Installation
Download pre-built binaries from the GitHub releases page: Supported platforms: Linux x86_64, macOS (Apple Silicon, Intel), Windows x86_64 Or build from source (requires Go):Authentication
Set your API token before running any commands:Commands
Python (pip)
JavaScript (npm / yarn / pnpm)
Java (Maven)
Workflow
The recommended workflow is always to preview before applying:Flags Reference
| Flag | Default | Description |
|---|---|---|
--dry-run | true | Preview changes without modifying files |
--use-alias | true | (pip) Use Root.io-branded package aliases |
--python-path | system Python | (pip) Path to Python interpreter |
--package-manager | - | (npm) Select npm, yarn, or pnpm |
--file | pom.xml | (maven) Path to Maven config file |
--ignore | - | Exclude package@version from patching (repeatable, comma-separated). Merged with a .rootioignore file. See Ignoring Packages. |
Exit Codes
When running in dry-run mode (the default),rootio_patcher exits with a code indicating the outcome. Use this to gate pipelines without modifying any files.
| Exit code | Meaning |
|---|---|
0 | No patches needed — all packages are up to date |
1 | Error (bad config, API failure, unexpected panic) |
2 | Patches are available — action required |
GitHub Actions
rootio-patch (vulnerability check)
A reusable composite action runsrootio_patcher in dry-run mode and fails the job if patches are available (exit code 2). No files are modified.
| Input | Required | Default | Description |
|---|---|---|---|
api-key | Yes | — | Root.io API key |
ecosystem | Yes | — | pip, npm, or maven |
working-directory | No | . | Repo subdirectory to run in |
package-manager | No | npm | (npm) npm, yarn, or pnpm |
directory | No | . | (npm) Project directory containing the lock file |
python-path | No | python | (pip) Path to Python interpreter |
use-alias | No | true | (pip) Use Root.io aliased packages |
file | No | pom.xml | (maven) Path to pom.xml |
| Output | Description |
|---|---|
patches-available | "true" if patches were found, "false" if everything is up to date |
env: on the step:
| Variable | Default | Description |
|---|---|---|
ROOTIO_API_URL | https://api.root.io | Override the Root.io API endpoint |
ROOTIO_PKG_URL | https://pkg.root.io | Override the Root.io package registry URL |
ROOTIO_PIP_INDEX_URL | — | (pip) Full pip --index-url; bypasses ROOTIO_PKG_URL construction |
LOG_LEVEL | info | Logging verbosity: debug, info, warn, or error |
rootio-remediation-action (container image patching)
Use the rootio-remediation-action to apply Root patches to container images in CI/CD:| Output | Description |
|---|---|
result_image | The patched image name |
process_status | Overall remediation status |
remediation_decision | Whether the system proceeded with patching |
image_created | Boolean - whether a new patched image was produced |