Free Schema Markup Validator
Free schema markup validator: check JSON-LD against Google's rich result rules, spot retired FAQ and HowTo markup, bad prices and dates. Files, folders or URLs.
View Free Schema Markup Validator
Find the workflow line that lets a stranger's pull request run code with your secrets, and the one-line fix.

An offline checker for .github/workflows/*.yml that finds the mistakes behind most GitHub Actions breaches: script injection from issue and PR titles, pull_request_target "pwn requests", actions pinned to movable tags, over-broad GITHUB_TOKEN permissions, plain-text secrets, curl | bash, and self-hosted runners exposed to forks. Every finding comes with the line number and a concrete fix.
The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 15 tests OK on Python 3.13 and 3.10.

python3 -m ghasec # checks ./.github/workflows
python3 -m ghasec path/to/repo --min-level warning
python3 -m ghasec .github/workflows/release.yml --format jsonRun ./demo.sh to see it on the example workflows and ./run_tests.sh for the 15 tests.
| Id | Finds | Level | |
|---|---|---|---|
| GHA001 | ${{ github.event.issue.title }}, PR title/body, branch names, comments, commit messages pasted into run: or github-script (inputs: warning) | error | |
| GHA002 | pull_request_target / workflow_run that checks out the PR's head; pull_request_target and issue_comment triggers | error / warning / note | |
| GHA003 | uses: without a full commit SHA (branch = error, third-party tag = warning, actions/* tag = note); docker images without a digest | error-note | |
| GHA004 | no permissions: block, or write-all | warning / error | |
| GHA005 | actions/checkout without persist-credentials: false | note | |
| GHA006 | secrets: inherit | warning | |
| GHA007 | self-hosted runners on workflows that pull requests can trigger (--private to relax) | warning | |
| GHA008 | curl ... | bash | warning |
| GHA009 | tokens and keys written in plain text, echoing secrets | error / warning | |
| GHA010 | ACTIONS_ALLOW_UNSECURE_COMMANDS: true | error | |
| GHA012 | jobs without timeout-minutes | note |
- run: python3 -m ghasec --format github --min-level warningCopy the ghasec/ folder into your repo (or a tools repo) first. Ignore a rule with --ignore GHA005,GHA012.
Zip, 18 KB, v1.0, 14 files. Free to use, modify and share for any purpose, including commercial work, as long as this notice stays in copies. Not affiliated with or endorsed by GitHub.
Free GitHub Actions security checker: script injection, pull_request_target, unpinned actions, token permissions and secrets, with fixes. Offline, SARIF.
Free schema markup validator: check JSON-LD against Google's rich result rules, spot retired FAQ and HowTo markup, bad prices and dates. Files, folders or URLs.
View Free Schema Markup ValidatorFree read-only Postgres health check: invalid indexes, wraparound, sequences near limit, missing FK indexes, duplicate indexes and more. Markdown or JSON.
View Postgres Health Check (Free)copilot-instructions.md examples for Next.js, Django, Rails, Laravel, FastAPI and more: 97 path-specific .instructions.md files, 8 prompt files and a checker.
View GitHub Copilot Instructions Pack: 97 .instructions.md Files + CheckerShort weekly digest of new x402 + MCP tools and free kits, including the MCP OAuth Checker. The download above works without signing up. No spam, unsubscribe any time.