GitHub Actions Cache Hardening Audit
Use this skill to statically audit .github/workflows/*.yml for risky cache patterns that can cause cache poisoning, stale cache churn, or secret leakage.
What this skill checks
- -
actions/cache usage on untrusted triggers (pull_request_target) - Cache keys that do not use INLINECODE3
- Overly broad
restore-keys prefixes - Sensitive paths accidentally included in cache paths (
.aws, .ssh, .npmrc, .git) - Floating cache action refs (
@main, @master)
Inputs
Optional:
- -
WORKFLOW_GLOB (default: .github/workflows/*.y*ml) - INLINECODE13 (default:
20) - INLINECODE15 (
text or json, default: text) - INLINECODE19 (default:
3) - INLINECODE21 (default:
6) - INLINECODE23 (regex, optional)
- INLINECODE24 (regex, optional)
- INLINECODE25 (
0 or 1, default: 0)
Run
Text report:
CODEBLOCK0
JSON output + fail gate:
CODEBLOCK1
Run against bundled fixtures:
CODEBLOCK2
Output contract
- - Exit
0 by default (report mode) - Exit
1 when FAIL_ON_CRITICAL=1 and at least one critical workflow is detected - Text mode prints a summary and top flagged workflows
- JSON mode emits
summary, flagged_workflows, and INLINECODE34
GitHub Actions 缓存加固审计
使用此技能对 .github/workflows/*.yml 进行静态审计,检查可能导致缓存投毒、缓存陈旧或密钥泄露的风险缓存模式。
此技能检查的内容
- - 在不可信触发器(pullrequesttarget)上使用 actions/cache
- 未使用 hashFiles(...) 的缓存键
- 过于宽泛的 restore-keys 前缀
- 意外包含在缓存路径中的敏感路径(.aws、.ssh、.npmrc、.git)
- 浮动缓存操作引用(@main、@master)
输入参数
可选参数:
- - WORKFLOWGLOB(默认值:.github/workflows/.yml)
- TOPN(默认值:20)
- OUTPUTFORMAT(text 或 json,默认值:text)
- WARNSCORE(默认值:3)
- CRITICALSCORE(默认值:6)
- WORKFLOWFILEMATCH(正则表达式,可选)
- WORKFLOWFILEEXCLUDE(正则表达式,可选)
- FAILON_CRITICAL(0 或 1,默认值:0)
运行
文本报告:
bash
WORKFLOW_GLOB=.github/workflows/*.yml \
bash skills/github-actions-cache-hardening-audit/scripts/cache-hardening-audit.sh
JSON 输出 + 失败门控:
bash
WORKFLOW_GLOB=.github/workflows/*.yml \
OUTPUT_FORMAT=json \
FAILONCRITICAL=1 \
bash skills/github-actions-cache-hardening-audit/scripts/cache-hardening-audit.sh
针对捆绑的测试用例运行:
bash
WORKFLOW_GLOB=skills/github-actions-cache-hardening-audit/fixtures/*.yml \
bash skills/github-actions-cache-hardening-audit/scripts/cache-hardening-audit.sh
输出约定
- - 默认情况下退出码为 0(报告模式)
- 当 FAILONCRITICAL=1 且检测到至少一个关键工作流时,退出码为 1
- 文本模式打印摘要和标记的顶级工作流
- JSON 模式输出 summary、flaggedworkflows 和 criticalworkflows