diff --git a/.github/ISSUE_TEMPLATE/bug_report_docker.md b/.github/ISSUE_TEMPLATE/bug_report_docker.md
new file mode 100644
index 0000000..f1cddc7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report_docker.md
@@ -0,0 +1,81 @@
+---
+name: Local installation bug report
+about: Create a bug report
+labels:
+- kind/bug
+- area/docker
+---
+
+
+
+### Describe the bug
+
+
+
+
+### How can we reproduce it?
+
+
+
+
+### Environment information
+
+* OS:
+
+
+
+* `docker info`:
+
+command output
+
+```bash
+INSERT_OUTPUT_HERE
+```
+
+
+
+* Docker image tag/git commit:
+
+* Tools versions. Don't forget to specify right tag in command -
+ `TAG=latest && docker run --entrypoint cat pre-commit:$TAG /usr/bin/tools_versions_info`
+
+```bash
+INSERT_OUTPUT_HERE
+```
+
+* `.pre-commit-config.yaml`:
+
+file content
+
+```bash
+INSERT_FILE_CONTENT_HERE
+```
+
+
diff --git a/.github/ISSUE_TEMPLATE/bug_report_local_install.md b/.github/ISSUE_TEMPLATE/bug_report_local_install.md
new file mode 100644
index 0000000..f0798db
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report_local_install.md
@@ -0,0 +1,106 @@
+---
+name: Docker bug report
+about: Create a bug report
+labels:
+- kind/bug
+- area/local_installation
+---
+
+
+
+### Describe the bug
+
+
+
+
+### How can we reproduce it?
+
+
+
+
+### Environment information
+
+* OS:
+
+
+* `uname -a` and/or `systeminfo | Select-String "^OS"` output:
+
+```bash
+INSERT_OUTPUT_HERE
+```
+
+
+
+* Tools availability and versions:
+
+
+
+```bash
+INSERT_TOOLS_VERSIONS_HERE
+```
+
+
+* `.pre-commit-config.yaml`:
+
+file content
+
+```bash
+INSERT_FILE_CONTENT_HERE
+```
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..8d9f731
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,29 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+labels:
+- kind/feature
+---
+
+
+
+### What problem are you facing?
+
+
+
+
+### How could pre-commit-terraform help solve your problem?
+
+
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..a7af18c
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,31 @@
+
+
+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
+
+
+
+
+
+### How has this code been tested
+
+
diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml
new file mode 100644
index 0000000..773ff8e
--- /dev/null
+++ b/.github/workflows/pre-commit.yaml
@@ -0,0 +1,27 @@
+name: Common issues check
+
+on: [pull_request]
+
+jobs:
+ pre-commit:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - run: |
+ git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
+ - name: Get changed files
+ id: file_changes
+ run: |
+ export DIFF=$(git diff --name-only origin/${{ github.base_ref }} ${{ github.sha }})
+ echo "Diff between ${{ github.base_ref }} and ${{ github.sha }}"
+ echo "::set-output name=files::$( echo "$DIFF" | xargs echo )"
+ - uses: actions/setup-python@v2
+ with:
+ python-version: '3.9'
+ - name: Execute pre-commit
+ uses: pre-commit/action@v2.0.0
+ env:
+ SKIP: no-commit-to-branch
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ extra_args: --color=always --show-diff-on-failure --files ${{ steps.file_changes.outputs.files }}
diff --git a/.github/workflows/stale-actions.yaml b/.github/workflows/stale-actions.yaml
new file mode 100644
index 0000000..0000f40
--- /dev/null
+++ b/.github/workflows/stale-actions.yaml
@@ -0,0 +1,34 @@
+name: "Mark or close stale issues and PRs"
+on:
+ schedule:
+ - cron: "0 0 * * *"
+
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v3
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ # Staling issues and PR's
+ days-before-stale: 30
+ stale-issue-label: lifecycle/stale
+ stale-pr-label: lifecycle/stale
+ stale-issue-message: |
+ This issue has been automatically marked as stale because it has been open 30 days
+ with no activity. Remove stale label or comment or this issue will be closed in 10 days
+ stale-pr-message: |
+ This PR has been automatically marked as stale because it has been open 30 days
+ with no activity. Remove stale label or comment or this PR will be closed in 10 days
+ # Not stale if have this labels
+ exempt-issue-labels: kind/bug,lifecycle/active,lifecycle/frozen
+ exempt-pr-labels: kind/bug,lifecycle/active,lifecycle/frozen
+ # If unstale
+ labels-to-remove-when-unstale: lifecycle/stale
+ # Close issue operations
+ # Label will be automatically removed if the issues are no longer closed nor locked.
+ days-before-close: 10
+ close-issue-label: lifecycle/rotten
+ delete-branch: true
+ close-issue-message: This issue was automatically closed because of stale in 10 days
+ close-pr-message: This PR was automatically closed because of stale in 10 days
diff --git a/Dockerfile b/Dockerfile
index 5fa7552..0af14e3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -123,18 +123,18 @@ RUN . /.env && \
) && chmod +x tfsec \
; fi
-# Checking binaries versions
+# Checking binaries versions and write it to debug file
RUN . /.env && \
- echo "\n\n" && \
- pre-commit --version && \
- terraform --version | head -n 1 && \
- (if [ "$CHECKOV_VERSION" != "false" ]; then echo -n "checkov " && checkov --version; else echo "checkov SKIPPED" ; fi) && \
- (if [ "$TERRAFORM_DOCS_VERSION" != "false" ]; then ./terraform-docs --version; else echo "terraform-docs SKIPPED"; fi) && \
- (if [ "$TERRAGRUNT_VERSION" != "false" ]; then ./terragrunt --version; else echo "terragrunt SKIPPED" ; fi) && \
- (if [ "$TERRASCAN_VERSION" != "false" ]; then echo -n "terrascan " && ./terrascan version; else echo "terrascan SKIPPED" ; fi) && \
- (if [ "$TFLINT_VERSION" != "false" ]; then ./tflint --version; else echo "tflint SKIPPED" ; fi) && \
- (if [ "$TFSEC_VERSION" != "false" ]; then echo -n "tfsec " && ./tfsec --version; else echo "tfsec SKIPPED" ; fi) && \
- echo "\n\n"
+ F=tools_versions_info && \
+ pre-commit --version >> $F && \
+ terraform --version | head -n 1 >> $F && \
+ (if [ "$CHECKOV_VERSION" != "false" ]; then echo "checkov $(checkov --version)" >> $F; else echo "checkov SKIPPED" >> $F ; fi) && \
+ (if [ "$TERRAFORM_DOCS_VERSION" != "false" ]; then ./terraform-docs --version >> $F; else echo "terraform-docs SKIPPED" >> $F; fi) && \
+ (if [ "$TERRAGRUNT_VERSION" != "false" ]; then ./terragrunt --version >> $F; else echo "terragrunt SKIPPED" >> $F ; fi) && \
+ (if [ "$TERRASCAN_VERSION" != "false" ]; then echo "terrascan $(./terrascan version)" >> $F; else echo "terrascan SKIPPED" >> $F ; fi) && \
+ (if [ "$TFLINT_VERSION" != "false" ]; then ./tflint --version >> $F; else echo "tflint SKIPPED" >> $F ; fi) && \
+ (if [ "$TFSEC_VERSION" != "false" ]; then echo "tfsec $(./tfsec --version)" >> $F; else echo "tfsec SKIPPED" >> $F ; fi) && \
+ echo "\n\n" && cat $F && echo "\n\n"
# based on debian:buster-slim
# https://github.com/docker-library/python/blob/master/3.9/buster/slim/Dockerfile
diff --git a/README.md b/README.md
index aeeb966..bd848d5 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,7 @@
* [`checkov`](https://github.com/bridgecrewio/checkov) required for `checkov` hook.
* [`terraform-docs`](https://github.com/terraform-docs/terraform-docs) required for `terraform_docs` hooks.
+* [`terragrunt`](https://terragrunt.gruntwork.io/docs/getting-started/install/) required for `terragrunt_validate` hook.
* [`terrascan`](https://github.com/accurics/terrascan) required for `terrascan` hook.
* [`TFLint`](https://github.com/terraform-linters/tflint) required for `terraform_tflint` hook.
* [`TFSec`](https://github.com/liamg/tfsec) required for `terraform_tfsec` hook.
@@ -163,6 +164,12 @@ Docker:
docker run -v $(pwd):/lint -w /lint pre-commit run -a
```
+> You be able list tools versions when needed
+>
+> ```bash
+> TAG=latest && docker run --entrypoint cat pre-commit:$TAG /usr/bin/tools_versions_info
+> ```
+
## Available Hooks
There are several [pre-commit](https://pre-commit.com/) hooks to keep Terraform configurations (both `*.tf` and `*.tfvars`) and Terragrunt configurations (`*.hcl`) in a good shape: