mirror of
https://github.com/tofuutils/pre-commit-opentofu.git
synced 2025-10-15 17:38:54 +02:00
29 lines
1.8 KiB
Markdown
29 lines
1.8 KiB
Markdown
# pre-commit-terraform hook
|
|
|
|
[](https://github.com/antonbabenko/pre-commit-terraform/releases)  [](https://www.codetriage.com/antonbabenko/pre-commit-terraform)
|
|
|
|
Several [pre-commit](http://pre-commit.com/) hooks to keep Terraform configurations (both `*.tf` and `*.tfvars`) in a good shape:
|
|
* `terraform_fmt` - Rewrites all Terraform configuration files to a canonical format.
|
|
* `terraform_validate_no_variables` - Validates all Terraform configuration files without checking whether all required variables were set.
|
|
* `terraform_validate_with_variables` - Validates all Terraform configuration files and checks whether all required variables were specified.
|
|
* `terraform_docs` - Inserts input and output documentation into `README.md`.
|
|
|
|
## Notes about hooks
|
|
|
|
1. `terraform_validate_no_variables` and `terraform_validate_with_variables` will not work if variables are being set dynamically (eg, when using [Terragrunt](https://github.com/gruntwork-io/terragrunt)). Use `terragrunt validate` command instead.
|
|
|
|
1. `terraform_docs` will insert/update documentation generated by [terraform-docs](https://github.com/segmentio/terraform-docs) between markers - `<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->` and `<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->` if they are present in `README.md`. Make sure that `terraform-docs` is installed.
|
|
|
|
## Example
|
|
|
|
`.pre-commit-config.yaml`:
|
|
|
|
```yaml
|
|
- repo: git://github.com/antonbabenko/pre-commit-terraform
|
|
rev: v1.7.3
|
|
hooks:
|
|
- id: terraform_fmt
|
|
- id: terraform_docs
|
|
```
|
|
|
|
Enjoy the clean and documented code!
|