A CLI tool to check and update GitHub Action versions in workflow files.
It scans .github/workflows, detects outdated uses: references, and can optionally rewrite them in place.
- Detect outdated GitHub Actions (
uses: owner/repo@ref) - Supports semantic version comparison
- Safe updates within the same major version by default
- Optional major upgrades (
--allow-major) - In-place rewriting (
--fix) - Pre-commit integration
- XDG-compliant cache (with TTL) to reduce GitHub API calls
- Works without a token (but supports
GITHUB_TOKENfor higher limits)
uvx github-actions-version-checkpipx install github-actions-version-checkgithub-actions-version-checkExit codes:
0→ everything is up to date2→ outdated refs found1→ error
github-actions-version-check /path/to/repogithub-actions-version-check --fixgithub-actions-version-check --fix --allow-majorgithub-actions-version-check --version| Variable | Description |
|---|---|
GITHUB_TOKEN |
Optional GitHub token to avoid rate limits |
GITHUB_ACTIONS_VERSION_CHECK_CACHE_TTL_DAYS |
Cache TTL (default: 7 days) |
GITHUB_ACTIONS_VERSION_CHECK_NO_CACHE |
Disable cache |
- Scans
.github/workflows/*.ymland.yaml - Extracts
uses:lines - Resolves latest versions via GitHub API
- Compares semantic versions
- Optionally rewrites outdated refs
uses: actions/checkout@v4
uses: owner/repo@v1.2.3- Only simple
uses:lines are supported - Multiline YAML (
|,>) is not parsed - SHA-pinned actions are skipped
repos:
- repo: https://github.com/ilyachch/github-actions-version-check
rev: v1.0.0
hooks:
- id: github-actions-version-check
args: [--fix]Stored in:
$XDG_CACHE_HOME/github_actions_version_check/github-api.json
Fallback:
~/.cache/github_actions_version_check/github-api.json
uv sync
uv run pytest
uv run mypyMIT