mikelane/pytest-gremlins
Run pytest-gremlins mutation testing with caching, score ratcheting, PR comments, and badges
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Mar 19, 2026
- License
- MIT
Pinned Snippet
uses: mikelane/pytest-gremlins-action@d1c5b0de60b48d4f25f4fb8a267d29da9738051a # v1.1.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| python-version | Python version for actions/setup-python | no | 3.12 |
| parallel | Enable gremlins parallel execution (--gremlin-parallel) | no | true |
| workers | Number of parallel workers (--gremlin-workers=N). Empty = all cores | no | "" |
| cache | Enable incremental mutation cache (--gremlin-cache) | no | true |
| targets | Override source paths to mutate (--gremlin-targets, comma-separated) | no | "" |
| extra-args | Additional pytest arguments passed through | no | "" |
| ratchet-file | File storing mutation score threshold for ratcheting | no | .gremlins-score |
| command-prefix | Command prefix for pytest invocation (e.g., uv run, poetry run, pdm run) | no | "" |
| skip-install | Skip pip install of pytest-gremlins (set true when your environment already provides it) | no | false |
| pr-comment | Post mutation report as PR comment | no | true |
Outputs
| name | description |
|---|---|
| score | Mutation score percentage |
| zapped | Mutations killed by tests |
| survived | Mutations that escaped detection |
| timeout | Mutations caught by timeout |
| total | Total mutations tested |
| pardoned | Mutations intentionally suppressed |
| passed | true if score >= ratcheted threshold |
| badge-url | Shields.io badge URL for mutation score |