halfblood-prince/TrustCheck Package Scanner
Scan PyPI packages and Python dependency files with trust, provenance, and policy checks.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 10, 2026
- License
- None
Pinned Snippet
uses: halfblood-prince/trustcheck@80ba32f691b15f39c26df081b8d7865ae7561750 # v2.2.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| target | Package name or path to requirements.txt, pyproject.toml, pylock.toml, Pipfile.lock, uv.lock, poetry.lock, or pdm.lock. | yes | — |
| policy | Built-in policy bundle or path to a custom JSON policy file. | no | default |
| expected-repo | Expected source repository URL for a package target. | no | "" |
| trusted-publisher-organizations | Whitespace- or newline-separated [provider:]organization publisher allowlist entries. | no | "" |
| with-osv | Query OSV for additional vulnerability records. | no | false |
| osv-urls | Whitespace- or newline-separated custom OSV-compatible API base URLs. | no | "" |
| with-ecosystems | Query the Ecosyste.ms OSV-compatible advisory service. | no | false |
| with-kev | Enrich CVEs with the CISA Known Exploited Vulnerabilities catalog. | no | false |
| with-epss | Enrich CVEs with FIRST EPSS scores and percentiles. | no | false |
| with-deps | Inspect direct runtime dependencies. | no | false |
| with-transitive-deps | Inspect direct and transitive runtime dependencies. | no | false |
| inspect-artifacts | Statically inspect downloaded wheel and sdist contents. | no | false |
| index-url | Primary PEP 503/691 Simple Repository index URL. | no | "" |
| extra-index-urls | Whitespace- or newline-separated additional Simple Repository index URLs. | no | "" |
| keyring-provider | Keyring authentication mode (auto, disabled, import, or subprocess). | no | auto |
| allow-dependency-confusion | Continue after reporting a project-name collision across configured indexes. | no | false |
| allow-insecure-index | Allow HTTP Simple Repository indexes and artifact URLs from those indexes. | no | false |
| trusted-projects | Whitespace- or newline-separated project names added to the typosquatting reference set. | no | "" |
| workers | Concurrent scan, advisory, and network workers (1-64, or -1 for all available CPU cores). | no | 8 |
| sandbox | Resolver isolation mode (off, warn, auto, container, bubblewrap, or strict). | no | strict |
| sandbox-image | Digest-pinned OCI image used by the container resolver sandbox. | no | "" |
| advisory-snapshots | Whitespace- or newline-separated advisory snapshot paths. | no | "" |
| write-advisory-snapshot | Path for a merged reusable advisory snapshot. | no | "" |
| max-advisory-age | Maximum accepted advisory snapshot age in hours. | no | 168 |
| advisory-snapshot-identity | Trusted Sigstore certificate identity for advisory snapshots. | no | "" |
| advisory-snapshot-issuer | Expected OIDC issuer for the advisory snapshot signer. | no | "" |
| sign-advisory-snapshot | Sign written advisory snapshots using ambient Sigstore identity. | no | false |
| allow-unsigned-advisory-snapshot | Explicitly allow unsigned advisory snapshot compatibility mode. | no | false |
| resume-state | Checkpoint path used to resume matching dependency-file scans. | no | "" |
| enable-plugins | Enable installed trustcheck entry-point plugins. | no | false |
| plugins | Whitespace- or newline-separated [kind:]name plugin allowlist. | no | "" |
| plugin-config | JSON configuration path keyed by plugin name. | no | "" |
| remediation | Remediation mode for dependency files (none, plan, or fix). | no | none |
| dry-run | Regenerate and validate the exact fix patch without modifying files. | no | false |
| allow-constraint-changes | Permit minimal declared-range changes when secure versions are excluded. | no | false |
| source-manifest | Source requirements or pyproject.toml used to regenerate a lockfile. | no | "" |
| remediation-path | Path for the machine-readable remediation patch bundle. | no | trustcheck-remediation.json |
| max-fix-attempts | Maximum candidate resolutions used to prove a minimal secure fix. | no | 256 |
| create-pr | Create a pull request for a validated fix using git and gh. | no | false |
| pr-base | Optional pull request base branch. | no | "" |
| pr-branch | Optional pull request head branch. | no | "" |
| pr-title | Optional pull request title. | no | "" |
| pr-ready | Create a ready-for-review pull request instead of a draft. | no | false |
| format | Report format (text, json, sarif, cyclonedx-json, cyclonedx-xml, cyclonedx-1.7-json, cyclonedx-1.7-xml, spdx-json, spdx-3-json, openvex, or markdown). | no | text |
| report-path | Report path relative to the caller workspace; defaults to an extension appropriate for the selected format. | no | "" |
| artifact-name | Name of the uploaded workflow artifact. | no | trustcheck-report |
| python-version | Python version used to run trustcheck. | no | 3.12 |
Outputs
| name | description |
|---|---|
| recommendation | Overall trustcheck recommendation. |
| policy-passed | Whether the configured trustcheck policy passed. |
| report-path | Absolute path to the generated report. |
| remediation-status | Remediation result status. |
| applied-fixes | Number of dependency upgrades in the validated remediation. |
| patch-path | Absolute path to the remediation patch bundle. |
| pr-branch | Pull request branch created by remediation. |
| pr-url | Pull request URL created by remediation. |