diff --git a/.automation/generated/linter-links-previews.json b/.automation/generated/linter-links-previews.json index 4a441b85d38..8ed6a1dc774 100644 --- a/.automation/generated/linter-links-previews.json +++ b/.automation/generated/linter-links-previews.json @@ -324,6 +324,11 @@ "image": null, "title": "PHP: Hypertext Preprocessor" }, + "php-cs-fixer": { + "description": "PHP Coding Standards Fixer", + "image": null, + "title": "PHP Coding Standards Fixer" + }, "phpcs": { "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards. - squizlabs/PHP_CodeSniffer", "image": "https://avatars2.githubusercontent.com/u/997547?s=400&v=4", diff --git a/.github/workflows/deploy-BETA-linters.yml b/.github/workflows/deploy-BETA-linters.yml index 20983d79c31..020817056de 100644 --- a/.github/workflows/deploy-BETA-linters.yml +++ b/.github/workflows/deploy-BETA-linters.yml @@ -132,6 +132,7 @@ jobs: "php_phpstan", "php_psalm", "php_phplint", + "php_phpcsfixer", "powershell_powershell", "powershell_powershell_formatter", "protobuf_protolint", diff --git a/.github/workflows/deploy-DEV-linters.yml b/.github/workflows/deploy-DEV-linters.yml index c5c4761cb05..43119da6d29 100644 --- a/.github/workflows/deploy-DEV-linters.yml +++ b/.github/workflows/deploy-DEV-linters.yml @@ -103,6 +103,7 @@ jobs: "php_phpstan", "php_psalm", "php_phplint", + "php_phpcsfixer", "powershell_powershell", "powershell_powershell_formatter", "protobuf_protolint", diff --git a/.github/workflows/deploy-RELEASE-linters.yml b/.github/workflows/deploy-RELEASE-linters.yml index 152cd88bfd4..f614c277eef 100644 --- a/.github/workflows/deploy-RELEASE-linters.yml +++ b/.github/workflows/deploy-RELEASE-linters.yml @@ -107,6 +107,7 @@ jobs: "php_phpstan", "php_psalm", "php_phplint", + "php_phpcsfixer", "powershell_powershell", "powershell_powershell_formatter", "protobuf_protolint", diff --git a/Dockerfile b/Dockerfile index dc263be6c96..3e6ec919fca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -640,6 +640,10 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g +# php-cs-fixer installation +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && composer global require friendsofphp/php-cs-fixer + + # powershell installation RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' diff --git a/docs/standalone-linters.md b/docs/standalone-linters.md index 7ef54968d6f..aa148e8ea28 100644 --- a/docs/standalone-linters.md +++ b/docs/standalone-linters.md @@ -1,128 +1,129 @@ # Standalone linter docker images -| Linter key | Docker image | Size | -|:----------------------------------|:------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------:| -| ACTION_ACTIONLINT | oxsecurity/megalinter-only-action_actionlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-action_actionlint/beta) | -| ANSIBLE_ANSIBLE_LINT | oxsecurity/megalinter-only-ansible_ansible_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-ansible_ansible_lint/beta) | -| API_SPECTRAL | oxsecurity/megalinter-only-api_spectral:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-api_spectral/beta) | -| ARM_ARM_TTK | oxsecurity/megalinter-only-arm_arm_ttk:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-arm_arm_ttk/beta) | -| BASH_EXEC | oxsecurity/megalinter-only-bash_exec:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bash_exec/beta) | -| BASH_SHELLCHECK | oxsecurity/megalinter-only-bash_shellcheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bash_shellcheck/beta) | -| BASH_SHFMT | oxsecurity/megalinter-only-bash_shfmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bash_shfmt/beta) | -| BICEP_BICEP_LINTER | oxsecurity/megalinter-only-bicep_bicep_linter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bicep_bicep_linter/beta) | -| C_CPPLINT | oxsecurity/megalinter-only-c_cpplint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-c_cpplint/beta) | -| C_CLANG_FORMAT | oxsecurity/megalinter-only-c_clang_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-c_clang_format/beta) | -| CLOJURE_CLJ_KONDO | oxsecurity/megalinter-only-clojure_clj_kondo:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-clojure_clj_kondo/beta) | -| CLOJURE_CLJSTYLE | oxsecurity/megalinter-only-clojure_cljstyle:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-clojure_cljstyle/beta) | -| CLOUDFORMATION_CFN_LINT | oxsecurity/megalinter-only-cloudformation_cfn_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cloudformation_cfn_lint/beta) | -| COFFEE_COFFEELINT | oxsecurity/megalinter-only-coffee_coffeelint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-coffee_coffeelint/beta) | -| COPYPASTE_JSCPD | oxsecurity/megalinter-only-copypaste_jscpd:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-copypaste_jscpd/beta) | -| CPP_CPPLINT | oxsecurity/megalinter-only-cpp_cpplint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cpp_cpplint/beta) | -| CPP_CLANG_FORMAT | oxsecurity/megalinter-only-cpp_clang_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cpp_clang_format/beta) | -| CSHARP_DOTNET_FORMAT | oxsecurity/megalinter-only-csharp_dotnet_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-csharp_dotnet_format/beta) | -| CSHARP_CSHARPIER | oxsecurity/megalinter-only-csharp_csharpier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-csharp_csharpier/beta) | -| CSHARP_ROSLYNATOR | oxsecurity/megalinter-only-csharp_roslynator:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-csharp_roslynator/beta) | -| CSS_STYLELINT | oxsecurity/megalinter-only-css_stylelint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-css_stylelint/beta) | -| CSS_SCSS_LINT | oxsecurity/megalinter-only-css_scss_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-css_scss_lint/beta) | -| DART_DARTANALYZER | oxsecurity/megalinter-only-dart_dartanalyzer:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-dart_dartanalyzer/beta) | -| DOCKERFILE_HADOLINT | oxsecurity/megalinter-only-dockerfile_hadolint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-dockerfile_hadolint/beta) | -| EDITORCONFIG_EDITORCONFIG_CHECKER | oxsecurity/megalinter-only-editorconfig_editorconfig_checker:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-editorconfig_editorconfig_checker/beta) | -| ENV_DOTENV_LINTER | oxsecurity/megalinter-only-env_dotenv_linter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-env_dotenv_linter/beta) | -| GHERKIN_GHERKIN_LINT | oxsecurity/megalinter-only-gherkin_gherkin_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-gherkin_gherkin_lint/beta) | -| GO_GOLANGCI_LINT | oxsecurity/megalinter-only-go_golangci_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-go_golangci_lint/beta) | -| GO_REVIVE | oxsecurity/megalinter-only-go_revive:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-go_revive/beta) | -| GRAPHQL_GRAPHQL_SCHEMA_LINTER | oxsecurity/megalinter-only-graphql_graphql_schema_linter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-graphql_graphql_schema_linter/beta) | -| GROOVY_NPM_GROOVY_LINT | oxsecurity/megalinter-only-groovy_npm_groovy_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-groovy_npm_groovy_lint/beta) | -| HTML_DJLINT | oxsecurity/megalinter-only-html_djlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-html_djlint/beta) | -| HTML_HTMLHINT | oxsecurity/megalinter-only-html_htmlhint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-html_htmlhint/beta) | -| JAVA_CHECKSTYLE | oxsecurity/megalinter-only-java_checkstyle:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-java_checkstyle/beta) | -| JAVA_PMD | oxsecurity/megalinter-only-java_pmd:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-java_pmd/beta) | -| JAVASCRIPT_ES | oxsecurity/megalinter-only-javascript_es:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_es/beta) | -| JAVASCRIPT_STANDARD | oxsecurity/megalinter-only-javascript_standard:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_standard/beta) | -| JAVASCRIPT_PRETTIER | oxsecurity/megalinter-only-javascript_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_prettier/beta) | -| JSON_JSONLINT | oxsecurity/megalinter-only-json_jsonlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_jsonlint/beta) | -| JSON_ESLINT_PLUGIN_JSONC | oxsecurity/megalinter-only-json_eslint_plugin_jsonc:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_eslint_plugin_jsonc/beta) | -| JSON_V8R | oxsecurity/megalinter-only-json_v8r:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_v8r/beta) | -| JSON_PRETTIER | oxsecurity/megalinter-only-json_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_prettier/beta) | -| JSON_NPM_PACKAGE_JSON_LINT | oxsecurity/megalinter-only-json_npm_package_json_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_npm_package_json_lint/beta) | -| JSX_ESLINT | oxsecurity/megalinter-only-jsx_eslint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-jsx_eslint/beta) | -| KOTLIN_KTLINT | oxsecurity/megalinter-only-kotlin_ktlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kotlin_ktlint/beta) | -| KOTLIN_DETEKT | oxsecurity/megalinter-only-kotlin_detekt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kotlin_detekt/beta) | -| KUBERNETES_KUBECONFORM | oxsecurity/megalinter-only-kubernetes_kubeconform:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kubernetes_kubeconform/beta) | -| KUBERNETES_HELM | oxsecurity/megalinter-only-kubernetes_helm:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kubernetes_helm/beta) | -| KUBERNETES_KUBESCAPE | oxsecurity/megalinter-only-kubernetes_kubescape:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kubernetes_kubescape/beta) | -| LATEX_CHKTEX | oxsecurity/megalinter-only-latex_chktex:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-latex_chktex/beta) | -| LUA_LUACHECK | oxsecurity/megalinter-only-lua_luacheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-lua_luacheck/beta) | -| MAKEFILE_CHECKMAKE | oxsecurity/megalinter-only-makefile_checkmake:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-makefile_checkmake/beta) | -| MARKDOWN_MARKDOWNLINT | oxsecurity/megalinter-only-markdown_markdownlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_markdownlint/beta) | -| MARKDOWN_REMARK_LINT | oxsecurity/megalinter-only-markdown_remark_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_remark_lint/beta) | -| MARKDOWN_MARKDOWN_LINK_CHECK | oxsecurity/megalinter-only-markdown_markdown_link_check:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_markdown_link_check/beta) | -| MARKDOWN_MARKDOWN_TABLE_FORMATTER | oxsecurity/megalinter-only-markdown_markdown_table_formatter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_markdown_table_formatter/beta) | -| OPENAPI_SPECTRAL | oxsecurity/megalinter-only-openapi_spectral:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-openapi_spectral/beta) | -| PERL_PERLCRITIC | oxsecurity/megalinter-only-perl_perlcritic:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-perl_perlcritic/beta) | -| PHP_PHPCS | oxsecurity/megalinter-only-php_phpcs:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phpcs/beta) | -| PHP_PHPSTAN | oxsecurity/megalinter-only-php_phpstan:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phpstan/beta) | -| PHP_PSALM | oxsecurity/megalinter-only-php_psalm:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_psalm/beta) | -| PHP_PHPLINT | oxsecurity/megalinter-only-php_phplint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phplint/beta) | -| POWERSHELL_POWERSHELL | oxsecurity/megalinter-only-powershell_powershell:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-powershell_powershell/beta) | -| POWERSHELL_POWERSHELL_FORMATTER | oxsecurity/megalinter-only-powershell_powershell_formatter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-powershell_powershell_formatter/beta) | -| PROTOBUF_PROTOLINT | oxsecurity/megalinter-only-protobuf_protolint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-protobuf_protolint/beta) | -| PUPPET_PUPPET_LINT | oxsecurity/megalinter-only-puppet_puppet_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-puppet_puppet_lint/beta) | -| PYTHON_PYLINT | oxsecurity/megalinter-only-python_pylint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_pylint/beta) | -| PYTHON_BLACK | oxsecurity/megalinter-only-python_black:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_black/beta) | -| PYTHON_FLAKE8 | oxsecurity/megalinter-only-python_flake8:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_flake8/beta) | -| PYTHON_ISORT | oxsecurity/megalinter-only-python_isort:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_isort/beta) | -| PYTHON_BANDIT | oxsecurity/megalinter-only-python_bandit:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_bandit/beta) | -| PYTHON_MYPY | oxsecurity/megalinter-only-python_mypy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_mypy/beta) | -| PYTHON_PYRIGHT | oxsecurity/megalinter-only-python_pyright:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_pyright/beta) | -| PYTHON_RUFF | oxsecurity/megalinter-only-python_ruff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_ruff/beta) | -| R_LINTR | oxsecurity/megalinter-only-r_lintr:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-r_lintr/beta) | -| RAKU_RAKU | oxsecurity/megalinter-only-raku_raku:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-raku_raku/beta) | -| REPOSITORY_CHECKOV | oxsecurity/megalinter-only-repository_checkov:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_checkov/beta) | -| REPOSITORY_DEVSKIM | oxsecurity/megalinter-only-repository_devskim:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_devskim/beta) | -| REPOSITORY_DUSTILOCK | oxsecurity/megalinter-only-repository_dustilock:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_dustilock/beta) | -| REPOSITORY_GIT_DIFF | oxsecurity/megalinter-only-repository_git_diff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_git_diff/beta) | -| REPOSITORY_GITLEAKS | oxsecurity/megalinter-only-repository_gitleaks:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_gitleaks/beta) | -| REPOSITORY_GRYPE | oxsecurity/megalinter-only-repository_grype:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_grype/beta) | -| REPOSITORY_KICS | oxsecurity/megalinter-only-repository_kics:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_kics/beta) | -| REPOSITORY_SECRETLINT | oxsecurity/megalinter-only-repository_secretlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_secretlint/beta) | -| REPOSITORY_SEMGREP | oxsecurity/megalinter-only-repository_semgrep:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_semgrep/beta) | -| REPOSITORY_SYFT | oxsecurity/megalinter-only-repository_syft:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_syft/beta) | -| REPOSITORY_TRIVY | oxsecurity/megalinter-only-repository_trivy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trivy/beta) | -| REPOSITORY_TRIVY_SBOM | oxsecurity/megalinter-only-repository_trivy_sbom:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trivy_sbom/beta) | -| REPOSITORY_TRUFFLEHOG | oxsecurity/megalinter-only-repository_trufflehog:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trufflehog/beta) | -| RST_RST_LINT | oxsecurity/megalinter-only-rst_rst_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rst_lint/beta) | -| RST_RSTCHECK | oxsecurity/megalinter-only-rst_rstcheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rstcheck/beta) | -| RST_RSTFMT | oxsecurity/megalinter-only-rst_rstfmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rstfmt/beta) | -| RUBY_RUBOCOP | oxsecurity/megalinter-only-ruby_rubocop:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-ruby_rubocop/beta) | -| RUST_CLIPPY | oxsecurity/megalinter-only-rust_clippy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rust_clippy/beta) | -| SALESFORCE_SFDX_SCANNER_APEX | oxsecurity/megalinter-only-salesforce_sfdx_scanner_apex:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_sfdx_scanner_apex/beta) | -| SALESFORCE_SFDX_SCANNER_AURA | oxsecurity/megalinter-only-salesforce_sfdx_scanner_aura:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_sfdx_scanner_aura/beta) | -| SALESFORCE_SFDX_SCANNER_LWC | oxsecurity/megalinter-only-salesforce_sfdx_scanner_lwc:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_sfdx_scanner_lwc/beta) | -| SALESFORCE_LIGHTNING_FLOW_SCANNER | oxsecurity/megalinter-only-salesforce_lightning_flow_scanner:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_lightning_flow_scanner/beta) | -| SCALA_SCALAFIX | oxsecurity/megalinter-only-scala_scalafix:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-scala_scalafix/beta) | -| SNAKEMAKE_LINT | oxsecurity/megalinter-only-snakemake_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-snakemake_lint/beta) | -| SNAKEMAKE_SNAKEFMT | oxsecurity/megalinter-only-snakemake_snakefmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-snakemake_snakefmt/beta) | -| SPELL_CSPELL | oxsecurity/megalinter-only-spell_cspell:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_cspell/beta) | -| SPELL_PROSELINT | oxsecurity/megalinter-only-spell_proselint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_proselint/beta) | -| SPELL_VALE | oxsecurity/megalinter-only-spell_vale:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_vale/beta) | -| SPELL_LYCHEE | oxsecurity/megalinter-only-spell_lychee:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_lychee/beta) | -| SQL_SQL_LINT | oxsecurity/megalinter-only-sql_sql_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_sql_lint/beta) | -| SQL_SQLFLUFF | oxsecurity/megalinter-only-sql_sqlfluff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_sqlfluff/beta) | -| SQL_TSQLLINT | oxsecurity/megalinter-only-sql_tsqllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_tsqllint/beta) | -| SWIFT_SWIFTLINT | oxsecurity/megalinter-only-swift_swiftlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-swift_swiftlint/beta) | -| TEKTON_TEKTON_LINT | oxsecurity/megalinter-only-tekton_tekton_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-tekton_tekton_lint/beta) | -| TERRAFORM_TFLINT | oxsecurity/megalinter-only-terraform_tflint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_tflint/beta) | -| TERRAFORM_TERRASCAN | oxsecurity/megalinter-only-terraform_terrascan:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terrascan/beta) | -| TERRAFORM_TERRAGRUNT | oxsecurity/megalinter-only-terraform_terragrunt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terragrunt/beta) | -| TERRAFORM_TERRAFORM_FMT | oxsecurity/megalinter-only-terraform_terraform_fmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terraform_fmt/beta) | -| TSX_ESLINT | oxsecurity/megalinter-only-tsx_eslint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-tsx_eslint/beta) | -| TYPESCRIPT_ES | oxsecurity/megalinter-only-typescript_es:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_es/beta) | -| TYPESCRIPT_STANDARD | oxsecurity/megalinter-only-typescript_standard:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_standard/beta) | -| TYPESCRIPT_PRETTIER | oxsecurity/megalinter-only-typescript_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_prettier/beta) | -| VBDOTNET_DOTNET_FORMAT | oxsecurity/megalinter-only-vbdotnet_dotnet_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-vbdotnet_dotnet_format/beta) | -| XML_XMLLINT | oxsecurity/megalinter-only-xml_xmllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-xml_xmllint/beta) | -| YAML_PRETTIER | oxsecurity/megalinter-only-yaml_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-yaml_prettier/beta) | -| YAML_YAMLLINT | oxsecurity/megalinter-only-yaml_yamllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-yaml_yamllint/beta) | -| YAML_V8R | oxsecurity/megalinter-only-yaml_v8r:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-yaml_v8r/beta) | +| Linter key | Docker image | Size | +| :----------| :----------- | :--: | +| ACTION_ACTIONLINT | oxsecurity/megalinter-only-action_actionlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-action_actionlint/beta) | +| ANSIBLE_ANSIBLE_LINT | oxsecurity/megalinter-only-ansible_ansible_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-ansible_ansible_lint/beta) | +| API_SPECTRAL | oxsecurity/megalinter-only-api_spectral:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-api_spectral/beta) | +| ARM_ARM_TTK | oxsecurity/megalinter-only-arm_arm_ttk:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-arm_arm_ttk/beta) | +| BASH_EXEC | oxsecurity/megalinter-only-bash_exec:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bash_exec/beta) | +| BASH_SHELLCHECK | oxsecurity/megalinter-only-bash_shellcheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bash_shellcheck/beta) | +| BASH_SHFMT | oxsecurity/megalinter-only-bash_shfmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bash_shfmt/beta) | +| BICEP_BICEP_LINTER | oxsecurity/megalinter-only-bicep_bicep_linter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-bicep_bicep_linter/beta) | +| C_CPPLINT | oxsecurity/megalinter-only-c_cpplint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-c_cpplint/beta) | +| C_CLANG_FORMAT | oxsecurity/megalinter-only-c_clang_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-c_clang_format/beta) | +| CLOJURE_CLJ_KONDO | oxsecurity/megalinter-only-clojure_clj_kondo:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-clojure_clj_kondo/beta) | +| CLOJURE_CLJSTYLE | oxsecurity/megalinter-only-clojure_cljstyle:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-clojure_cljstyle/beta) | +| CLOUDFORMATION_CFN_LINT | oxsecurity/megalinter-only-cloudformation_cfn_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cloudformation_cfn_lint/beta) | +| COFFEE_COFFEELINT | oxsecurity/megalinter-only-coffee_coffeelint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-coffee_coffeelint/beta) | +| COPYPASTE_JSCPD | oxsecurity/megalinter-only-copypaste_jscpd:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-copypaste_jscpd/beta) | +| CPP_CPPLINT | oxsecurity/megalinter-only-cpp_cpplint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cpp_cpplint/beta) | +| CPP_CLANG_FORMAT | oxsecurity/megalinter-only-cpp_clang_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cpp_clang_format/beta) | +| CSHARP_DOTNET_FORMAT | oxsecurity/megalinter-only-csharp_dotnet_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-csharp_dotnet_format/beta) | +| CSHARP_CSHARPIER | oxsecurity/megalinter-only-csharp_csharpier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-csharp_csharpier/beta) | +| CSHARP_ROSLYNATOR | oxsecurity/megalinter-only-csharp_roslynator:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-csharp_roslynator/beta) | +| CSS_STYLELINT | oxsecurity/megalinter-only-css_stylelint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-css_stylelint/beta) | +| CSS_SCSS_LINT | oxsecurity/megalinter-only-css_scss_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-css_scss_lint/beta) | +| DART_DARTANALYZER | oxsecurity/megalinter-only-dart_dartanalyzer:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-dart_dartanalyzer/beta) | +| DOCKERFILE_HADOLINT | oxsecurity/megalinter-only-dockerfile_hadolint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-dockerfile_hadolint/beta) | +| EDITORCONFIG_EDITORCONFIG_CHECKER | oxsecurity/megalinter-only-editorconfig_editorconfig_checker:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-editorconfig_editorconfig_checker/beta) | +| ENV_DOTENV_LINTER | oxsecurity/megalinter-only-env_dotenv_linter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-env_dotenv_linter/beta) | +| GHERKIN_GHERKIN_LINT | oxsecurity/megalinter-only-gherkin_gherkin_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-gherkin_gherkin_lint/beta) | +| GO_GOLANGCI_LINT | oxsecurity/megalinter-only-go_golangci_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-go_golangci_lint/beta) | +| GO_REVIVE | oxsecurity/megalinter-only-go_revive:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-go_revive/beta) | +| GRAPHQL_GRAPHQL_SCHEMA_LINTER | oxsecurity/megalinter-only-graphql_graphql_schema_linter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-graphql_graphql_schema_linter/beta) | +| GROOVY_NPM_GROOVY_LINT | oxsecurity/megalinter-only-groovy_npm_groovy_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-groovy_npm_groovy_lint/beta) | +| HTML_DJLINT | oxsecurity/megalinter-only-html_djlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-html_djlint/beta) | +| HTML_HTMLHINT | oxsecurity/megalinter-only-html_htmlhint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-html_htmlhint/beta) | +| JAVA_CHECKSTYLE | oxsecurity/megalinter-only-java_checkstyle:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-java_checkstyle/beta) | +| JAVA_PMD | oxsecurity/megalinter-only-java_pmd:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-java_pmd/beta) | +| JAVASCRIPT_ES | oxsecurity/megalinter-only-javascript_es:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_es/beta) | +| JAVASCRIPT_STANDARD | oxsecurity/megalinter-only-javascript_standard:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_standard/beta) | +| JAVASCRIPT_PRETTIER | oxsecurity/megalinter-only-javascript_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_prettier/beta) | +| JSON_JSONLINT | oxsecurity/megalinter-only-json_jsonlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_jsonlint/beta) | +| JSON_ESLINT_PLUGIN_JSONC | oxsecurity/megalinter-only-json_eslint_plugin_jsonc:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_eslint_plugin_jsonc/beta) | +| JSON_V8R | oxsecurity/megalinter-only-json_v8r:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_v8r/beta) | +| JSON_PRETTIER | oxsecurity/megalinter-only-json_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_prettier/beta) | +| JSON_NPM_PACKAGE_JSON_LINT | oxsecurity/megalinter-only-json_npm_package_json_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_npm_package_json_lint/beta) | +| JSX_ESLINT | oxsecurity/megalinter-only-jsx_eslint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-jsx_eslint/beta) | +| KOTLIN_KTLINT | oxsecurity/megalinter-only-kotlin_ktlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kotlin_ktlint/beta) | +| KOTLIN_DETEKT | oxsecurity/megalinter-only-kotlin_detekt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kotlin_detekt/beta) | +| KUBERNETES_KUBECONFORM | oxsecurity/megalinter-only-kubernetes_kubeconform:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kubernetes_kubeconform/beta) | +| KUBERNETES_HELM | oxsecurity/megalinter-only-kubernetes_helm:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kubernetes_helm/beta) | +| KUBERNETES_KUBESCAPE | oxsecurity/megalinter-only-kubernetes_kubescape:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kubernetes_kubescape/beta) | +| LATEX_CHKTEX | oxsecurity/megalinter-only-latex_chktex:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-latex_chktex/beta) | +| LUA_LUACHECK | oxsecurity/megalinter-only-lua_luacheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-lua_luacheck/beta) | +| MAKEFILE_CHECKMAKE | oxsecurity/megalinter-only-makefile_checkmake:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-makefile_checkmake/beta) | +| MARKDOWN_MARKDOWNLINT | oxsecurity/megalinter-only-markdown_markdownlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_markdownlint/beta) | +| MARKDOWN_REMARK_LINT | oxsecurity/megalinter-only-markdown_remark_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_remark_lint/beta) | +| MARKDOWN_MARKDOWN_LINK_CHECK | oxsecurity/megalinter-only-markdown_markdown_link_check:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_markdown_link_check/beta) | +| MARKDOWN_MARKDOWN_TABLE_FORMATTER | oxsecurity/megalinter-only-markdown_markdown_table_formatter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-markdown_markdown_table_formatter/beta) | +| OPENAPI_SPECTRAL | oxsecurity/megalinter-only-openapi_spectral:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-openapi_spectral/beta) | +| PERL_PERLCRITIC | oxsecurity/megalinter-only-perl_perlcritic:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-perl_perlcritic/beta) | +| PHP_PHPCS | oxsecurity/megalinter-only-php_phpcs:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phpcs/beta) | +| PHP_PHPSTAN | oxsecurity/megalinter-only-php_phpstan:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phpstan/beta) | +| PHP_PSALM | oxsecurity/megalinter-only-php_psalm:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_psalm/beta) | +| PHP_PHPLINT | oxsecurity/megalinter-only-php_phplint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phplint/beta) | +| PHP_PHPCSFIXER | oxsecurity/megalinter-only-php_phpcsfixer:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_phpcsfixer/beta) | +| POWERSHELL_POWERSHELL | oxsecurity/megalinter-only-powershell_powershell:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-powershell_powershell/beta) | +| POWERSHELL_POWERSHELL_FORMATTER | oxsecurity/megalinter-only-powershell_powershell_formatter:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-powershell_powershell_formatter/beta) | +| PROTOBUF_PROTOLINT | oxsecurity/megalinter-only-protobuf_protolint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-protobuf_protolint/beta) | +| PUPPET_PUPPET_LINT | oxsecurity/megalinter-only-puppet_puppet_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-puppet_puppet_lint/beta) | +| PYTHON_PYLINT | oxsecurity/megalinter-only-python_pylint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_pylint/beta) | +| PYTHON_BLACK | oxsecurity/megalinter-only-python_black:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_black/beta) | +| PYTHON_FLAKE8 | oxsecurity/megalinter-only-python_flake8:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_flake8/beta) | +| PYTHON_ISORT | oxsecurity/megalinter-only-python_isort:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_isort/beta) | +| PYTHON_BANDIT | oxsecurity/megalinter-only-python_bandit:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_bandit/beta) | +| PYTHON_MYPY | oxsecurity/megalinter-only-python_mypy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_mypy/beta) | +| PYTHON_PYRIGHT | oxsecurity/megalinter-only-python_pyright:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_pyright/beta) | +| PYTHON_RUFF | oxsecurity/megalinter-only-python_ruff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_ruff/beta) | +| R_LINTR | oxsecurity/megalinter-only-r_lintr:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-r_lintr/beta) | +| RAKU_RAKU | oxsecurity/megalinter-only-raku_raku:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-raku_raku/beta) | +| REPOSITORY_CHECKOV | oxsecurity/megalinter-only-repository_checkov:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_checkov/beta) | +| REPOSITORY_DEVSKIM | oxsecurity/megalinter-only-repository_devskim:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_devskim/beta) | +| REPOSITORY_DUSTILOCK | oxsecurity/megalinter-only-repository_dustilock:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_dustilock/beta) | +| REPOSITORY_GIT_DIFF | oxsecurity/megalinter-only-repository_git_diff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_git_diff/beta) | +| REPOSITORY_GITLEAKS | oxsecurity/megalinter-only-repository_gitleaks:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_gitleaks/beta) | +| REPOSITORY_GRYPE | oxsecurity/megalinter-only-repository_grype:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_grype/beta) | +| REPOSITORY_KICS | oxsecurity/megalinter-only-repository_kics:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_kics/beta) | +| REPOSITORY_SECRETLINT | oxsecurity/megalinter-only-repository_secretlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_secretlint/beta) | +| REPOSITORY_SEMGREP | oxsecurity/megalinter-only-repository_semgrep:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_semgrep/beta) | +| REPOSITORY_SYFT | oxsecurity/megalinter-only-repository_syft:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_syft/beta) | +| REPOSITORY_TRIVY | oxsecurity/megalinter-only-repository_trivy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trivy/beta) | +| REPOSITORY_TRIVY_SBOM | oxsecurity/megalinter-only-repository_trivy_sbom:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trivy_sbom/beta) | +| REPOSITORY_TRUFFLEHOG | oxsecurity/megalinter-only-repository_trufflehog:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trufflehog/beta) | +| RST_RST_LINT | oxsecurity/megalinter-only-rst_rst_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rst_lint/beta) | +| RST_RSTCHECK | oxsecurity/megalinter-only-rst_rstcheck:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rstcheck/beta) | +| RST_RSTFMT | oxsecurity/megalinter-only-rst_rstfmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rst_rstfmt/beta) | +| RUBY_RUBOCOP | oxsecurity/megalinter-only-ruby_rubocop:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-ruby_rubocop/beta) | +| RUST_CLIPPY | oxsecurity/megalinter-only-rust_clippy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-rust_clippy/beta) | +| SALESFORCE_SFDX_SCANNER_APEX | oxsecurity/megalinter-only-salesforce_sfdx_scanner_apex:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_sfdx_scanner_apex/beta) | +| SALESFORCE_SFDX_SCANNER_AURA | oxsecurity/megalinter-only-salesforce_sfdx_scanner_aura:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_sfdx_scanner_aura/beta) | +| SALESFORCE_SFDX_SCANNER_LWC | oxsecurity/megalinter-only-salesforce_sfdx_scanner_lwc:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_sfdx_scanner_lwc/beta) | +| SALESFORCE_LIGHTNING_FLOW_SCANNER | oxsecurity/megalinter-only-salesforce_lightning_flow_scanner:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-salesforce_lightning_flow_scanner/beta) | +| SCALA_SCALAFIX | oxsecurity/megalinter-only-scala_scalafix:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-scala_scalafix/beta) | +| SNAKEMAKE_LINT | oxsecurity/megalinter-only-snakemake_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-snakemake_lint/beta) | +| SNAKEMAKE_SNAKEFMT | oxsecurity/megalinter-only-snakemake_snakefmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-snakemake_snakefmt/beta) | +| SPELL_CSPELL | oxsecurity/megalinter-only-spell_cspell:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_cspell/beta) | +| SPELL_PROSELINT | oxsecurity/megalinter-only-spell_proselint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_proselint/beta) | +| SPELL_VALE | oxsecurity/megalinter-only-spell_vale:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_vale/beta) | +| SPELL_LYCHEE | oxsecurity/megalinter-only-spell_lychee:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-spell_lychee/beta) | +| SQL_SQL_LINT | oxsecurity/megalinter-only-sql_sql_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_sql_lint/beta) | +| SQL_SQLFLUFF | oxsecurity/megalinter-only-sql_sqlfluff:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_sqlfluff/beta) | +| SQL_TSQLLINT | oxsecurity/megalinter-only-sql_tsqllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-sql_tsqllint/beta) | +| SWIFT_SWIFTLINT | oxsecurity/megalinter-only-swift_swiftlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-swift_swiftlint/beta) | +| TEKTON_TEKTON_LINT | oxsecurity/megalinter-only-tekton_tekton_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-tekton_tekton_lint/beta) | +| TERRAFORM_TFLINT | oxsecurity/megalinter-only-terraform_tflint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_tflint/beta) | +| TERRAFORM_TERRASCAN | oxsecurity/megalinter-only-terraform_terrascan:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terrascan/beta) | +| TERRAFORM_TERRAGRUNT | oxsecurity/megalinter-only-terraform_terragrunt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terragrunt/beta) | +| TERRAFORM_TERRAFORM_FMT | oxsecurity/megalinter-only-terraform_terraform_fmt:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terraform_fmt/beta) | +| TSX_ESLINT | oxsecurity/megalinter-only-tsx_eslint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-tsx_eslint/beta) | +| TYPESCRIPT_ES | oxsecurity/megalinter-only-typescript_es:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_es/beta) | +| TYPESCRIPT_STANDARD | oxsecurity/megalinter-only-typescript_standard:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_standard/beta) | +| TYPESCRIPT_PRETTIER | oxsecurity/megalinter-only-typescript_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_prettier/beta) | +| VBDOTNET_DOTNET_FORMAT | oxsecurity/megalinter-only-vbdotnet_dotnet_format:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-vbdotnet_dotnet_format/beta) | +| XML_XMLLINT | oxsecurity/megalinter-only-xml_xmllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-xml_xmllint/beta) | +| YAML_PRETTIER | oxsecurity/megalinter-only-yaml_prettier:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-yaml_prettier/beta) | +| YAML_YAMLLINT | oxsecurity/megalinter-only-yaml_yamllint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-yaml_yamllint/beta) | +| YAML_V8R | oxsecurity/megalinter-only-yaml_v8r:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-yaml_v8r/beta) | diff --git a/flavors/cupcake/Dockerfile b/flavors/cupcake/Dockerfile index 0b11189bfbe..d38858dee89 100644 --- a/flavors/cupcake/Dockerfile +++ b/flavors/cupcake/Dockerfile @@ -466,6 +466,10 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g +# php-cs-fixer installation +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && composer global require friendsofphp/php-cs-fixer + + # mypy installation ENV MYPY_CACHE_DIR=/tmp diff --git a/flavors/cupcake/flavor.json b/flavors/cupcake/flavor.json index 2696c0d8d5b..1cb5658a6ff 100644 --- a/flavors/cupcake/flavor.json +++ b/flavors/cupcake/flavor.json @@ -52,6 +52,7 @@ "PHP_PHPSTAN", "PHP_PSALM", "PHP_PHPLINT", + "PHP_PHPCSFIXER", "PYTHON_PYLINT", "PYTHON_BLACK", "PYTHON_FLAKE8", diff --git a/flavors/php/Dockerfile b/flavors/php/Dockerfile index 33b1ed7caf4..e61899bb542 100644 --- a/flavors/php/Dockerfile +++ b/flavors/php/Dockerfile @@ -328,6 +328,10 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && phive --no-progress install overtrue/phplint --force-accept-unsigned -g +# php-cs-fixer installation +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && composer global require friendsofphp/php-cs-fixer + + # protolint installation # Managed with COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ diff --git a/flavors/php/flavor.json b/flavors/php/flavor.json index 280e37a4e64..057aa8d6615 100644 --- a/flavors/php/flavor.json +++ b/flavors/php/flavor.json @@ -35,10 +35,10 @@ "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PHP_PHPCS", - "PHP_PHPCSFIXER", "PHP_PHPSTAN", "PHP_PSALM", "PHP_PHPLINT", + "PHP_PHPCSFIXER", "PROTOBUF_PROTOLINT", "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", diff --git a/linters/php_phpcsfixer/Dockerfile b/linters/php_phpcsfixer/Dockerfile new file mode 100644 index 00000000000..1eb99835dbf --- /dev/null +++ b/linters/php_phpcsfixer/Dockerfile @@ -0,0 +1,255 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARGTOP__START + +#ARGTOP__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.12.3-alpine3.19 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +# Static args +ARG GITHUB_TOKEN + +#################### +# Run APK installs # +#################### + +WORKDIR / + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + git-lfs \ + libffi-dev \ + make \ + musl-dev \ + openssh \ + gnupg \ + php83 \ + php83-phar \ + php83-mbstring \ + php83-xmlwriter \ + php83-tokenizer \ + php83-ctype \ + php83-curl \ + php83-dom \ + php83-opcache \ + php83-openssl \ + php83-common \ + php83-simplexml \ + dpkg \ + && git config --global core.autocrlf true +#APK__END + +# PATH for golang & python +ENV GOROOT=/usr/lib/go \ + GOPATH=/go + # PYTHONPYCACHEPREFIX="$HOME/.cache/cpython/" NV: not working for all packages :/ +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################## +# Installs rust dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#CARGO__START + +#CARGO__END + +################################ +# Installs python dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#PIPVENV__START + +#PIPVENV__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +ENV NODE_OPTIONS="--max-old-space-size=8192" \ + NODE_ENV=production +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ + NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################## +# COPY instructions # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#COPY__START +COPY --from=composer/composer:2-bin /composer /usr/bin/composer +#COPY__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# PHP installation +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" \ + && export GITHUB_AUTH_TOKEN \ + && wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ + && wget --tries=5 -q -O phive.phar.asc https://phar.io/releases/phive.phar.asc \ + && PHAR_KEY_ID="0x6AF725270AB81E04D79442549D8A98B29B2D5D79" \ + && ( gpg --keyserver hkps://keys.openpgp.org --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver keyserver.pgp.com --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver pgp.mit.edu --recv-keys "$PHAR_KEY_ID" ) \ + && gpg --verify phive.phar.asc phive.phar \ + && chmod +x phive.phar \ + && mv phive.phar /usr/local/bin/phive \ + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php83 110 + +# Managed with COPY --from=composer/composer:2-bin /composer /usr/bin/composer +ENV PATH="/root/.composer/vendor/bin:${PATH}" + +# php-cs-fixer installation +RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GITHUB_TOKEN)" && export GITHUB_AUTH_TOKEN && composer global require friendsofphp/php-cs-fixer + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ + && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* \ + && find . | grep -E "(/__pycache__$|\.pyc$|\.pyo$)" | xargs rm -rf + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +# Copy server scripts +COPY server /server + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.io" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PHP_PHPCSFIXER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PHP_PHPCSFIXER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false \ + SARIF_TO_HUMAN=false +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/megalinter/descriptors/all_flavors.json b/megalinter/descriptors/all_flavors.json index 49fd63250a0..a7f6f3de4d6 100644 --- a/megalinter/descriptors/all_flavors.json +++ b/megalinter/descriptors/all_flavors.json @@ -141,10 +141,10 @@ "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "PHP_PHPCS", - "PHP_PHPCSFIXER", "PHP_PHPSTAN", "PHP_PSALM", "PHP_PHPLINT", + "PHP_PHPCSFIXER", "PYTHON_PYLINT", "PYTHON_BLACK", "PYTHON_FLAKE8", @@ -666,10 +666,10 @@ "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PHP_PHPCS", - "PHP_PHPCSFIXER", "PHP_PHPSTAN", "PHP_PSALM", "PHP_PHPLINT", + "PHP_PHPCSFIXER", "PROTOBUF_PROTOLINT", "REPOSITORY_CHECKOV", "REPOSITORY_GIT_DIFF", diff --git a/megalinter/tests/test_megalinter/linters/php_phpcsfixer_test.py b/megalinter/tests/test_megalinter/linters/php_phpcsfixer_test.py new file mode 100644 index 00000000000..86a6932112d --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/php_phpcsfixer_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for PHP linter php-cs-fixer +This class has been automatically @generated by .automation/build.py, please don't update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class php_phpcsfixer_test(TestCase, LinterTestRoot): + descriptor_id = "PHP" + linter_name = "php-cs-fixer"