Python and Node.js scripts that detect and repair GitHub Actions problems — empty secrets in fork PRs, silent cache misses and redundant billed runs.
Every fix is safe by default. The scripts start in a dry run mode that reports what they would do, so you can read the plan before anything writes.
By Allan Niñal — AI Solutions Engineer. I build AI powered tools, data products, and AWS automation. Full write ups with diagrams for each fix live at allanninal.dev/ci.
- a cache miss that is really a rate limit — https://www.allanninal.dev/ci/cache-miss-is-really-a-rate-limit/
- GITHUB_TOKEN is read-only and the error just says 403 — https://www.allanninal.dev/ci/github-token-is-read-only-by-default/
- three pushes run three full pipelines and you pay for all of them — https://www.allanninal.dev/ci/redundant-runs-on-rapid-pushes/
- secrets are empty strings in fork pull requests — https://www.allanninal.dev/ci/secrets-are-empty-in-fork-pull-requests/
Each folder holds the same script in Python and in Node.js, plus its test. Set the environment variables named in that folder's README, keep DRY_RUN=true for the first pass, and read what it reports before letting it write.
Every fix ships with its test. Run them locally:
pip install pytest requests
pytest -q
node --testMIT. Use it, change it, ship it.