Skip to content

This repository is used for the Bangkok Community Day AWS 2025 event. It provides a set of pre-commit hooks to maintain Terraform code quality and consistency across various projects.

License

Notifications You must be signed in to change notification settings

Navapon/terraform-precommit

Repository files navigation

Terraform Pre-commit Hooks

This repository contains pre-commit hook configurations for Terraform projects to ensure code quality and consistency.

Slide Available here

Description

This repository is used for the Community Day AWS 2025 event. It provides a set of pre-commit hooks to maintain Terraform code quality and consistency across various projects. The hooks include formatting, documentation generation, linting, and security checks.

Prerequisites

Before you begin, ensure you have the following installed:

  • Git
  • pre-commit
  • Terraform
  • terraform-docs (for documentation generation)
  • Other optional tools based on your needs:
brew install pre-commit terraform-docs tflint trivy checkov infracost tfupdate minamijoyo/hcledit/hcledit jq

Quick Start

Initialize your Git repository:

git init
git branch -M main

Create the pre-commit configuration file:

cat <<EOF > .pre-commit-config.yaml
repos:

- repo: <https://github.com/antonbabenko/pre-commit-terraform>
  rev: v1.96.3
  hooks:
  - id: terraform_fmt
  - id: terraform_docs
      args:
    - --hook-config=--create-file-if-not-exist=true
EOF

Install the pre-commit hooks:

pre-commit install --install-hooks

Once installed, the hooks will run automatically on every commit. You can also run them manually:

Run all pre-commit hooks

pre-commit run --all-files
Or
pre-commit run --file filename.extension

Run specific hook

pre-commit run terraform_fmt --all-files

More available hooks

About

This repository is used for the Bangkok Community Day AWS 2025 event. It provides a set of pre-commit hooks to maintain Terraform code quality and consistency across various projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages