AI21Labs/pre-commit-hook-yamlfmt
forked from jumanjihouse/pre-commit-hook-yamlfmt
Captured source
source ↗AI21Labs/pre-commit-hook-yamlfmt
Description: YAML formatter for http://pre-commit.com
License: MIT
Stars: 0
Forks: 0
Open issues: 1
Created: 2026-08-11T06:13:40Z
Pushed: 2026-08-11T06:26:25Z
Default branch: master
Fork: yes
Parent repository: jumanjihouse/pre-commit-hook-yamlfmt
Archived: no
README:
YAML formatter for pre-commit git hooks
YAML formatter for pre-commit.
This hook formats the indentation of YAML files and optionally aligns top-level colons.
It uses ruamel.yaml to do the heavy lifting and preserve comments within YAML files.
- [How-to](#how-to)
- [Configure pre-commit](#configure-pre-commit)
- [Use defaults](#use-defaults)
- [Combine with
yamllint](#combine-with-yamllint) - [Override defaults](#override-defaults)
- [Invoke pre-commit](#invoke-pre-commit)
- [On every commit](#on-every-commit)
- [On demand](#on-demand)
- [Contributing](#contributing)
- [Testing](#testing)
- [License](#license)
How-to
Configure pre-commit
Use defaults
Add to .pre-commit-config.yaml in your git repo:
- repo: https://github.com/jumanjihouse/pre-commit-hook-yamlfmt
rev: 0.2.1 # or other specific tag hooks:
- id: yamlfmt
:bulb: If a pre-commit hook changes a file, the hook fails with a warning that files were changed.
The default settings are:
mapping: 4 spacessequence: 6 spacesoffset: 4 spacescolons: do _not_ align top-level colonswidth: None (use ruamel default)
Given this input:
foo: bar:
- baz1
- baz2
The default settings result in this output:
--- foo: bar:
- baz1
- baz2
Combine with yamllint
yamlfmt only works with valid YAML files, so I recommend to use yamllint and yamlfmt together.
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.21.0 # or higher tag hooks:
- id: yamllint
args: [--format, parsable, --strict]
- repo: https://github.com/jumanjihouse/pre-commit-hook-yamlfmt
rev: 0.2.1 # or other specific tag hooks:
- id: yamlfmt
Override defaults
Add to .pre-commit-config.yaml in your git repo:
- repo: https://github.com/jumanjihouse/pre-commit-hook-yamlfmt
rev: 0.2.1 # or other specific tag hooks:
- id: yamlfmt
args: [--mapping, '2', --sequence, '2', --offset, '0', --colons, --width, '150']
Invoke pre-commit
On every commit
If you want to invoke the checks as a git pre-commit hook, run:
Run on every commit.
pre-commit install
On demand
If you want to run the checks on-demand (outside of git hooks), run:
Run on-demand.
pre-commit run --all-files
The [test harness](TESTING.md) of this git repo uses this approach.
Contributing
Please see [CONTRIBUTING.md](CONTRIBUTING.md).
Testing
Please see [TESTING.md](TESTING.md).
License
The code in this repo is licensed under the [MIT License](LICENSE).
Notability
notability 1.0/10Routine fork of a minor utility repo