Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: terrascan - Improve performance during pre-commit --all (-a) run #327

Merged
merged 3 commits into from
Feb 10, 2022
Merged

feat: terrascan - Improve performance during pre-commit --all (-a) run #327

merged 3 commits into from
Feb 10, 2022

Conversation

carlosbustillordguez
Copy link
Contributor

Put an x into the box if that apply:

  • This PR introduces breaking change.
  • This PR fixes a bug.
  • This PR adds new functionality.
  • This PR enhances existing functionality.

Description of your changes

Close #309

How has this code been tested

time pre-commit try-repo --ref 44ae15a https://github.com/carlosbustillordguez/pre-commit-terraform.git terrascan -a
===============================================================================
Using config:
===============================================================================
repos:
-   repo: https://github.com/carlosbustillordguez/pre-commit-terraform.git
    rev: 44ae15a
    hooks:
    -   id: terrascan
===============================================================================

hooks/_common.sh Outdated Show resolved Hide resolved
hooks/terrascan.sh Outdated Show resolved Hide resolved
hooks/_common.sh Show resolved Hide resolved
@carlosbustillordguez
Copy link
Contributor Author

Regarding HOOK_ID read-only global variable, currently is defined for terrascan hook. Should we define it for other hooks?

@MaxymVlasov
Copy link
Collaborator

Regarding HOOK_ID read-only global variable, currently is defined for terrascan hook. Should we define it for other hooks?

Yes, please

@carlosbustillordguez
Copy link
Contributor Author

Regarding HOOK_ID read-only global variable, currently is defined for terrascan hook. Should we define it for other hooks?

Yes, please

Done! Please note that the following hooks are not using the common::per_dir_hook which can consume the HOOK_ID global read-only variable. The variable is defined but not used.

  • infracost_breakdown
  • terraform_docs
  • terraform_fmt
  • terraform_validate

For terraform_docs_replace hook, I didn't add the variable.

Copy link
Collaborator

@yermulnik yermulnik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM if @MaxymVlasov approves

Copy link
Owner

@antonbabenko antonbabenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks very good (I didn't run it)!

I wonder if you can confirm that this change will work with a big repository like this one - https://github.com/terraform-aws-modules/terraform-aws-security-group ? And how much faster will it become?

Another consideration - spaces in the path. It is not often but it happens that people use spaces in the path and we need to make sure it works correctly.

@carlosbustillordguez
Copy link
Contributor Author

carlosbustillordguez commented Feb 3, 2022

Looks very good (I didn't run it)!

Thanks!

I wonder if you can confirm that this change will work with a big repository like this one - https://github.com/terraform-aws-modules/terraform-aws-security-group ? And how much faster will it become?

I tested the suggested repo against the code on this PR:

===============================================================================
Using config:
===============================================================================
repos:
-   repo: https://github.com/carlosbustillordguez/pre-commit-terraform
    rev: 976dc1d
    hooks:
    -   id: terrascan
===============================================================================

Test details:

5 runs 'terrascan PR 327#pullrequestreview-871100755'

time command max min mean median
users seconds 9.31 8.91 9.076 9.05
system seconds 0.45 0.27 0.362 0.37
CPU % 115 108 112 113
Total time 8.6 8.06 8.4 8.4
Run details
  • Test Start: Thu Feb 3 19:04:49 UTC 2022
  • Test End: Thu Feb 3 19:05:31 UTC 2022
Variable name Value
TEST_NUM 5
TEST_COMMAND pre-commit try-repo --ref 976dc1d https://github.com/carlosbustillordguez/pre-commit-terraform terrascan -a
TEST_DIR /home/carlos/testing/pre-commit-terraform-tests/big-module/terraform-aws-security-group
TEST_DESCRIPTION 5 runs 'terrascan PR 327#pullrequestreview-871100755'
RAW_TEST_RESULTS_FILE_NAME terrascan_terraform-aws-security-group

Memory info (head -n 6 /proc/meminfo):

MemTotal:       26032556 kB
MemFree:        20210464 kB
MemAvailable:   23720044 kB
Buffers:          338640 kB
Cached:          3811452 kB
SwapCached:            0 kB

CPU info:

Real procs: 4
Virtual (hyper-threading) procs: 8

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 140
model name	: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
stepping	: 1
microcode	: 0xffffffff
cpu MHz		: 2803.198
cache size	: 12288 KB
physical id	: 0
siblings	: 8
core id		: 3
cpu cores	: 4
apicid		: 7
initial apicid	: 7
fpu		: yes
fpu_exception	: yes
cpuid level	: 21
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm avx512_vp2intersect flush_l1d arch_capabilities
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs
bogomips	: 5606.39
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

Test against the current release:

===============================================================================
Using config:
===============================================================================
repos:
-   repo: https://github.com/antonbabenko/pre-commit-terraform
    rev: v1.62.3
    hooks:
    -   id: terrascan
===============================================================================

Test details:

5 runs 'terrascan pre-commit-terraform v1.62.3'

time command max min mean median
users seconds 125.23 122.7 124.432 124.61
system seconds 6.38 5.94 6.2 6.27
CPU % 182 179 181.4 182
Total time 73.18 70.4 71.794 71.74
Run details
  • Test Start: Thu Feb 3 19:19:47 UTC 2022
  • Test End: Thu Feb 3 19:25:46 UTC 2022
Variable name Value
TEST_NUM 5
TEST_COMMAND pre-commit try-repo --ref v1.62.3 https://github.com/antonbabenko/pre-commit-terraform terrascan -a
TEST_DIR /home/carlos/testing/pre-commit-terraform-tests/big-module/terraform-aws-security-group
TEST_DESCRIPTION 5 runs 'terrascan pre-commit-terraform v1.62.3'
RAW_TEST_RESULTS_FILE_NAME terrascan-v1.62.3_terraform-aws-security-group

Memory info (head -n 6 /proc/meminfo):

MemTotal:       26032556 kB
MemFree:        19494044 kB
MemAvailable:   23009248 kB
Buffers:          341248 kB
Cached:          3813972 kB
SwapCached:            0 kB

CPU info:

Real procs: 4
Virtual (hyper-threading) procs: 8

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 140
model name	: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
stepping	: 1
microcode	: 0xffffffff
cpu MHz		: 2803.198
cache size	: 12288 KB
physical id	: 0
siblings	: 8
core id		: 3
cpu cores	: 4
apicid		: 7
initial apicid	: 7
fpu		: yes
fpu_exception	: yes
cpuid level	: 21
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm avx512_vp2intersect flush_l1d arch_capabilities
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs
bogomips	: 5606.39
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

From the above results, we can see that the code of this PR has a significant improvement (x8 faster) compared with the current release (v1.62.3).

Another consideration - spaces in the path. It is not often but it happens that people use spaces in the path and we need to make sure it works correctly.

I made a test as follows:

TEST_NUM=5
TEST_DIR='/home/carlos/testing/pre-commit-terraform-tests/big module with spaces/terraform-aws-security-group'
TEST_DESCRIPTION='`terrascan` PR 327#pullrequestreview-871100755 with spaces in the path'
RAW_TEST_RESULTS_FILE_NAME='terrascan_terraform-aws-security-group-spaces_in_the_path'

TEST_COMMAND="pre-commit try-repo --ref 976dc1d https://github.com/carlosbustillordguez/pre-commit-terraform terrascan -a"

./hooks_performance_test.sh "$TEST_NUM" "$TEST_COMMAND" "$TEST_DIR" "$TEST_DESCRIPTION" "$RAW_TEST_RESULTS_FILE_NAME"

and it works, but I am not sure is a valid test because the path with spaces is inside simple quotes...

Also, I ran pre-commit from a path with spaces and it works:

 ~/testing/pre-commit-terraform-tests/big module with spaces/terraform-aws-security-group   master 
 pre-commit try-repo --ref 976dc1d https://github.com/carlosbustillordguez/pre-commit-terraform.git terrascan -a
===============================================================================
Using config:
===============================================================================
repos:
-   repo: https://github.com/carlosbustillordguez/pre-commit-terraform.git
    rev: 976dc1d
    hooks:
    -   id: terrascan
===============================================================================
...
Scan Summary -

        File/Folder         :   /home/carlos/testing/pre-commit-terraform-tests/big module with spaces/terraform-aws-security-group
        IaC Type            :   terraform
        Scanned At          :   2022-02-03 20:03:52.091596863 +0000 UTC
        Policies Validated  :   50
        Violated Policies   :   13
        Low                 :   1
        Medium              :   0
        High                :   12

Please, note a path with spaces in the "Scan Summary".

Copy link
Collaborator

@MaxymVlasov MaxymVlasov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works fine.
Ready to merge, @antonbabenko

@antonbabenko antonbabenko merged commit 7e7c916 into antonbabenko:master Feb 10, 2022
antonbabenko pushed a commit that referenced this pull request Feb 10, 2022
# [1.63.0](v1.62.3...v1.63.0) (2022-02-10)

### Features

* Improve performance during `pre-commit --all (-a)` run ([#327](#327)) ([7e7c916](7e7c916))
@antonbabenko
Copy link
Owner

This PR is included in version 1.63.0 🎉

@MaxymVlasov MaxymVlasov changed the title feat: Improve performance during pre-commit --all (-a) run feat: terrascan: Improve performance during pre-commit --all (-a) run Feb 10, 2022
@MaxymVlasov MaxymVlasov changed the title feat: terrascan: Improve performance during pre-commit --all (-a) run feat: terrascan - Improve performance during pre-commit --all (-a) run Feb 10, 2022
@carlosbustillordguez carlosbustillordguez deleted the 309-improve-perfomance-during-pre-commit-all branch February 10, 2022 16:06
mrwacky42 added a commit to HeadspaceMeditation/pre-commit-terraform that referenced this pull request Feb 15, 2022
* Added terraform-docs integration (#13)

* Add hook to create readme

* Updated README

* Run terraform_docs only if README.md is present

* Run terraform_docs only if README.md is present

* Fixes use of md5 for tempfile name (#16)

* Replace terraform_docs use of GNU sed with perl (#15)

* Fix ShellCheck warning 2219

https://github.com/koalaman/shellcheck/wiki/SC2219

* Replace GNU sed commands with perl

This replaces the sed commands which required GNU sed be installed with
perl versions. This should make this script more universally usable
(e.g., on macOS) without installing additional tools.

* Only run validate if .tf files exist in the directory. (antonbabenko#20)

* Only run validate if .tf files exist in the directory.

* Same fix, different script :)

* Updated README

* Added license file (fixed antonbabenko#21)

* Add feature to pass options to terraform-docs.

* Added followup after antonbabenko#25

* Add new hook for running terraform-docs with replacing README.md from doc in main.tf

* Address requested changes

* Add `--dest` argument

* Address requested changes

* fix typo

* Fix bug not letting terraform_docs_replace work in the root directory of a repo

* Require terraform-docs runs in serial to avoid pre-commit doing parallel operations on similar file paths

* Added chglog (hi @robinbowes :))

* Added CHANGELOG.md

* Add exit code for 'terraform validate' so pre-commit check fails (antonbabenko#34)

* Bump new version

* fix check for errors at the end (antonbabenko#35)

* Updated changelog

* Update README.md (antonbabenko#36)

* Fixed broken "maintained badge"

* Added note about incompatibility of terraform-docs with Terraform 0.12 (antonbabenko#41)

* Updated CHANGELOG

* Added support for terraform_docs for Terraform 0.12 (antonbabenko#45)

* Updated CHANGELOG

* Upgraded to work with Terraform >= 0.12 (antonbabenko#44)

* Updated CHANGELOG

* Fix version in README.md (antonbabenko#46)

* Fixed awk script for terraform-docs (kudos @cytopia) and mktemp on Mac (closes antonbabenko#47, antonbabenko#48, antonbabenko#49)

* Updated CHANGELOG

* Add slash to mktemp dir (fixed antonbabenko#50)

* Updated CHANGELOG

* Fix typo in README (antonbabenko#51)

* Fixed enquoted types in terraform_docs (fixed antonbabenko#52)

* Updated CHANGELOG

* Formatter for Terragrunt HCL files (antonbabenko#60)

* Formatter for Terragrunt HCL files

* Adding Terragrunt documentation

* Updated README with terragrunt_fmt hook

* Updated CHANGELOG

* Added support for TFLint with --deep parameter (antonbabenko#53)

Added support for TFLint (https://github.com/wata727/tflint).

Signed-off-by: Costin Galan <costin.galan@mambu.com>

* Updated README with terraform_tflint hook

* Updated CHANGELOG

* Update rev in README.md (antonbabenko#70)

Updating the version in the README.

In order for `terraform_tflint`, the rev must be at least `v1.19.0`.

* Improve installation instructions and make README more readable (antonbabenko#72)

* Added FUNDING.yml

* Fixes antonbabenko#65: terraform-docs should not fail if complex types contain 'description' keyword (antonbabenko#73)

* Updated CHANGELOG

* use getopt for args in the tflint hook, following the approach in terraform-docs (antonbabenko#75)

* Updated CHANGELOG

* move terraform-docs args after markdown command (antonbabenko#83)

* Updated CHANGELOG

* Added support for terraform-docs 0.8.0 with proper support for Terraform 0.12 syntax (bye-bye awk) (antonbabenko#85)

* Updated CHANGELOG

* Added shfmt to autoformat shell scripts (antonbabenko#86)

* Updated CHANGELOG

* Fixed tflint hook to iterate over files (antonbabenko#77)

* Updated CHANGELOG

* Fixed exit code for terraform 0.11 branch in terraform_docs (antonbabenko#94)

* Updated pre-commit-hooks

* Updated CHANGELOG

* corrected tflint documentation (antonbabenko#95)

* Updated CHANGELOG

* Update installation instructions (antonbabenko#79)

- Fix package name misspell
- TFlint migrate to another organization

* Allow passing multiple args to terraform-docs (antonbabenko#98)

* Updated CHANGELOG

* fix: Change terraform_validate hook functionality for subdirectories with terraform files (antonbabenko#100)

* Update terraform_validate.sh:
-Change to the directory before running terraform validate to use the Terraform
 configuration for the appropriate working directory.

* Neglected to change the terraform validate call to use the default of the
current directory.

* Several changes to improve functionality:
- Switch to checking the path for '*.tf' instead of always checking the current
  directory.
- Try to find a '.terraform' directory (which indicates a `terraform init`) and
  change to that directory before running `terraform validate`.

* Fix the description for the terraform_validate hook to reflect changes that were
made in:
antonbabenko@35e0356

* - Clean up comments.
- Adjust variable names to better reflect what they are holding.

* Updated CHANGELOG

* feat: Support for TFSec (antonbabenko#103)

* Updated pre-commit deps

* Updated CHANGELOG

* docs: Added coreutils as requirements in README.md (antonbabenko#105)

* docs: Fixed the docs to use the latest config syntax(antonbabenko#106)

* fix: Updated formatting in README (closes antonbabenko#113)

* Updated CHANGELOG

* feat: add terragrunt validate hook (antonbabenko#134)

* Updated CHANGELOG

* docs: Update terraform-docs link pointing to new organization (antonbabenko#130)

* fix: Pass args and env vars to terraform validate (antonbabenko#125)

* Updated CHANGELOG

* chore: Use lib_getopt for all hooks and some style tweaks (antonbabenko#137)

* Updated CHANGELOG

* fix: Squash terraform_docs bug (antonbabenko#138)

* Updated CHANGELOG

* feat: have option for terraform_tfsec hook to only run in relevant modified directories (antonbabenko#135)

* Updated CHANGELOG

* fix: make terraform_tfsec.sh executable (antonbabenko#140)

* Updated CHANGELOG

* fix: Correctly handle arrays in terraform_docs.sh (antonbabenko#141)

* Updated CHANGELOG

* feat: Add checkov support (antonbabenko#143)

* Updated CHANGELOG

* feat: Add possibility to share tflint config file for subdirs (antonbabenko#149)

* Updated CHANGELOG

* fix: terraform-docs version 0.10 removed with-aggregate-type-defaults (antonbabenko#150)

* Updated CHANGELOG

* fix: make terraform_docs Windows compatible (antonbabenko#129)

* Updated CHANGELOG

* fix: Fix regex considering terraform-docs v0.10.0 old (antonbabenko#151)

* Updated CHANGELOG

* feat: Make terraform_validate to run init if necessary (antonbabenko#158)

* Updated CHANGELOG

* fix: Correct deprecated parameter to terraform-docs (antonbabenko#156)

* Updated CHANGELOG

* update to upstream hooks

* just report, do not error

* fix: Terraform validate for submodules (antonbabenko#172)

* Updated CHANGELOG

* docs: updates installs for macOS and ubuntu (antonbabenko#175)

* fix: remove sed postprocessing from the terraform_docs_replace hook to fix compatibility with terraform-docs 0.11.0+ (antonbabenko#176)

* Updated CHANGELOG

* docs: Added checkov install (antonbabenko#182)

* chore: add dockerfile (antonbabenko#183)

* Updated CHANGELOG

* Update README.md

* chore: Fix mistake on command (antonbabenko#185)

* fix: Fix and pin versions in Dockerfile (antonbabenko#193)

* Updated CHANGELOG

* feat: Adds support for Terrascan (antonbabenko#195)

* Updated CHANGELOG

* chore: Update Ubuntu install method (antonbabenko#198)

* docs: Initial docs improvement (antonbabenko#218)

* fix: Dockerized pre-commit-terraform (antonbabenko#219)

Co-authored-by: Anton Babenko <anton@antonbabenko.com>

* feat: Add mixed line ending check to prevent possible errors (antonbabenko#221)

* feat: Add GH checks and templates (antonbabenko#222)

* chore: Updated GH stale action config (antonbabenko#223)

* fix: label auto-adding after label rename (antonbabenko#226)

* fix: trigger terraform-docs on changes in lock files (antonbabenko#228)

* Updated CHANGELOG

* fix: remove dead code from terraform-docs script (antonbabenko#229)

* chore: Add shfmt to workflow (antonbabenko#231)

* docs: Describe hooks usage and improve examples (antonbabenko#232)

Co-authored-by: Anton Babenko <anton@antonbabenko.com>

* fix: Dockerfile if INSTALL_ALL is not defined (antonbabenko#233)

* feat: Add PATH outputs when TFLint found any problem (antonbabenko#234)

* fix: terraform_tflint hook executes in a serial way to run less often (antonbabenko#211)

* docs: Add contributing guide and docs about performance tests (antonbabenko#235)

* docs: Make contributors more visible (antonbabenko#236)

* docs: Document terraform_tfsec args usage (antonbabenko#238)

* feat: Add new hook for `terraform providers lock` operation (antonbabenko#173)

* Updated CHANGELOG

* chore: Do not mark issues and PR's in milestone as stale (antonbabenko#241)

* fix: TFSec outputs the same results multiple times (antonbabenko#237)

* docs: Add terraform_fmt usage instructions and how-to debug script with args (antonbabenko#242)

* feat: Allow passing of args to terraform_fmt (antonbabenko#147)

* docs: Document hooks dependencies (antonbabenko#247)

* feat: Add support for specify terraform-docs config file (antonbabenko#244)

* fix: terrafrom_tflint ERROR output for files located in repo root (antonbabenko#243)

* feat: Add `terraform_docs` hook settings (antonbabenko#245)

* docs: fix deps (antonbabenko#249)

* fix: execute tflint once in no errors (antonbabenko#250)

* fix: command not found (antonbabenko#251)

* docs: Add missing space in terrascan install cmd (antonbabenko#253)

* feat: add __GIT_WORKING_DIR__ to tfsec (antonbabenko#255)

* docs: fix protocol to prevent MITM (antonbabenko#257)

* feat: Set up PR reviewers automatically (antonbabenko#258)

* feat: Add infracost_breakdown hook (antonbabenko#252)

* docs: Clarify docs for terraform_tfsec hook (antonbabenko#266)

* docs: Pre-release 1.53 (antonbabenko#267)

* Updated CHANGELOG

* fix: Fixed args expand in terraform_docs (antonbabenko#260)

* docs: Added notes about sponsors (antonbabenko#268)

* feat: Add support for quoted values in `infracost_breakdown` `--hook-config` (antonbabenko#269)

* Updated CHANGELOG

* fix: Fixed 1.54.0 where `terraform_docs` was broken (antonbabenko#272)

* Updated CHANGELOG

* chore: Updated messages shown in terraform_tflint hook (antonbabenko#274)

* feat: Updated Docker image from Ubuntu to Alpine (antonbabenko#278)

* Updated CHANGELOG

* chore: Add deprecation notice to `terraform_docs_replace` (antonbabenko#280)

* fix: typo in arg name for terraform-docs (antonbabenko#283)

* Updated CHANGELOG

* chore: Fix master merge to working branch on pre-commit autofixes (antonbabenko#286)

* chore: Publish container image on release (antonbabenko#285)

* Updated CHANGELOG

* fix: Fixed docker build (antonbabenko#288)

* Updated CHANGELOG

* fix: pre-build docker image (antonbabenko#292)

* Updated CHANGELOG

* fix: analyse all folders with tflint and don't stop on first execution (antonbabenko#289)

* feat: Pass custom arguments to terraform init in `terraform_validate` hook (antonbabenko#293)

* Updated CHANGELOG

* feat: Added semantic release (antonbabenko#296)

* chore(release): version 1.62.0 [skip ci]

# [1.62.0](antonbabenko/pre-commit-terraform@v1.61.0...v1.62.0) (2021-12-12)

### Features

* Added semantic release ([antonbabenko#296](antonbabenko#296)) ([1bcca44](antonbabenko@1bcca44))

* chore: Validate PR title (antonbabenko#297)

* chore: Updated validation PR title types (antonbabenko#298)

* chore: Fixed allowed types for PR titles

* chore: Publish container image only after the release

* fix(terraform_tflint): Restore current working directory behavior (antonbabenko#302)

* chore: Use valid token for the Release GHA

* chore(release): version 1.62.1 [skip ci]

## [1.62.1](antonbabenko/pre-commit-terraform@v1.62.0...v1.62.1) (2021-12-18)

### Bug Fixes

* **terraform_tflint:** Restore current working directory behavior ([antonbabenko#302](antonbabenko#302)) ([93029dc](antonbabenko@93029dc))

* fix: Properly exclude .terraform directory with checkov hook (antonbabenko#306)

* fix: Speedup `terrascan` hook up to x3 times in big repos (antonbabenko#307)

* chore: Release action should track hooks configuration changes (antonbabenko#308)

* chore(release): version 1.62.2 [skip ci]

## [1.62.2](antonbabenko/pre-commit-terraform@v1.62.1...v1.62.2) (2021-12-21)

### Bug Fixes

* Properly exclude .terraform directory with checkov hook ([antonbabenko#306](antonbabenko#306)) ([b431a43](antonbabenko@b431a43))
* Speedup `terrascan` hook up to x3 times in big repos ([antonbabenko#307](antonbabenko#307)) ([2e8dcf9](antonbabenko@2e8dcf9))

* fix: Check all directories with changes and pass all args in terrascan hook (antonbabenko#305)

* chore(release): version 1.62.3 [skip ci]

## [1.62.3](antonbabenko/pre-commit-terraform@v1.62.2...v1.62.3) (2021-12-22)

### Bug Fixes

* Check all directories with changes and pass all args in terrascan hook ([antonbabenko#305](antonbabenko#305)) ([66401d9](antonbabenko@66401d9))

* chore: Refactor all hooks (antonbabenko#310)

* chore: Cleanup file with test data (antonbabenko#311)

* chore: Add shellcheck and make checks passing (antonbabenko#315)

Co-authored-by: Anton Babenko <anton@antonbabenko.com>

* chore: Improved code structure (moved hooks into a separate dir) (antonbabenko#316)

* chore: Specify what we exactly mean (antonbabenko#320)

* chore: Document functions (based on google style guide) (antonbabenko#317)

* chore: Add hadolint check for Dockerfiles (antonbabenko#322)

Co-authored-by: Balazs Hamorszky <balihb@gmail.com>

* chore: Add Github Actions Workflow to build if Dockerfile updated (antonbabenko#318)

Co-authored-by: Maksym Vlasov <MaxymVlasov@users.noreply.github.com>

* docs: Add workaround for configuration_aliases tf bug (antonbabenko#332)

* chore: fix bug intoduced in antonbabenko#316 (antonbabenko#335)

* feat: Improve performance during `pre-commit --all (-a)` run (antonbabenko#327)

* chore(release): version 1.63.0 [skip ci]

# [1.63.0](antonbabenko/pre-commit-terraform@v1.62.3...v1.63.0) (2022-02-10)

### Features

* Improve performance during `pre-commit --all (-a)` run ([antonbabenko#327](antonbabenko#327)) ([7e7c916](antonbabenko@7e7c916))

* feat: Improved speed of `pre-commit run -a` for multiple hooks (antonbabenko#338)

* chore(release): version 1.64.0 [skip ci]

# [1.64.0](antonbabenko/pre-commit-terraform@v1.63.0...v1.64.0) (2022-02-10)

### Features

* Improved speed of `pre-commit run -a` for multiple hooks ([antonbabenko#338](antonbabenko#338)) ([579dc45](antonbabenko@579dc45))

* chore: Fix docker test workflow (antonbabenko#340)

* chore: Add Docker latest and nightly tag (antonbabenko#343)

Co-authored-by: Anton Babenko <anton@antonbabenko.com>
Co-authored-by: jeremy avnet <162998+brainsik@users.noreply.github.com>
Co-authored-by: Robin Bowes <robin.bowes@yo61.com>
Co-authored-by: Martin Etmajer <metmajer@getcloudnative.io>
Co-authored-by: rothandrew <roth.andy@gmail.com>
Co-authored-by: Chris Gilmer <chris@truss.works>
Co-authored-by: Josiah Halme <josiahhalme@users.noreply.github.com>
Co-authored-by: Tyler Christiansen <code@tylerc.me>
Co-authored-by: Guido Dobboletta <guidodobboletta@gmail.com>
Co-authored-by: Paweł Szczepaniak <krzyzakp@users.noreply.github.com>
Co-authored-by: Leonhardt Wille <lwille@users.noreply.github.com>
Co-authored-by: Eric Gonzales <eric-gonzales@users.noreply.github.com>
Co-authored-by: Scott Crooks <sc250024@users.noreply.github.com>
Co-authored-by: Costin GALAN <info@cogala.eu>
Co-authored-by: Dave Gallant <davegallant@gmail.com>
Co-authored-by: Maksym Vlasov <MaxymVlasov@users.noreply.github.com>
Co-authored-by: cytopia <cytopia@everythingcli.org>
Co-authored-by: chopped pork <solidek@gmail.com>
Co-authored-by: Thierno IB. BARRY <ibrahima.br@gmail.com>
Co-authored-by: Konstantin Kirpichnikov <56006844+konstantin-recurly@users.noreply.github.com>
Co-authored-by: Robson Roberto Souza Peixoto <124390+robsonpeixoto@users.noreply.github.com>
Co-authored-by: Martin Coxall <martincoxall@bmlltech.com>
Co-authored-by: Sergei Ivanov <sergei-ivanov@users.noreply.github.com>
Co-authored-by: Nick M <50747025+mcdonnnj@users.noreply.github.com>
Co-authored-by: Jon Proietti <45764555+jon-proietti-nutrien@users.noreply.github.com>
Co-authored-by: gchappell99 <44392051+gchappell99@users.noreply.github.com>
Co-authored-by: snolan-uturn <50503078+snolan-uturn@users.noreply.github.com>
Co-authored-by: Prahalad Ramji <prahaladramji@gmail.com>
Co-authored-by: Khosrow Moossavi <khos2ow@gmail.com>
Co-authored-by: nkazarian-spokeo <51686594+nkazarian-spokeo@users.noreply.github.com>
Co-authored-by: Matias Zilli <matiaszilli@gmail.com>
Co-authored-by: Evan Stoddard <evanstoddard23@gmail.com>
Co-authored-by: Shawn <shawn.tolidano@gmail.com>
Co-authored-by: Manuel Vogel <mavogel@posteo.de>
Co-authored-by: Sergio Kef <sergios.kefalas@blacklane.com>
Co-authored-by: Cesar Rodriguez <cesar@accurics.com>
Co-authored-by: Lorenz Vanthillo <lorenz.vanthillo@outlook.com>
Co-authored-by: balihb <balihb@gmail.com>
Co-authored-by: Javier Collado <javier.collado@tutanota.com>
Co-authored-by: Dan Arnold <dan-arnold@users.noreply.github.com>
Co-authored-by: gravitybacklight <2327204+gravitybacklight@users.noreply.github.com>
Co-authored-by: Milos Jajac <milosjajac13@gmail.com>
Co-authored-by: Birger J. Nordølum <contact@mindtooth.no>
Co-authored-by: sg70 <sven.geisler@gmail.com>
Co-authored-by: Bruno Ferreira <bmibferreira@gmail.com>
Co-authored-by: Maxime Brunet <max@brnt.mx>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Maxime Brunet <maxime.brunet@paytm.com>
Co-authored-by: Carlos Miguel Bustillo Rodríguez <20931458+carlosbustillordguez@users.noreply.github.com>
Co-authored-by: Mohit Saxena <76725454+mohitsaxenaknoldus@users.noreply.github.com>
Co-authored-by: Mark Bainter <mbainter+github@gmail.com>
Co-authored-by: Pasquale De Vita <59291437+pasqualedevita@users.noreply.github.com>
github-actions bot pushed a commit to MaxymVlasov/pre-commit-terraform-712 that referenced this pull request Jan 24, 2025
# 1.0.0 (2025-01-24)

### Bug Fixes

* `grep: warning: stray \ before /` which pop-up in `grep 3.8` ([antonbabenko#625](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/625)) ([e1a93b2](e1a93b2))
* **`terraform_docs`:** Fix issue and prioritize `output.file` setting from `.terraform-docs.yml` config over `--hook-config=--path-to-file=` ([antonbabenko#698](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/698)) ([9d6a22b](9d6a22b))
* **`terraform_docs`:** Fix issue with processing multiply files without `terraform-docs` markers. Issue introduced in v1.95.0 ([antonbabenko#720](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/720)) ([2b1aec8](2b1aec8)), closes [antonbabenko#717](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/717) [/github.com/antonbabenko/pre-commit-terraform/blob/869a106a4c8c48f34f58318a830436142e31e10a/hooks/terraform_docs.sh#L216](https://github.com//github.com/antonbabenko/pre-commit-terraform/blob/869a106a4c8c48f34f58318a830436142e31e10a/hooks/terraform_docs.sh/issues/L216)
* **`terraform_docs`:** Fix non-GNU `sed` issues, introduced in v1.93.0 ([antonbabenko#704](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/704)) ([3c8734d](3c8734d))
* **`terraform_docs`:** Fix non-GNU sed issues, introduced in v1.93.0, as previous fix doesn't work correctly ([antonbabenko#708](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/708)) ([c986c5e](c986c5e))
* **`terraform_docs`:** Restore `--hook-config=--add-to-existing-file` default behavior. Regression from 1.94.0. ([antonbabenko#716](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/716)) ([315342e](315342e))
* **`terraform_docs`:** Restore multiply `--hook-config` args support. Regression from v1.95.0 ([antonbabenko#731](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/731)) ([87143fb](87143fb))
* **`terraform_docs`:** Suppress "terraform command not found" error message in case binary does not exist ([antonbabenko#693](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/693)) ([6ff3572](6ff3572))
* **`terraform_docs`:** Suppress redundant warnings pop-ups introduced in v1.92.2 ([antonbabenko#700](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/700)) ([59b2454](59b2454))
* **`terraform_providers_lock`:** Require `terraform init` (and `terraform_validate` hook) run when only lockfile changed ([antonbabenko#649](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/649)) ([02c1935](02c1935))
* **`terraform_validate`:** Run `terraform init` on "Missing required provider" error ([antonbabenko#586](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/586)) ([6e2bb2e](6e2bb2e))
* Add `--env-vars`, deprecate `--envs` ([antonbabenko#410](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/410)) ([2b35cad](2b35cad))
* Add `--tf-init-args`, deprecate `--init-args` ([antonbabenko#407](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/407)) ([c4f8251](c4f8251))
* analyse all folders with tflint and don't stop on first execution ([antonbabenko#289](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/289)) ([7c6ad7c](7c6ad7c))
* Change terraform_validate hook functionality for subdirectories with terraform files ([antonbabenko#100](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/100)) ([7694fb9](7694fb9))
* Check all directories with changes and pass all args in terrascan hook ([antonbabenko#305](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/305)) ([66401d9](66401d9))
* command not found ([antonbabenko#251](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/251)) ([e33c654](e33c654))
* Correct deprecated parameter to terraform-docs ([antonbabenko#156](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/156)) ([3a07570](3a07570))
* Correctly handle arrays in terraform_docs.sh ([antonbabenko#141](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/141)) ([f2cab31](f2cab31))
* Describe migration instructions from `terraform_docs_replace` ([antonbabenko#451](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/451)) ([a8bcaa7](a8bcaa7))
* **docker:** Checkov installation silently fails on `docker build` in arm64. Workaround till issue will be fixed in `checkov` itself ([antonbabenko#635](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/635)) ([f255b05](f255b05))
* Dockerfile if INSTALL_ALL is not defined ([antonbabenko#233](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/233)) ([3bdcf51](3bdcf51))
* Dockerized pre-commit-terraform ([antonbabenko#219](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/219)) ([ce02f94](ce02f94))
* **docker:** Prevent all possible "silent errors" during `docker build` ([antonbabenko#644](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/644)) ([0340c8d](0340c8d))
* execute tflint once in no errors ([antonbabenko#250](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/250)) ([390a264](390a264))
* Extend `terraform_validate` `--retry-once-with-cleanup` errors list ([antonbabenko#566](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/566)) ([19188e5](19188e5))
* Fix `terraform_providers_lock` hook broken in v1.79.0 ([antonbabenko#521](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/521)) ([6bfc5bf](6bfc5bf))
* Fix and pin versions in Dockerfile ([antonbabenko#193](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/193)) ([d27074b](d27074b))
* Fix regex considering terraform-docs v0.10.0 old ([antonbabenko#151](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/151)) ([d773f4a](d773f4a))
* Fix terraform_wrapper_module_for_each for when resource name contains 'variable' ([antonbabenko#573](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/573)) ([941177e](941177e))
* Fix terraform_wrapper_module_for_each hook heredoc vars defaults ([antonbabenko#554](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/554)) ([6fd4263](6fd4263))
* Fix the terraform_wrapper_module_for_each hook for modules without outputs or variables ([antonbabenko#552](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/552)) ([f24b3fa](f24b3fa))
* Fixed `terraform_fmt` with `tfenv`, when `terraform` default version is not specified ([antonbabenko#389](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/389)) ([1b9476a](1b9476a))
* Fixed `tfupdate` to work in all cases, not only `pre-commit run --all` ([antonbabenko#375](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/375)) ([297cc75](297cc75))
* Fixed 1.54.0 where `terraform_docs` was broken ([antonbabenko#272](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/272)) ([4c50943](4c50943))
* Fixed args expand in terraform_docs ([antonbabenko#260](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/260)) ([01a6170](01a6170))
* Fixed docker build ([antonbabenko#288](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/288)) ([4543f10](4543f10))
* Fixed git fatal error in Dockerfile ([antonbabenko#372](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/372)) ([c3f8dd4](c3f8dd4))
* Fixed ordering issue in terraform_wrapper_module_for_each hook ([antonbabenko#565](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/565)) ([dc12be1](dc12be1))
* Fixed spacing in `terraform_wrapper_module_for_each` hook ([antonbabenko#503](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/503)) ([ddc0d81](ddc0d81))
* Fixed url for wrappers in generated README (terraform_wrapper_module_for_each) ([antonbabenko#429](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/429)) ([fe29c6c](fe29c6c))
* Improve `tflint --init` command execution ([antonbabenko#361](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/361)) ([d31cb69](d31cb69))
* Improve README and drop quotes from hook env vars ([antonbabenko#651](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/651)) ([daec682](daec682))
* label auto-adding after label rename ([antonbabenko#226](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/226)) ([4faee7b](4faee7b))
* Make hooks bash 3.2 compatible ([antonbabenko#339](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/339)) ([4ad825d](4ad825d))
* make terraform_docs Windows compatible ([antonbabenko#129](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/129)) ([81770aa](81770aa))
* make terraform_tfsec.sh executable ([antonbabenko#140](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/140)) ([077c423](077c423))
* **non-linux:** Bash environment variables in arguments not expanded + Add `trace` log level ([antonbabenko#645](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/645)) ([a2a2990](a2a2990))
* Pass args and env vars to terraform validate ([antonbabenko#125](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/125)) ([774c63e](774c63e))
* Pass command line arguments to tflint init ([antonbabenko#487](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/487)) ([29a8c00](29a8c00))
* Passed scenario in `terraform_docs` hook now works as expected ([7ac2736](7ac2736))
* pre-build docker image ([antonbabenko#292](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/292)) ([01d262c](01d262c))
* Pre-commit-terraform terraform_validate hook ([antonbabenko#401](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/401)) ([d9f482c](d9f482c))
* Properly exclude .terraform directory with checkov hook ([antonbabenko#306](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/306)) ([b431a43](b431a43))
* remove dead code from terraform-docs script ([antonbabenko#229](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/229)) ([ff54bb4](ff54bb4))
* remove sed postprocessing from the terraform_docs_replace hook to fix compatibility with terraform-docs 0.11.0+ ([antonbabenko#176](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/176)) ([90d4521](90d4521))
* Replace `mapfile` to support Bash 3.2.57 pre-installed in macOS ([antonbabenko#628](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/628)) ([01ab3f0](01ab3f0))
* Run `terraform_tfsec` only on terraform code changes ([antonbabenko#571](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/571)) ([4253162](4253162))
* Speed up x2 TFLint hook execution in dirs with violations ([antonbabenko#514](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/514)) ([49974ab](49974ab))
* Speedup `terrascan` hook up to x3 times in big repos ([antonbabenko#307](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/307)) ([2e8dcf9](2e8dcf9))
* Squash terraform_docs bug ([antonbabenko#138](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/138)) ([6c77a6c](6c77a6c))
* Support custom TF paths which contains spaces ([antonbabenko#714](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/714)) ([2bca410](2bca410))
* Suppress duplicate error messages in `terraform_validate` ([antonbabenko#577](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/577)) ([4ea6b14](4ea6b14))
* Terraform validate for submodules ([antonbabenko#172](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/172)) ([827af52](827af52))
* terraform_tflint hook executes in a serial way to run less often ([antonbabenko#211](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/211)) ([3404eed](3404eed))
* **terraform_tflint:** Restore current working directory behavior ([antonbabenko#302](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/302)) ([93029dc](93029dc))
* terraform-docs version 0.10 removed with-aggregate-type-defaults ([antonbabenko#150](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/150)) ([6f3b125](6f3b125))
* terrafrom_tflint ERROR output for files located in repo root ([antonbabenko#243](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/243)) ([3f66432](3f66432))
* TFSec outputs the same results multiple times ([antonbabenko#237](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/237)) ([71f7c34](71f7c34))
* trigger terraform-docs on changes in lock files ([antonbabenko#228](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/228)) ([b67dbd9](b67dbd9))
* typo in arg name for terraform-docs ([antonbabenko#283](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/283)) ([feabecc](feabecc))
* Updated formatting in README (closes [antonbabenko#113](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/113)) ([27e6369](27e6369))
* Updates all dependencies used in Dockerfile and fix Docker image ([antonbabenko#507](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/507)) ([dc177fe](dc177fe))
* **WSL:** Make parallelism work appropriately ([antonbabenko#728](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/728)) ([e87ee43](e87ee43))

### Features

* **`terraform_docs`:** Add `terraform-docs` default markers support and describe how to migrate to them ([antonbabenko#609](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/609)) ([4a0e1fe](4a0e1fe))
* **`terraform_docs`:** Add support for custom markers to better support other formats than Markdown ([antonbabenko#752](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/752)) ([cd090b6](cd090b6))
* **`terraform_docs`:** Drop support for `terraform-docs` <0.12.0 ([antonbabenko#717](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/717)) ([81e4572](81e4572))
* **`terraform_docs`:** Start seamless migration to `terraform-docs` markers ([antonbabenko#701](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/701)) ([d03f44f](d03f44f))
* **`terraform_providers_lock`:** Add `--mode` option and deprecate previous workflow ([antonbabenko#528](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/528)) ([2426b52](2426b52))
* **`terraform-docs`:** Add support for `replace` mode  for TF 0.12+; Use native saving to file for TF 0.12+. Both requires `terraform-docs` v0.12.0+ which released in 2021. ([antonbabenko#705](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/705)) ([1a1b4a3](1a1b4a3))
* Add __GIT_WORKING_DIR__ to terraform_checkov ([antonbabenko#399](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/399)) ([ae88ed7](ae88ed7))
* add __GIT_WORKING_DIR__ to tfsec ([antonbabenko#255](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/255)) ([2973f85](2973f85))
* Add `--retry-once-with-cleanup` to `terraform_validate` ([antonbabenko#441](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/441)) ([96fe3ef](96fe3ef))
* Add `terraform_docs` hook settings ([antonbabenko#245](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/245)) ([7b11401](7b11401))
* Add `terragrunt_providers_lock` hook ([antonbabenko#632](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/632)) ([77940fd](77940fd))
* Add `terragrunt_validate_inputs` hook to check unused and undefined inputs ([antonbabenko#677](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/677)) ([a139b71](a139b71))
* Add checkov support ([antonbabenko#143](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/143)) ([293b64c](293b64c))
* Add GH checks and templates ([antonbabenko#222](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/222)) ([53a866e](53a866e))
* Add infracost_breakdown hook ([antonbabenko#252](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/252)) ([cff42e6](cff42e6))
* Add mixed line ending check to prevent possible errors ([antonbabenko#221](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/221)) ([c920368](c920368))
* Add new hook for `terraform providers lock` operation ([antonbabenko#173](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/173)) ([d69e86d](d69e86d))
* Add parallelism to major chunk of hooks. Check `Parallelism` section in README ([antonbabenko#620](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/620)) ([6c6eca4](6c6eca4))
* Add PATH outputs when TFLint found any problem ([antonbabenko#234](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/234)) ([ce02cd1](ce02cd1))
* Add possibility to share tflint config file for subdirs ([antonbabenko#149](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/149)) ([cf07b5e](cf07b5e))
* Add support for `pre-commit/pre-commit-hooks` in Docker image ([antonbabenko#374](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/374)) ([017da74](017da74))
* Add support for quoted values in `infracost_breakdown` `--hook-config` ([antonbabenko#269](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/269)) ([e2604ea](e2604ea))
* Add support for set env vars inside hook runtime ([antonbabenko#408](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/408)) ([d490231](d490231))
* Add support for specify terraform-docs config file ([antonbabenko#244](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/244)) ([25cddd9](25cddd9))
* Add support for version constraints in `tfupdate` ([antonbabenko#437](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/437)) ([a446642](a446642))
* add terragrunt validate hook ([antonbabenko#134](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/134)) ([f6caf21](f6caf21))
* Added `terraform_checkov` (run per folder), deprecated `checkov` hook ([antonbabenko#290](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/290)) ([e3a9834](e3a9834))
* Added semantic release ([antonbabenko#296](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/296)) ([1bcca44](1bcca44))
* Added support for `tfupdate` to update version constraints in Terraform configurations ([antonbabenko#342](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/342)) ([ef7a0f2](ef7a0f2))
* Added terraform_wrapper_module_for_each hook ([antonbabenko#376](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/376)) ([e4e9a73](e4e9a73))
* Added Terramate as sponsor ([antonbabenko#676](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/676)) ([dae1a48](dae1a48))
* Adding init to terraform_tflint hook ([antonbabenko#352](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/352)) ([1aff30f](1aff30f))
* Adds support for Terrascan ([antonbabenko#195](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/195)) ([fee2387](fee2387))
* Allow `terraform_providers_lock` specify terraform init args ([antonbabenko#406](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/406)) ([32b232f](32b232f))
* Allow env vars expansion in `--args` section for all hooks ([antonbabenko#363](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/363)) ([caa01c3](caa01c3))
* Allow passing of args to terraform_fmt ([antonbabenko#147](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/147)) ([de2f624](de2f624))
* Allow running container as non-root UID/GID for ownership issues (docker) ([antonbabenko#433](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/433)) ([abc2570](abc2570))
* **ci:** Build multi-arch Docker images (`amd64`, `arm64`) ([antonbabenko#496](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/496)) ([923c2c6](923c2c6))
* **deps:** Bump Python version in docker image from 3.11.5 to v3.12.0 ([antonbabenko#597](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/597)) ([28e3cde](28e3cde))
* **docker:** Add ssh-client to Docker image to access private modules via ssh ([antonbabenko#553](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/553)) ([1d76157](1d76157))
* Expand environment variables in `--args=` which contains lowercase symbols, like `${TF_VAR_lowercase}` ([antonbabenko#719](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/719)) ([bf156b4](bf156b4))
* have option for terraform_tfsec hook to only run in relevant modified directories ([antonbabenko#135](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/135)) ([108c75f](108c75f))
* Hook terraform_wrapper_module_for_each should use versions.tf from the module if it exists ([antonbabenko#657](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/657)) ([b127601](b127601))
* Improve performance during `pre-commit --all (-a)` run ([antonbabenko#327](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/327)) ([7e7c916](7e7c916))
* Improved speed of `pre-commit run -a` for multiple hooks ([antonbabenko#338](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/338)) ([579dc45](579dc45))
* Make terraform_validate to run init if necessary ([antonbabenko#158](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/158)) ([d303bff](d303bff))
* Pass custom arguments to terraform init in `terraform_validate` hook ([antonbabenko#293](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/293)) ([45575c3](45575c3))
* Removed `coreutils` (realpath) from dependencies for MacOS ([antonbabenko#368](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/368)) ([944a2e5](944a2e5))
* Set up PR reviewers automatically ([antonbabenko#258](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/258)) ([cc59119](cc59119))
* Skip legacy modules (with provider block) in terraform_wrapper_module_for_each hook ([antonbabenko#560](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/560)) ([456cc76](456cc76))
* Speedup `terraform_validate` - firstly try run validate without checking is `.terraform/` is valid ([antonbabenko#524](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/524)) ([d0d08ac](d0d08ac))
* Support for TFSec ([antonbabenko#103](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/103)) ([2be8fe5](2be8fe5))
* Support set custom TF/OpenTofu binary. | If you use a custom Docker image build, please note that `TERRAFORM_VERSION` now must be provided ([antonbabenko#670](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/670)) ([c7011c0](c7011c0))
* Suppress color for all hooks if `PRE_COMMIT_COLOR=never` set ([antonbabenko#409](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/409)) ([b12f0c6](b12f0c6))
* TFLint: Add `--hook-config=--delegate-chdir` to use `tflint -chdir` ([antonbabenko#512](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/512)) ([1e9debc](1e9debc))
* **trivy:** Add `terraform_trivy` hook and deprecate `terraform_tfsec` ([antonbabenko#606](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/606)) ([f3c819a](f3c819a))
* Updated Docker image from Ubuntu to Alpine ([antonbabenko#278](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/278)) ([71302a9](71302a9))
* When a config file is given, do not specify formatter on cli (terraform_docs) ([antonbabenko#386](https://github.com/MaxymVlasov/pre-commit-terraform-712/issues/386)) ([962054b](962054b))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve perfomance during pre-commit --all (-a) run
4 participants