# Configuration file for MegaLinter
# See all available variables at https://megalinter.io/configuration/ and in linters documentation

# all, none, or list of linter keys
APPLY_FIXES: all

# If you use ENABLE variable, all other languages/formats/tooling-formats will be disabled by default
# ENABLE:

DEFAULT_BRANCH: main

# If you use ENABLE_LINTERS variable, all other linters will be disabled by default
ENABLE_LINTERS:
  # - BASH_EXEC
  # - BASH_SHFMT
  # - CLOUDFORMATION_CFN_LINT
  # - DOCKERFILE_HADOLINT
  - EDITORCONFIG_EDITORCONFIG_CHECKER
  # - JSON_JSONLINT
  - JSON_PRETTIER
  # - JSON_V8R
  # - JAVASCRIPT_STANDARD
  - MARKDOWN_MARKDOWN_LINK_CHECK
  - MARKDOWN_MARKDOWNLINT
  - MARKDOWN_MARKDOWN_TABLE_FORMATTER
  - SPELL_CSPELL
  - TERRAFORM_TFLINT
  - TERRAFORM_TERRASCAN
  - YAML_YAMLLINT

FILTER_REGEX_EXCLUDE: '(\.automation/test|\.automation/generated|\.venv|\.github/workflows|docs/javascripts|docs/overrides|docs/json-schemas|flavors|clj-kondo|TEMPLATES|generators/*/files)'
YAML_YAMLLINT_FILTER_REGEX_EXCLUDE: '(templates/\.mega-linter\.yml|generators/*/files)'
YAML_PRETTIER_FILTER_REGEX_EXCLUDE: '(templates/\.mega-linter\.yml|mkdocs\.yml)'
YAML_V8R_FILTER_REGEX_EXCLUDE: '(descriptors|templates/\.mega-linter\.yml|\.codecov\.yml)'
BASH_FILTER_REGEX_EXCLUDE: "(lib)"

# Install plugin for list handling.
JSON_PRETTIER_FILTER_REGEX_EXCLUDE: '(\.vscode/)'
JSON_PRETTIER_CONFIG_FILE: "./node_modules/@storm-software/prettier/config/config.json"
JSON_PRETTIER_PRE_COMMANDS:
  - command: "pnpm add @storm-software/prettier -w -D"
    cwd: "workspace"

CLOUDFORMATION_CFN_LINT_CONFIG_FILE: "./node_modules/@storm-software/linting-tools/src/cloudformation-lint/.cfnlintrc"
CLOUDFORMATION_CFN_LINT_FILE_EXTENSIONS: [".yml", ".yaml"]

TERRAFORM_TERRASCAN_CONFIG_FILE: "./node_modules/@storm-software/linting-tools/src/terrascan/config.yml"
TERRAFORM_TERRASCAN_UNSECURED_ENV_VARIABLES:
  - GITHUB_TOKEN
  - STORM_BOT_GITHUB_TOKEN
TERRAFORM_TERRASCAN_PRE_COMMANDS:
  - command: "pnpm add @storm-software/linting-tools -w -D"
    cwd: "workspace"

TERRAFORM_TFLINT_CONFIG_FILE: "./node_modules/@storm-software/linting-tools/src/tflint/config.hcl"
TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES:
  - GITHUB_TOKEN
  - STORM_BOT_GITHUB_TOKEN
TERRAFORM_TFLINT_PRE_COMMANDS:
  - command: "pnpm add @storm-software/linting-tools -w -D"
    cwd: "workspace"

EDITORCONFIG_EDITORCONFIG_CHECKER_CONFIG_FILE: "./node_modules/@storm-software/linting-tools/editorconfig-checker/config.json"
EDITORCONFIG_EDITORCONFIG_CHECKER_PRE_COMMANDS:
  - command: "pnpm add @storm-software/linting-tools -w -D"
    cwd: "workspace"

MARKDOWN_FILTER_REGEX_EXCLUDE: '(license\.md|docs/licenses)'

MARKDOWN_MARKDOWN_LINK_CHECK_ARGUMENTS: "-q"
MARKDOWN_MARKDOWN_LINK_CHECK_CONFIG_FILE: "./node_modules/@storm-software/markdownlint/config/markdown-link-check.json"
MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true
MARKDOWN_MARKDOWN_LINK_CHECK_PRE_COMMANDS:
  - command: "pnpm add @storm-software/markdownlint -w -D"
    cwd: "workspace"

MARKDOWN_MARKDOWNLINT_DISABLE_ERRORS: false
MARKDOWN_MARKDOWNLINT_CONFIG_FILE: "./node_modules/@storm-software/markdownlint/config/.markdownlint-cli2.jsonc"
MARKDOWN_MARKDOWNLINT_PRE_COMMANDS:
  - command: "pnpm add @storm-software/markdownlint -w -D"
    cwd: "workspace"

SPELL_CSPELL_ARGUMENTS: "--gitignore --no-progress --show-suggestions"
SPELL_CSPELL_FILE_EXTENSIONS: ["*"]
SPELL_CSPELL_CONFIG_FILE: "./node_modules/@storm-software/cspell/cspell-recommended.json"
SPELL_CSPELL_PRE_COMMANDS:
  - command: "pnpm add @storm-software/cspell -w -D"
    cwd: "workspace"

YAML_YAMLLINT_CONFIG_FILE: "./node_modules/@storm-software/linting-tools/yamllint/config.yml"
YAML_YAMLLINT_PRE_COMMANDS:
  - command: "pnpm add @storm-software/linting-tools -w -D"
    cwd: "workspace"

SARIF_REPORTER: true
SHOW_ELAPSED_TIME: true
FILEIO_REPORTER: false
EMAIL_REPORTER: false
JSON_REPORTER: true

GITHUB_STATUS_REPORTER: true
GITHUB_COMMENT_REPORTER: true
