github-actions-version-check
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.
✨ Features
- 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)
📦 Installation
Using uv (recommended)
uvx github-actions-version-check
Using pipx
pipx install github-actions-version-check
🚀 Usage
Check workflows
github-actions-version-check
Exit codes:
0→ everything is up to date2→ outdated refs found1→ error
Check a specific directory
github-actions-version-check /path/to/repo
Fix outdated versions
github-actions-version-check --fix
Allow major upgrades
github-actions-version-check --fix --allow-major
Show version
github-actions-version-check --version
⚙️ Configuration
Environment variables
| 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 |
🧠 How it works
- Scans
.github/workflows/*.ymland.yaml - Extracts
uses:lines - Resolves latest versions via GitHub API
- Compares semantic versions
- Optionally rewrites outdated refs
Supported patterns
uses: actions/checkout@v4
uses: owner/repo@v1.2.3
Limitations
- Only simple
uses:lines are supported - Multiline YAML (
|,>) is not parsed - SHA-pinned actions are skipped
🔌 Pre-commit integration
repos:
- repo: https://github.com/<owner>/github-actions-version-check
rev: vX.Y.Z
hooks:
- id: github-actions-version-check
args: [--fix]
🗂 Cache
Stored in:
$XDG_CACHE_HOME/github_actions_version_check/github-api.json
Fallback:
~/.cache/github_actions_version_check/github-api.json
🛠 Development
uv sync
uv run pytest
uv run mypy
📄 License
MIT
Metadata
Release files for github-actions-version-check 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| github_actions_version_check-1.0.0.tar.gz | 33.4 kB | With provenance | Details for github_actions_version_check-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| github_actions_version_check-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for github_actions_version_check-1.0.0-py3-none-any.whl |
Total release size: 47.2 kB
Release files / github_actions_version_check-1.0.0.tar.gz
| Download URL | github_actions_version_check-1.0.0.tar.gz |
|---|---|
| Size | 33.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d1b0763b765187af3675be30231afdf72085d89454117b3827670394acb7b4b
|
|
BLAKE2b-256 checksum How to use checksums |
4c7f27df830e1b8681fc44ae347a654110bef4cde43ab3f36adb21cd00ee8d12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency logRelease files / github_actions_version_check-1.0.0-py3-none-any.whl
| Download URL | github_actions_version_check-1.0.0-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
97b04784ddb0bf2f17d413bcd9808f85919fa31361e525f3ef6f488ce69cf4da
|
|
BLAKE2b-256 checksum How to use checksums |
b08d921b2328e3e34e0e72e23998c5413d7f91b9c1e87a925f54c5c2a06b89a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency logSecurity for github-actions-version-check 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for github_actions_version_check-1.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.