Audit GitHub Actions workflow files for secret exposure risks like pull_request_target secret usage, secret echo commands, and unpinned action secret passing.
Use this skill to catch risky secret handling patterns in workflow YAML before they leak credentials or allow unsafe token use.
.github/workflows/*.yml by default)pull_request_target workflows that also reference ${{ secrets.* }}echo, printf, tee, ::set-output)@main, @master, @v1, etc.)Optional:
WORKFLOW_GLOB (default: .github/workflows/*.y*ml)TOP_N (default: 20)OUTPUT_FORMAT (text or json, default: text)WARN_SCORE (default: 4)CRITICAL_SCORE (default: 8)WORKFLOW_FILE_MATCH / WORKFLOW_FILE_EXCLUDE (regex, optional)ALLOW_REF_REGEX (regex, optional) — allow listed action refs (for example ^v1\.2\.3$)FAIL_ON_CRITICAL (0 or 1, default: 0)Text report:
WORKFLOW_GLOB='.github/workflows/*.yml' \
WARN_SCORE=4 \
CRITICAL_SCORE=8 \
bash skills/github-actions-secret-exposure-audit/scripts/secret-exposure-audit.sh
JSON output + fail gate:
WORKFLOW_GLOB='.github/workflows/*.y*ml' \
OUTPUT_FORMAT=json \
FAIL_ON_CRITICAL=1 \
bash skills/github-actions-secret-exposure-audit/scripts/secret-exposure-audit.sh
Run against bundled fixtures:
WORKFLOW_GLOB='skills/github-actions-secret-exposure-audit/fixtures/*.y*ml' \
bash skills/github-actions-secret-exposure-audit/scripts/secret-exposure-audit.sh
0 in reporting mode (default)1 when FAIL_ON_CRITICAL=1 and one or more workflows are criticalZIP package — ready to use