halfblood-prince/TrustCheck Package Scanner

Scan PyPI packages and Python dependency files with trust, provenance, and policy checks.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 10, 2026
License
None

Pinned Snippet

workflow.ymlSHA-pinned
uses: halfblood-prince/trustcheck@80ba32f691b15f39c26df081b8d7865ae7561750 # v2.2.2

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
targetPackage name or path to requirements.txt, pyproject.toml, pylock.toml, Pipfile.lock, uv.lock, poetry.lock, or pdm.lock.yes
policyBuilt-in policy bundle or path to a custom JSON policy file.nodefault
expected-repoExpected source repository URL for a package target.no""
trusted-publisher-organizationsWhitespace- or newline-separated [provider:]organization publisher allowlist entries.no""
with-osvQuery OSV for additional vulnerability records.nofalse
osv-urlsWhitespace- or newline-separated custom OSV-compatible API base URLs.no""
with-ecosystemsQuery the Ecosyste.ms OSV-compatible advisory service.nofalse
with-kevEnrich CVEs with the CISA Known Exploited Vulnerabilities catalog.nofalse
with-epssEnrich CVEs with FIRST EPSS scores and percentiles.nofalse
with-depsInspect direct runtime dependencies.nofalse
with-transitive-depsInspect direct and transitive runtime dependencies.nofalse
inspect-artifactsStatically inspect downloaded wheel and sdist contents.nofalse
index-urlPrimary PEP 503/691 Simple Repository index URL.no""
extra-index-urlsWhitespace- or newline-separated additional Simple Repository index URLs.no""
keyring-providerKeyring authentication mode (auto, disabled, import, or subprocess).noauto
allow-dependency-confusionContinue after reporting a project-name collision across configured indexes.nofalse
allow-insecure-indexAllow HTTP Simple Repository indexes and artifact URLs from those indexes.nofalse
trusted-projectsWhitespace- or newline-separated project names added to the typosquatting reference set.no""
workersConcurrent scan, advisory, and network workers (1-64, or -1 for all available CPU cores).no8
sandboxResolver isolation mode (off, warn, auto, container, bubblewrap, or strict).nostrict
sandbox-imageDigest-pinned OCI image used by the container resolver sandbox.no""
advisory-snapshotsWhitespace- or newline-separated advisory snapshot paths.no""
write-advisory-snapshotPath for a merged reusable advisory snapshot.no""
max-advisory-ageMaximum accepted advisory snapshot age in hours.no168
advisory-snapshot-identityTrusted Sigstore certificate identity for advisory snapshots.no""
advisory-snapshot-issuerExpected OIDC issuer for the advisory snapshot signer.no""
sign-advisory-snapshotSign written advisory snapshots using ambient Sigstore identity.nofalse
allow-unsigned-advisory-snapshotExplicitly allow unsigned advisory snapshot compatibility mode.nofalse
resume-stateCheckpoint path used to resume matching dependency-file scans.no""
enable-pluginsEnable installed trustcheck entry-point plugins.nofalse
pluginsWhitespace- or newline-separated [kind:]name plugin allowlist.no""
plugin-configJSON configuration path keyed by plugin name.no""
remediationRemediation mode for dependency files (none, plan, or fix).nonone
dry-runRegenerate and validate the exact fix patch without modifying files.nofalse
allow-constraint-changesPermit minimal declared-range changes when secure versions are excluded.nofalse
source-manifestSource requirements or pyproject.toml used to regenerate a lockfile.no""
remediation-pathPath for the machine-readable remediation patch bundle.notrustcheck-remediation.json
max-fix-attemptsMaximum candidate resolutions used to prove a minimal secure fix.no256
create-prCreate a pull request for a validated fix using git and gh.nofalse
pr-baseOptional pull request base branch.no""
pr-branchOptional pull request head branch.no""
pr-titleOptional pull request title.no""
pr-readyCreate a ready-for-review pull request instead of a draft.nofalse
formatReport format (text, json, sarif, cyclonedx-json, cyclonedx-xml, cyclonedx-1.7-json, cyclonedx-1.7-xml, spdx-json, spdx-3-json, openvex, or markdown).notext
report-pathReport path relative to the caller workspace; defaults to an extension appropriate for the selected format.no""
artifact-nameName of the uploaded workflow artifact.notrustcheck-report
python-versionPython version used to run trustcheck.no3.12
namedescription
recommendationOverall trustcheck recommendation.
policy-passedWhether the configured trustcheck policy passed.
report-pathAbsolute path to the generated report.
remediation-statusRemediation result status.
applied-fixesNumber of dependency upgrades in the validated remediation.
patch-pathAbsolute path to the remediation patch bundle.
pr-branchPull request branch created by remediation.
pr-urlPull request URL created by remediation.