Repository navigation
Releases: pooyanazad/yamlguard
Release list
Release v3.5.1-20261011
yamlguard v3.5.1-20261011 — 2026-10-11
Changes since v3.5.0-20261011 (7 non-merge commits).
- Build and maintenance: 2 commit(s).
- Fixes: 3 commit(s).
- Documentation: 2 commit(s).
Docker image: pooyanazad/yamlguard:v3.5.1-20261011
Use this release
PyPI installation once this package version is published (syntax and linting):
python -m pip install 'yamlguard==3.5.1'
yamlguard myfile.yamlFor Checkov scanning, install yamlguard[security]==3.5.1.
Docker (includes Checkov; Linux/macOS shell):
docker run --rm -v "$(pwd):/data:ro" pooyanazad/yamlguard:v3.5.1-20261011 myfile.yamlCommit details for this release
Build and maintenance
- chore: prepare yamlguard 3.5.1 release (90a53f4)
- refactor: align yamlguard branding after repository rename (b4764bd)
Fixes
- fix: keep mounted source from shadowing the container CLI (1ab01a5)
- fix: resolve yamlguard source modules from Docker data directory (0bab3cd)
- fix: pin PyPI publisher to a verified release commit (f73f3ab)
Documentation
Release v3.5.0-20261011
YAML Validator v3.5.0-20261011 — 2026-10-11
Changes since v3.4.0-20261011 (3 non-merge commits).
- Rewrote the README around the actual CLI behavior, optional Checkov installation, report formats, exit codes, and working Docker commands.
- Replaced repeated release features with highlights for the validated previous-tag-to-current-commit range, with full commit details collapsed on GitHub.
- Kept JSON, SARIF, and JUnit output clean by sending path and dependency diagnostics to stderr and suppressing text warnings in report mode.
- Unified package and Docker/GitHub versions at 3.5.0. New release tags come from the package version; monthly rebuilds no longer invent new package releases.
- Added publication checks for matching tag/package versions, existing PyPI versions, and existing Docker tags; fixed PyPI dispatch and regenerated the packaged README before building.
- Added a manual tool to repair an existing GitHub release description, plus regression tests for release planning and machine-readable CLI output.
Docker image: pooyanazad/yaml-checker:v3.5.0-20261011
Use this release
PyPI installation once this package version is published (syntax and linting):
python -m pip install 'yamlguard==3.5.0'
yamlguard myfile.yamlFor Checkov scanning, install yamlguard[security]==3.5.0.
Docker (includes Checkov; Linux/macOS shell):
docker run --rm -v "$(pwd):/data:ro" pooyanazad/yaml-checker:v3.5.0-20261011 myfile.yamlRelease v3.4.0-20261011
YAML Validator v3.4.0-20261011 — 2026-10-11
Changes since v3.3.0-20260901 (63 non-merge commits).
- Add PyPI packaging for the
yamlguardPython CLI. Syntax validation and yamllint are included; Checkov is available through the optionalsecurityextra. - Export validation results as JSON, SARIF 2.1.0, or JUnit XML, alongside the existing text report.
- Handle Checkov reports containing multiple frameworks and malformed output more gracefully.
- Docker now uses a multi-stage build, runs as a non-root user, and includes a health check. CI adds lint/type checks, a coverage gate, image-size checks, and vulnerability reports.
- Update runtime dependencies, development tools, and GitHub Actions; add package build and trusted-publishing workflows.
Docker image: pooyanazad/yaml-checker:v3.4.0-20261011
Use this release
PyPI installation once this package version is published (syntax and linting):
python -m pip install 'yamlguard==3.4.0'
yamlguard myfile.yamlFor Checkov scanning, install yamlguard[security]==3.4.0.
Docker (includes Checkov; Linux/macOS shell):
docker run --rm -v "$(pwd):/data:ro" pooyanazad/yaml-checker:v3.4.0-20261011 myfile.yamlCommit details for this release
Fixes
- fix(ci): add pull-requests write permission and continue-on-error to release-notes PR step (8fdde93)
- fix: remove black from CI, fix checkov packaging conflict in test deps (afb876f)
- fix(ci): use setup job's latest_tag output instead of re-running git describe in release-notes (9f6be41)
- fix(ci): use PR for release notes on protected main (#39) (2ff5e31)
- fix(lint): resolve all ruff errors introduced by JSON output feature (19b99f0)
- fix(ci): replace trivy-action with direct Trivy CLI install (6613e4b)
- fix(ci): fix Trivy action SHA and raise image size limit to 700 MB (fcd0d16)
- fix(ci): fix YAML syntax error in Trivy summary step (ebc69eb)
- fix: use sys.executable for subprocess tests and add pipefail to CI pytest step (21ea102)
- fix: handle checkov multi-framework list output and parse errors gracefully (c7feee8)
Build and maintenance
- ci: allow manual tag input on dispatch and auto-trigger pypi release workflow (2263602)
- chore: bump version to 3.4.0 and fix release workflow python version (a0cbd0e)
- chore: remove redundant ci.yml, docker-build.yml already handles CI (2cf7b61)
- chore: add PyPI packaging as yamlguard (5732bd2)
- style: apply ruff format to test_app.py and output.py (526c9b1)
- ci: add Trivy container scan for HIGH/CRITICAL OS-level CVEs (ea54b74)
- ci: add Docker image size check with 500 MB hard limit (fa0f3c6)
- docker: ignore __pycache__, .venv, .pytest_cache to reduce build context (#49) (d95d778)
- docker: run container as non-root 'validator' user for better security (#48) (9fafa77)
- docker: add OCI LABEL metadata (title, description, version, source, licenses) (#47) (07f08a9)
- docker: add HEALTHCHECK to verify yaml and yamllint are importable (#46) (e7989bf)
- ci: remove dependabot-auto-merge workflow (17b5e75)
- ci: fix pip-audit CVE noise + add Dependabot auto-merge workflow (9e0197d)
- ci(#45): add pip-audit job to CI for CVE scanning (6cab9a8)
- ci(#44): add Dependabot config for automated dependency updates (a091061)
- ci: run lint, app-tests, and docker-tests in parallel after build stage (b0a04cb)
- ci: add dedicated parallel lint and quality stage with ruff and mypy (26511c1)
- ci: pin GitHub Action versions to exact commit SHAs for security (#39) (8f9c092)
- style: auto-format codebase with ruff format and enforce in CI (#38) (0f13cd1)
- ci: add mypy type checking to CI and resolve model type annotations (#37) (b090527)
- ci: add ruff linting to CI and fix initial codebase violations (#36) (c3dc04b)
- ci: add test coverage gate to fail build if below 70% (#35) (1f3f065)
Documentation
- docs: update README with PyPI yamlguard installation, formats, and v3.4.0 release notes (acd57c6)
- docs: fix release notes for v3.3.0-20260901 — show only commits since previous tag (d090737)
- docs: add GitHub Actions CI workflow status badge to README (#40) (78137e0)
Dependencies
- chore(deps-dev): bump the dev-deps group across 1 directory with 2 updates (#40) (9bc406a)
- chore(deps): bump checkov (#37) (73cf6ce)
- chore(deps): bump docker/setup-qemu-action from 4.3.0 to 4.4.0 (#36) (2408ec2)
- chore(deps): bump docker/build-push-action from 7.3.0 to 7.4.0 (#35) (a75cc3e)
- chore(deps): bump docker/setup-buildx-action from 4.3.0 to 4.4.1 (#34) (612bad8)
- chore(deps-dev): bump ruff from 0.16.6 to 0.16.7 in the dev-deps group (#33) (b74973a)
- chore(deps): bump checkov in the production-deps group (#32) (c1bb167)
- chore(deps): bump softprops/action-gh-release from 1 to 3 (#31) (221f575)
- chore(deps): bump docker/login-action from 3.7.0 to 4.6.0 (#23) (c088f27)
- chore(deps): bump docker/build-push-action from 5.4.0 to 7.3.0 (#24) (78fea19)
- chore(deps): bump checkov in the production-deps group (#26) (9fdb5b1)
- chore(deps): bump docker/setup-qemu-action from 3.7.0 to 4.3.0 (#25) (c95bcb9)
- chore(deps): bump actions/setup-python from 5.6.0 to 7.0.0 (#27) ([07ad677](07ad677...
Release v3.3.0-20260901
YAML Validator v3.3.0-20260901
Docker Images
pooyanazad/yaml-checker:v3.3.0-20260901pooyanazad/yaml-checker:latest
Changes
- test: make sure the tool doesn't choke on a 40k-line YAML file (#34) (bfba1b4)
- test: catch resolve_files edge cases — symlinks, bad dirs, wrong extensions (#33) (e87687e)
- test: #32 add TestMultiFileSummary — multi-file combined summary tests (fc9315c)
- test: #31 add TestHelpVersionFlags — --help and --version verification (172cebd)
- test: #30 add TestMainExitCode1 — verify exit code 1 for issues files (2444f19)
- test: #29 add TestMainEndToEnd — e2e subprocess exit code 0 (4d88ced)
- CI tests run parallel (a4ab8c8)
- fix: #8 suppress redundant large-file warning (c074eb9)
- test: #28 add TestCheckDependenciesMocked — mock yamllint/checkov availability (38fefb2)
- fix: #8 handle large YAML files (2e0f5ff)
- test: #27 add TestPrintSummaryTable — verify table rendering and counts (5dd7e6b)
- test: add TestPrintIssues -- severity grouping order tests for print_issues() (#26) (e65a293)
- test: add TestPrintColored — capsys output tests for print_colored() (#25) (fa41dca)
- docs: update release notes for v3.2.0-20260801 [skip ci] (b77350f)
- test: restore missing test fixtures (7f169d0)
- ci: fix docker integration tests path for fixtures (b011710)
- test: add test coverage reporting (963ab7b)
- test: add pytest.ini with standard configuration (df8a5b0)
- test: move fixtures to tests/fixtures/ (4432519)
- test: add conftest.py with shared fixtures (759baf9)
- fix: handle empty and binary YAML files gracefully (#13, #14) (bf2eb04)
- refactor: make app.py a thin entry point, add package main (#20) (faa74ec)
- refactor: move CLI to yaml_validator/cli.py (#19) (a086281)
- fix: add yaml_validator package to Docker image and move output helpers (d43a30e)
- refactor: move validators and output helpers to package (#17) (cc94449)
- refactor: move models to yaml_validator/models.py (#16) (3e91bf1)
- refactor: create yaml_validator/ package scaffold (#15) (d344fd3)
- ci: remove docker image artifact upload/download (Closes #17) (6c6af0c)
- docs: add CONTRIBUTING.md (bb10d51)
- chore: add PR template and update CI triggers (a797647)
- cleanup: remove Day N labels from comments and docstrings (ceb7d81)
- feat: add file permission check before opening YAML files (Day 12) (7df8166)
- refactor: narrow exception catches in validate_yaml_syntax (Day 11) (d083903)
- docs: update release notes for v3.1.0-20260701 [skip ci] (34c1550)
- test: mock timeout handling correctly (Day 10) (56bb590)
- feat: make timeout configurable (Day 9) (f929f89)
- feat: add timeout to check_dependencies() (Day 8) (1888688)
- feat: add timeouts to subprocess calls (Day 7) (7cb4835)
- fix: add missing stderr to test mock (7254d52)
- feat: handle yamllint edge cases gracefully (Day 6) (f9ad00f)
- test: add Day 5 verification for regex parsing colons (3b7b5d1)
- fix: replace fragile string splitting with robust regex for yamllint parsing (b9aee21)
- test: add Day 2 tests for ToolAvailability and check_dependencies() (a75e99a)
- refactor: replace CHECKOV_AVAILABLE global with ToolAvailability dataclass (a9bd7a3)
- ci: add App Tests stage with pytest report output before Docker tests and release (a1683cc)
- test: add pytest app functionality tests (41 tests across 5 test classes) (74142ff)
- test: improve Docker integration tests with real exit code and output assertions (0b206e8)
- ci: split pipeline into 7 separate jobs for clear stage visibility (99f8927)
- docs: update release notes for v3.0.0-20260601 [skip ci] (7d47cc8)
- fix: fix release notes - use git describe for tag detection and Python for README update (bb5cdf2)
- docs: add notice that multi-file feature is coming in v3 (5357e0f)
- ci: switch versioning to v3.x.0-YYYYMMDD format (f67d040)
- docs: restructure README, simplify install, and add release notes marker (403d556)
- ci: pipeline improvements, multi-arch build, and release notes auto-update (7596d5f)
- feat: multi-file and directory support (879be8c)
- chore: add .gitignore and .dockerignore (1cb75d4)
- Allow Docker actions to run on workflow_dispatch event (1704b46)
- Start automated releases at v2.0 (09f08d0)
- Document Python 3.12 runtime and v2 releases (2632096)
- Use current Python executable (c541afa)
- Update Docker image to Python 3.12 (d6b2281)
- Update README.md (bd3df82)
- Update README with alias definition for yaml-checker (f85ce30)
- Add personal usage section for yaml-checker (a3ffd39)
- Update README.md (b59762d)
- Revert pipeline: Remove email notifications (2e78af5)
- Update README and add email notifications for scheduled releases (c9ce59b)
- Update README.md (16b6bd9)
- Update README: Remove Examples section and maintain current Docker image info (ed8c612)
- Versioning issue fixed: Docker push and GitHub release now schedule-only on 1st of each month (a42947c)
- Remove schedule-only conditions from Docker login and push stages (452978a)
- Trigger v1.0.1 release workflow (7c08a4c)
- Fix release creation for manual triggers and all event types (b42a788)
- Trigger workflow to create first version v1.0.1 (d1839eb)
- Reset version numbering to start from v1.0.1 (02c3a18)
- Update docker-build.yml (8f9f1cc)
- Update docker-build.yml (e01bb72)
- Add timezone debugging step to print current time in workflow (4873048)
- Update docker-build.yml (a7fa91b)
- Add timezone specification for Stockholm to workflow schedule (b020276)
- Fix: Add tag fetching for proper version increment and update cron to run at 11:50 AM Sweden time (weekdays) (b242709)
- Fix: Add fetch-depth and git fetch --tags to ensure proper tag access for version incrementing (fc823c9)
- Update docker-build.yml (85d35a3)
- Update docker-build.yml (510eb20)
- Update docker-build.yml (f7b422c)
- Fix: Improve version generation logic with duplicate tag detection and proper incrementing (907d4f4)
- Update docker-build.yml (94b83e9)
- Update docker-build.yml (be709aa)
- Update README.md (f43b5a9)
- make change to create release just by schedule (4263c25)
- Update README.md (83fd20e)
- Fix: Add auto-incrementing version numbers and GitHub release permissions (924c6a1)
- Fix: Update Docker tag format to v1.0.2-YYYYMMDD and replace deprecated create-release action (dfd3828)
- Add GitHub Actions workflow for monthly Docker builds with automated testing and DockerHub deployment (dd4ffa7)
- Add GitHub Actions workflows for automated Docker builds and testing (0ad8f79)
- Add comprehensive test suite with safe fake API keys for validation scenarios (25a4eb7)
- Add comprehensive README with usage instructions for all platforms (9a55c71)
- Add Dockerfile with volume mounting support for external YAML files (1cff16f)
- Add Docker entrypoint script for flexible command execution (bbe4abb)
- Add core Python application and dependencies for YAML validation (94c49ab)
- Initial commit (601876a)
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Multi-file & directory scanning
- Cross-platform (amd64/arm64)
Quick Start
# One-time install
echo 'alias ytest="docker run --rm -v \"$(pwd):/data\" pooyanazad/yaml-checker"' >> ~/.bashrc && source ~/.bashrc
ytest myfile.yaml # single file
ytest ./configs/ # entire directory
ytest a.yaml b.yaml # multiple filesRelease v3.2.0-20260801
YAML Validator v3.2.0-20260801
Docker Images
pooyanazad/yaml-checker:v3.2.0-20260801pooyanazad/yaml-checker:latest
Changes
- test: restore missing test fixtures (26925a3)
- ci: fix docker integration tests path for fixtures (f06babb)
- test: add test coverage reporting (f062eb7)
- test: add pytest.ini with standard configuration (12e6222)
- test: move fixtures to tests/fixtures/ (110ce94)
- test: add conftest.py with shared fixtures (c3b007d)
- fix: handle empty and binary YAML files gracefully (#13, #14) (a2fd60e)
- refactor: make app.py a thin entry point, add package main (#20) (54e89e7)
- refactor: move CLI to yaml_validator/cli.py (#19) (a9943e7)
- fix: add yaml_validator package to Docker image and move output helpers (22156f2)
- refactor: move validators and output helpers to package (#17) (0654563)
- refactor: move models to yaml_validator/models.py (#16) (0c69408)
- refactor: create yaml_validator/ package scaffold (#15) (bba3051)
- ci: remove docker image artifact upload/download (Closes #17) (b90d9b6)
- docs: add CONTRIBUTING.md (c6885bf)
- chore: add PR template and update CI triggers (fda6adf)
- cleanup: remove Day N labels from comments and docstrings (4b3ee83)
- feat: add file permission check before opening YAML files (Day 12) (97a1f7a)
- refactor: narrow exception catches in validate_yaml_syntax (Day 11) (223bd1c)
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Multi-file & directory scanning
- Cross-platform (amd64/arm64)
Quick Start
# One-time install
echo 'alias ytest="docker run --rm -v \"$(pwd):/data\" pooyanazad/yaml-checker"' >> ~/.bashrc && source ~/.bashrc
ytest myfile.yaml # single file
ytest ./configs/ # entire directory
ytest a.yaml b.yaml # multiple filesRelease v3.1.0-20260701
YAML Validator v3.1.0-20260701
Docker Images
pooyanazad/yaml-checker:v3.1.0-20260701pooyanazad/yaml-checker:latest
Changes
- test: mock timeout handling correctly (Day 10) (6753344)
- feat: make timeout configurable (Day 9) (55bef66)
- feat: add timeout to check_dependencies() (Day 8) (913339e)
- feat: add timeouts to subprocess calls (Day 7) (7097990)
- fix: add missing stderr to test mock (0a692be)
- feat: handle yamllint edge cases gracefully (Day 6) (50d7aa1)
- test: add Day 5 verification for regex parsing colons (30ff916)
- fix: replace fragile string splitting with robust regex for yamllint parsing (fd1e0cf)
- test: add Day 2 tests for ToolAvailability and check_dependencies() (6a42995)
- refactor: replace CHECKOV_AVAILABLE global with ToolAvailability dataclass (3f6f670)
- ci: add App Tests stage with pytest report output before Docker tests and release (4a741da)
- test: add pytest app functionality tests (41 tests across 5 test classes) (b9e5032)
- test: improve Docker integration tests with real exit code and output assertions (2fcec57)
- ci: split pipeline into 7 separate jobs for clear stage visibility (0b38079)
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Multi-file & directory scanning
- Cross-platform (amd64/arm64)
Quick Start
# One-time install
echo 'alias ytest="docker run --rm -v \"$(pwd):/data\" pooyanazad/yaml-checker"' >> ~/.bashrc && source ~/.bashrc
ytest myfile.yaml # single file
ytest ./configs/ # entire directory
ytest a.yaml b.yaml # multiple filesRelease v3.0.0-20260601
YAML Validator Release v3.0.0-20260601
Docker Images
pooyanazad/yaml-checker:v3.0.0-20260601pooyanazad/yaml-checker:latest
Changes
- fix: fix release notes - use git describe for tag detection and Python for README update (ee13d65)
- docs: add notice that multi-file feature is coming in v3 (0da00c3)
- ci: switch versioning to v3.x.0-YYYYMMDD format (5e8e256)
- docs: restructure README, simplify install, and add release notes marker (da73953)
- ci: pipeline improvements, multi-arch build, and release notes auto-update (97679f2)
- feat: multi-file and directory support (124a40d)
- chore: add .gitignore and .dockerignore (fa828af)
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Multi-file & directory scanning
- Cross-platform Docker support (amd64/arm64)
Usage
# Quick install
echo 'alias ytest='\''docker run --rm -v "$(pwd):/data" pooyanazad/yaml-checker'\''' >> ~/.bashrc && source ~/.bashrc
# Single file
ytest your_file.yaml
# Multiple files
ytest file1.yaml file2.yaml
# Entire directory
ytest ./configs/Release v2.0.1-20260515
YAML Validator Release v2.0.1-20260515
Docker Images
pooyanazad/yaml-checker:v2.0.1-20260515pooyanazad/yaml-checker:latest
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Cross-platform Docker support
Usage
# Git Bash on Windows
MSYS_NO_PATHCONV=1 docker run -v "${PWD}:/data" pooyanazad/yaml-checker:v2.0.1-20260515 /data/your_file.yaml
# PowerShell/CMD on Windows
docker run -v "${PWD}:/data" pooyanazad/yaml-checker:v2.0.1-20260515 /data/your_file.yaml
# Linux/macOS
docker run -v "$(pwd):/data" pooyanazad/yaml-checker:v2.0.1-20260515 /data/your_file.yamlRelease v1.0.10-20260501
YAML Validator Release v1.0.10-20260501
Docker Images
pooyanazad/yaml-checker:v1.0.10-20260501pooyanazad/yaml-checker:latest
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Cross-platform Docker support
Usage
# Git Bash on Windows
MSYS_NO_PATHCONV=1 docker run -v "${PWD}:/data" pooyanazad/yaml-checker:v1.0.10-20260501 /data/your_file.yaml
# PowerShell/CMD on Windows
docker run -v "${PWD}:/data" pooyanazad/yaml-checker:v1.0.10-20260501 /data/your_file.yaml
# Linux/macOS
docker run -v "$(pwd):/data" pooyanazad/yaml-checker:v1.0.10-20260501 /data/your_file.yamlRelease v1.0.9-20260401
YAML Validator Release v1.0.9-20260401
Docker Images
pooyanazad/yaml-checker:v1.0.9-20260401pooyanazad/yaml-checker:latest
Features
- YAML syntax validation
- Linting with yamllint
- Security scanning with Checkov
- Cross-platform Docker support
Usage
# Git Bash on Windows
MSYS_NO_PATHCONV=1 docker run -v "${PWD}:/data" pooyanazad/yaml-checker:v1.0.9-20260401 /data/your_file.yaml
# PowerShell/CMD on Windows
docker run -v "${PWD}:/data" pooyanazad/yaml-checker:v1.0.9-20260401 /data/your_file.yaml
# Linux/macOS
docker run -v "$(pwd):/data" pooyanazad/yaml-checker:v1.0.9-20260401 /data/your_file.yaml