Mass-driver

Latest version: v0.18.0

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

0.13.0

Added

- New `scan` feature for scanning repos with arbitrary python functions. See
new "Scanning" docs:
- Scanners are plugins declared under `mass-driver.scanners`, linking to
functions like `my_scanner(repo: Path) -> dict[str, Any]`
- Alternative `scanners` command to list out detected, available scanners
- New TOML file entry `[mass-driver.scan]`, with subkey `scanner_names` used
to select which scanner plugins to enable.
- Simple scanners `root-files` and `dockerfile-from` provided for reference
- New fixture `massdriver_scan` and `massdriver_scan_check` for testing scanners
- New optional CLI parameter `--json-outfile` for `run` and `scan`, to save the
activity outcome to JSON files for analysis

Changed

- Test fixture `massdrive_check_file` now returns unchecked `result` and
`reference` blobs for equality assertion (`assert result == reference`) to be
done by the caller. This enables plugins like `pytest-clarity` to show
colorful diff. Users of `massdrive_check_file` need to change (on pain of lack
of test assertion):

diff
- massdrive_check_file(workdir)
+ result, reference = massdrive_check_file(workdir)
+ assert result == reference, "Massdriver result should match reference"

0.12.0

Added

- Auto-detect repo's base branch for Forge: parameter `base_branch` now
optional, defaulting to repo's default branch

0.11.0

Added

- New `github-app` forge plugin for creating PRs on Github when running
mass-driver as a Github App
- New Forge params:
- `forge_config` dict, for Forge-specific non-sensitive config to keep in
config file, complementing envvars. Similar to `driver_config` for
Migration.
- `interactive_pause_every` int, for blocking the Forge, pausing for
confirmation interactively every few PRs generated. Disabled by default, set
to 1 to block every PR, or 5 every 5...

0.10.0

Removed

- Unused `migration_name` field of Migration now removed

Added

- `Forge` subclasses can now grab config via envvars prefixed `FORGE_`. Observe
that `Forge` now derives from `pydantic.BaseSettings`, see [BaseSettings
docs](https://docs.pydantic.dev/usage/settings/).
- New, simpler testing fixture `massdrive_check_file` for PatchDriver that
affect single files

0.9.0

Added

- New optional Migration params: `commit_author_name` + `commit_author_email`,
used to override the git commit author.

0.8.0

Added

- New file type `Activity` combines `Migration` and `Forge`
- New `Forge` named `dummy` for testing purposes
- New `git_push_first` boolean param in Forge to disable git pushing.
- New `ActivityOutcome` to capture the full result of a migration/forge sequence

Changed

- Replace commands `run-migration` + `run-forge` by new `run`, using the
`Activity` file type with optionals.
- Internals refactored: all Pydantic objects now under `mass_driver.models`
(`PatchDriver`, `Forge`, `Activity`)

Removed

- Options `--really-commit-changes` and `--dry-run`

Page 3 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.