oxsecurity / megalinter

🦙 MegaLinter analyzes 50 languages, 22 formats, 21 tooling formats, excessive copy-pastes, spelling mistakes and security issues in your repository sources with a GitHub Action, other CI tools or locally.
https://megalinter.io
GNU Affero General Public License v3.0
1.95k stars 237 forks source link

Plugin System -- How to add a new one ? #1027

Closed llaville closed 2 years ago

llaville commented 2 years ago

I'm not fan of actual Plugin System for the main reason : it can not be testable locally !

Now my question is related to my first attempt to define a plugin for PHP language. Script is available at https://github.com/llaville/phplint/blob/megalinter-plugin/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml

I've activated it locally on my project https://github.com/llaville/graph-uml

On https://github.com/llaville/graph-uml/blob/master/.mega-linter.yml, I've added the line

PLUGINS:
    - https://raw.githubusercontent.com/llaville/phplint/megalinter-plugin/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml

And try it locally with following command : sudo rm -rf report/ && time docker run -v $(pwd):/tmp/lint -e LOG_LEVEL=DEBUG megalinter/megalinter-php:v5

I've not results expected.

Plugin subsystem install it via Composer correctly Filter subsystem detect it

Run linter subsystem did not work as I'm expected

What did I missed ? Help is welcome !

mega linter v5 log ``` ---------------------------------------------------------------------------------------------------- -------------------------------------------- MegaLinter -------------------------------------------- ---------------------------------------------------------------------------------------------------- - Image Creation Date: 2021-11-15T15:24:49Z - Image Revision: 62bbbe35 - Image Version: v5 ---------------------------------------------------------------------------------------------------- The MegaLinter documentation can be found at: - https://megalinter.github.io ---------------------------------------------------------------------------------------------------- GITHUB_REPOSITORY: GITHUB_REF: GITHUB_RUN_ID: BUILD_DATE=2021-11-15T15:24:49Z BUILD_REVISION=62bbbe35 BUILD_VERSION=v5 CONFIG_REPORTER=False CONSOLE_REPORTER=True DISABLE_LINTERS=['MARKDOWN_MARKDOWN_TABLE_FORMATTER', 'MARKDOWN_MARKDOWN_LINK_CHECK', 'YAML_V8R'] EDITORCONFIG_EDITORCONFIG_CHECKER_CLI_LINT_MODE=project ENABLE=['ACTION', 'EDITORCONFIG', 'MARKDOWN', 'PHP', 'YAML'] EXCLUDED_DIRECTORIES=['.git'] GO111MODULE=on GOPATH=/go GOROOT=/usr/lib/go GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568 HOME=/root HOSTNAME=6b8d14e6c1ef IGNORE_GITIGNORED_FILES=True JSON_PRETTIER_FILTER_REGEX_EXCLUDE=(composer.json) LANG=C.UTF-8 LOG_FILE=mega-linter-v5.log LOG_LEVEL=DEBUG MARKDOWN_MARKDOWNLINT_CONFIG_FILE=.markdown-lint.json MARKDOWN_MARKDOWNLINT_FILTER_REGEX_EXCLUDE=(\.github) MEGALINTER_FLAVOR=php PATH=/node_modules/.bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/go/bin:/go/bin PHP_PHPCS_ARGUMENTS=-n PHP_PHPCS_CLI_LINT_MODE=project PHP_PHPCS_CONFIG_FILE=.phpcs.xml.dist PHP_PHPSTAN_CLI_LINT_MODE=project PHP_PHPSTAN_CONFIG_FILE=phpstan.neon.dist PHP_PSALM_CLI_LINT_MODE=project PLUGINS=['https://raw.githubusercontent.com/llaville/phplint/megalinter-plugin/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml'] PRINT_ALL_FILES=False PRINT_ALPACA=False PWD=/ PYTHONPATH=:/ PYTHON_GET_PIP_SHA256=c518250e91a70d7b20cceb15272209a4ded2a0c263ae5776f129e0d9b5674309 PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/3cb8888cc2869620f57d5d2da64da38f516078c7/public/get-pip.py PYTHON_PIP_VERSION=21.2.4 PYTHON_SETUPTOOLS_VERSION=57.5.0 PYTHON_VERSION=3.9.7 SHLVL=1 SHOW_ELAPSED_TIME=True UPDATED_SOURCES_REPORTER=False YAML_PRETTIER_FILTER_REGEX_EXCLUDE=(\.github) YAML_YAMLLINT_FILTER_REGEX_EXCLUDE=(\.github) _=/usr/local/bin/python ---------------------------------------------------------------------------------------------------- Starting new HTTPS connection (1): raw.githubusercontent.com:443 https://raw.githubusercontent.com:443 "GET /llaville/phplint/megalinter-plugin/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml HTTP/1.1" 200 480 [Plugins] Loaded plugin descriptor /megalinter-descriptors/phplint.megalinter-descriptor.yml from https://raw.githubusercontent.com/llaville/phplint/megalinter-plugin/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml [Plugins] Install command: set -eux && curl -Ls https://github.com/composer/composer/releases/latest/download/composer.phar -o /usr/local/bin/composer && chmod +x /usr/local/bin/composer [Plugins] Result (0): + curl -Ls https://github.com/composer/composer/releases/latest/download/composer.phar -o /usr/local/bin/composer + chmod +x /usr/local/bin/composer [Plugins] Install command: set -eux && git clone https://github.com/overtrue/phplint.git /usr/local/src/phplint && cd /usr/local/src/phplint && git checkout 7.4 && composer install --no-dev --prefer-dist --no-interaction --no-scripts && ln -sf /usr/local/src/phplint/bin/phplint /usr/local/bin/phplint [Plugins] Result (0): + git clone https://github.com/overtrue/phplint.git /usr/local/src/phplint Cloning into '/usr/local/src/phplint'... + cd /usr/local/src/phplint + git checkout 7.4 Branch '7.4' set up to track remote branch '7.4' from 'origin'. Switched to a new branch '7.4' + composer install --no-dev --prefer-dist --no-interaction --no-scripts No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Updating dependencies Lock file operations: 34 installs, 0 updates, 0 removals - Locking brainmaestro/composer-git-hooks (v2.8.5) - Locking composer/semver (3.2.6) - Locking composer/xdebug-handler (2.0.2) - Locking doctrine/annotations (1.13.2) - Locking doctrine/lexer (1.2.1) - Locking friendsofphp/php-cs-fixer (v2.19.3) - Locking jakub-onderka/php-console-color (v0.2) - Locking jakub-onderka/php-console-highlighter (v0.4) - Locking n98/junit-xml (1.1.0) - Locking php-cs-fixer/diff (v1.3.1) - Locking psr/cache (1.0.1) - Locking psr/container (1.1.2) - Locking psr/event-dispatcher (1.0.0) - Locking psr/log (1.1.4) - Locking symfony/console (v5.3.11) - Locking symfony/deprecation-contracts (v2.5.0) - Locking symfony/event-dispatcher (v5.3.11) - Locking symfony/event-dispatcher-contracts (v2.5.0) - Locking symfony/filesystem (v5.3.4) - Locking symfony/finder (v5.3.7) - Locking symfony/options-resolver (v5.3.7) - Locking symfony/polyfill-ctype (v1.23.0) - Locking symfony/polyfill-intl-grapheme (v1.23.1) - Locking symfony/polyfill-intl-normalizer (v1.23.0) - Locking symfony/polyfill-mbstring (v1.23.1) - Locking symfony/polyfill-php70 (v1.20.0) - Locking symfony/polyfill-php72 (v1.23.0) - Locking symfony/polyfill-php73 (v1.23.0) - Locking symfony/polyfill-php80 (v1.23.1) - Locking symfony/process (v5.3.12) - Locking symfony/service-contracts (v2.5.0) - Locking symfony/stopwatch (v5.3.4) - Locking symfony/string (v5.3.10) - Locking symfony/yaml (v5.3.11) Writing lock file Installing dependencies from lock file Package operations: 15 installs, 0 updates, 0 removals - Downloading n98/junit-xml (1.1.0) - Downloading symfony/polyfill-php80 (v1.23.1) - Downloading symfony/polyfill-mbstring (v1.23.1) - Downloading symfony/polyfill-intl-normalizer (v1.23.0) - Downloading symfony/polyfill-intl-grapheme (v1.23.1) - Downloading symfony/polyfill-ctype (v1.23.0) - Downloading symfony/string (v5.3.10) - Downloading symfony/deprecation-contracts (v2.5.0) - Downloading psr/container (1.1.2) - Downloading symfony/service-contracts (v2.5.0) - Downloading symfony/polyfill-php73 (v1.23.0) - Downloading symfony/console (v5.3.11) - Downloading symfony/finder (v5.3.7) - Downloading symfony/process (v5.3.12) - Downloading symfony/yaml (v5.3.11) 0/15 [>---------------------------] 0% 5/15 [=========>------------------] 33% 10/15 [==================>---------] 66% 15/15 [============================] 100% - Installing n98/junit-xml (1.1.0): Extracting archive - Installing symfony/polyfill-php80 (v1.23.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.23.1): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.23.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.23.1): Extracting archive - Installing symfony/polyfill-ctype (v1.23.0): Extracting archive - Installing symfony/string (v5.3.10): Extracting archive - Installing symfony/deprecation-contracts (v2.5.0): Extracting archive - Installing psr/container (1.1.2): Extracting archive - Installing symfony/service-contracts (v2.5.0): Extracting archive - Installing symfony/polyfill-php73 (v1.23.0): Extracting archive - Installing symfony/console (v5.3.11): Extracting archive - Installing symfony/finder (v5.3.7): Extracting archive - Installing symfony/process (v5.3.12): Extracting archive - Installing symfony/yaml (v5.3.11): Extracting archive 0/15 [>---------------------------] 0% 10/15 [==================>---------] 66% 15/15 [============================] 100% 11 package suggestions were added by new dependencies, use `composer suggest` to see details. Package jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead. Package jakub-onderka/php-console-highlighter is abandoned, you should avoid using it. Use php-parallel-lint/php-console-highlighter instead. Generating autoload files 13 packages you are using are looking for funding. Use the `composer fund` command to find out more! + ln -sf /usr/local/src/phplint/bin/phplint /usr/local/bin/phplint [Plugins] Successful initialization of PHP plugins [Pre] No commands declared in user configuration Skipped linters: ANSIBLE_ANSIBLE_LINT, ARM_ARM_TTK, BASH_EXEC, BASH_SHELLCHECK, BASH_SHFMT, CLOJURE_CLJ_KONDO, CLOUDFORMATION_CFN_LINT, COFFEE_COFFEELINT, COPYPASTE_JSCPD, CPP_CPPLINT, CREDENTIALS_SECRETLINT, CSHARP_DOTNET_FORMAT, CSS_SCSS_LINT, CSS_STYLELINT, C_CPPLINT, DART_DARTANALYZER, DOCKERFILE_DOCKERFILELINT, DOCKERFILE_HADOLINT, ENV_DOTENV_LINTER, GHERKIN_GHERKIN_LINT, GIT_GIT_DIFF, GO_GOLANGCI_LINT, GO_REVIVE, GRAPHQL_GRAPHQL_SCHEMA_LINTER, GROOVY_NPM_GROOVY_LINT, HTML_HTMLHINT, JAVASCRIPT_ES, JAVASCRIPT_PRETTIER, JAVASCRIPT_STANDARD, JAVA_CHECKSTYLE, JSON_ESLINT_PLUGIN_JSONC, JSON_JSONLINT, JSON_PRETTIER, JSON_V8R, JSX_ESLINT, KOTLIN_KTLINT, KUBERNETES_KUBEVAL, LATEX_CHKTEX, LUA_LUACHECK, MARKDOWN_MARKDOWN_LINK_CHECK, MARKDOWN_MARKDOWN_TABLE_FORMATTER, MARKDOWN_REMARK_LINT, OPENAPI_SPECTRAL, PERL_PERLCRITIC, POWERSHELL_POWERSHELL, PROTOBUF_PROTOLINT, PUPPET_PUPPET_LINT, PYTHON_BANDIT, PYTHON_BLACK, PYTHON_FLAKE8, PYTHON_ISORT, PYTHON_MYPY, PYTHON_PYLINT, RAKU_RAKU, RST_RSTCHECK, RST_RSTFMT, RST_RST_LINT, RUBY_RUBOCOP, RUST_CLIPPY, R_LINTR, SALESFORCE_SFDX_SCANNER_APEX, SALESFORCE_SFDX_SCANNER_AURA, SALESFORCE_SFDX_SCANNER_LWC, SCALA_SCALAFIX, SNAKEMAKE_LINT, SNAKEMAKE_SNAKEFMT, SPELL_CSPELL, SPELL_MISSPELL, SQL_SQLFLUFF, SQL_SQL_LINT, SQL_TSQLLINT, SWIFT_SWIFTLINT, TEKTON_TEKTON_LINT, TERRAFORM_CHECKOV, TERRAFORM_KICS, TERRAFORM_TERRAFORM_FMT, TERRAFORM_TERRAGRUNT, TERRAFORM_TERRASCAN, TERRAFORM_TFLINT, TSX_ESLINT, TYPESCRIPT_ES, TYPESCRIPT_PRETTIER, TYPESCRIPT_STANDARD, VBDOTNET_DOTNET_FORMAT, XML_XMLLINT, YAML_V8R To receive reports as email, please set variable EMAIL_REPORTER_EMAIL Listing all files in directory [/tmp/lint], then filter with: Root dir content: - /tmp/lint/.editorconfig - /tmp/lint/.gitignore - /tmp/lint/.mega-linter.yml - /tmp/lint/.phpunit.result.cache - /tmp/lint/CHANGELOG.md - /tmp/lint/LICENSE - /tmp/lint/README.md - /tmp/lint/composer.json - /tmp/lint/composer.lock - /tmp/lint/mkdocs.yml - /tmp/lint/phpunit.xml.dist All found files before filtering: - /tmp/lint/.editorconfig - /tmp/lint/.github/linters/.ecrc - /tmp/lint/.github/linters/.phpcs.xml.dist - /tmp/lint/.github/linters/phpstan.neon.dist - /tmp/lint/.github/linters/psalm.xml - /tmp/lint/.github/workflows/gh-pages.yml - /tmp/lint/.github/workflows/mega-linter.yml - /tmp/lint/.gitignore - /tmp/lint/.idea/.gitignore - /tmp/lint/.idea/graph-uml.iml - /tmp/lint/.idea/modules.xml - /tmp/lint/.idea/php.xml - /tmp/lint/.idea/vcs.xml - /tmp/lint/.idea/workspace.xml - /tmp/lint/.mega-linter.yml - /tmp/lint/.phpunit.result.cache - /tmp/lint/CHANGELOG.md - /tmp/lint/LICENSE - /tmp/lint/README.md - /tmp/lint/composer.json - /tmp/lint/composer.lock - /tmp/lint/docs/01_Features/Formatters.md - /tmp/lint/docs/01_Features/Generators.md - /tmp/lint/docs/01_Features/Options.md - /tmp/lint/docs/02_Cookbook/Multiple_Classes.md - /tmp/lint/docs/02_Cookbook/Php_Extensions.md - /tmp/lint/docs/02_Cookbook/Single_Class.md - /tmp/lint/docs/02_Cookbook/multiple_classes.graphviz.png - /tmp/lint/docs/02_Cookbook/multiple_classes.html.gv - /tmp/lint/docs/02_Cookbook/php_extensions.graphviz.png - /tmp/lint/docs/02_Cookbook/php_extensions.html.gv - /tmp/lint/docs/02_Cookbook/single_class.graphviz.png - /tmp/lint/docs/02_Cookbook/single_class.record.gv - /tmp/lint/docs/app.png - /tmp/lint/docs/app2.png - /tmp/lint/docs/getting-started.md - /tmp/lint/docs/graph-composer.svg - /tmp/lint/docs/index.md - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/mkdocs.yml - /tmp/lint/patches/graph-graphviz_add_subgraph_cluster-42.patch - /tmp/lint/phpunit.xml.dist - /tmp/lint/report/mega-linter-v5.log - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php - /tmp/lint/vendor/autoload.php - /tmp/lint/vendor/composer/ClassLoader.php - /tmp/lint/vendor/composer/InstalledVersions.php - /tmp/lint/vendor/composer/LICENSE - /tmp/lint/vendor/composer/autoload_classmap.php - /tmp/lint/vendor/composer/autoload_namespaces.php - /tmp/lint/vendor/composer/autoload_psr4.php - /tmp/lint/vendor/composer/autoload_real.php - /tmp/lint/vendor/composer/autoload_static.php - /tmp/lint/vendor/composer/installed.json - /tmp/lint/vendor/composer/installed.php - /tmp/lint/vendor/composer/platform_check.php - /tmp/lint/vendor/cweagans/composer-patches/.editorconfig - /tmp/lint/vendor/cweagans/composer-patches/.gitignore - /tmp/lint/vendor/cweagans/composer-patches/LICENSE.md - /tmp/lint/vendor/cweagans/composer-patches/README.md - /tmp/lint/vendor/cweagans/composer-patches/composer.json - /tmp/lint/vendor/cweagans/composer-patches/composer.lock - /tmp/lint/vendor/cweagans/composer-patches/phpunit.xml.dist - /tmp/lint/vendor/cweagans/composer-patches/src/PatchEvent.php - /tmp/lint/vendor/cweagans/composer-patches/src/PatchEvents.php - /tmp/lint/vendor/cweagans/composer-patches/src/Patches.php - /tmp/lint/vendor/cweagans/composer-patches/tests/PatchEventTest.php - /tmp/lint/vendor/graphp/graph/.gitattributes - /tmp/lint/vendor/graphp/graph/.github/FUNDING.yml - /tmp/lint/vendor/graphp/graph/.github/workflows/ci.yml - /tmp/lint/vendor/graphp/graph/.gitignore - /tmp/lint/vendor/graphp/graph/CHANGELOG.md - /tmp/lint/vendor/graphp/graph/LICENSE - /tmp/lint/vendor/graphp/graph/README.md - /tmp/lint/vendor/graphp/graph/composer.json - /tmp/lint/vendor/graphp/graph/phpunit.xml.dist - /tmp/lint/vendor/graphp/graph/phpunit.xml.legacy - /tmp/lint/vendor/graphp/graph/src/Edge.php - /tmp/lint/vendor/graphp/graph/src/EdgeDirected.php - /tmp/lint/vendor/graphp/graph/src/EdgeUndirected.php - /tmp/lint/vendor/graphp/graph/src/Entity.php - /tmp/lint/vendor/graphp/graph/src/Graph.php - /tmp/lint/vendor/graphp/graph/src/Vertex.php - /tmp/lint/vendor/graphp/graph/src/Walk.php - /tmp/lint/vendor/graphp/graph/tests/EdgeDirectedTest.php - /tmp/lint/vendor/graphp/graph/tests/EdgeTest.php - /tmp/lint/vendor/graphp/graph/tests/EdgeUndirectedTest.php - /tmp/lint/vendor/graphp/graph/tests/EntityTest.php - /tmp/lint/vendor/graphp/graph/tests/GraphTest.php - /tmp/lint/vendor/graphp/graph/tests/TestCase.php - /tmp/lint/vendor/graphp/graph/tests/VertexTest.php - /tmp/lint/vendor/graphp/graph/tests/WalkTest.php - /tmp/lint/vendor/graphp/graphviz/.gitattributes - /tmp/lint/vendor/graphp/graphviz/.github/workflows/ci.yml - /tmp/lint/vendor/graphp/graphviz/.gitignore - /tmp/lint/vendor/graphp/graphviz/CHANGELOG.md - /tmp/lint/vendor/graphp/graphviz/LICENSE - /tmp/lint/vendor/graphp/graphviz/PATCHES.txt - /tmp/lint/vendor/graphp/graphviz/README.md - /tmp/lint/vendor/graphp/graphviz/composer.json - /tmp/lint/vendor/graphp/graphviz/examples/01-simple.php - /tmp/lint/vendor/graphp/graphviz/examples/01-simple.png - /tmp/lint/vendor/graphp/graphviz/examples/02-html.php - /tmp/lint/vendor/graphp/graphviz/examples/02-html.png - /tmp/lint/vendor/graphp/graphviz/examples/11-uml-html.php - /tmp/lint/vendor/graphp/graphviz/examples/11-uml-html.png - /tmp/lint/vendor/graphp/graphviz/examples/12-uml-records.php - /tmp/lint/vendor/graphp/graphviz/examples/12-uml-records.png - /tmp/lint/vendor/graphp/graphviz/examples/13-record-ports.php - /tmp/lint/vendor/graphp/graphviz/examples/13-record-ports.png - /tmp/lint/vendor/graphp/graphviz/phpunit.xml.dist - /tmp/lint/vendor/graphp/graphviz/phpunit.xml.legacy - /tmp/lint/vendor/graphp/graphviz/src/Dot.php - /tmp/lint/vendor/graphp/graphviz/src/GraphViz.php - /tmp/lint/vendor/graphp/graphviz/src/Image.php - /tmp/lint/vendor/graphp/graphviz/tests/GraphVizTest.php - File extensions: *, .md, .php, .yaml, .yml Popen(['git', 'ls-files', '--exclude-standard', '--ignored', '--others', '--cached'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) - Excluding .gitignored files [26]: /tmp/lint/.gitignore, /tmp/lint/.idea/.gitignore, /tmp/lint/.idea/graph-uml.iml, /tmp/lint/.idea/modules.xml, /tmp/lint/.idea/php.xml, /tmp/lint/.idea/vcs.xml, /tmp/lint/.idea/workspace.xml, /tmp/lint/.phpunit.result.cache, /tmp/lint/composer.lock, /tmp/lint/patches/graph-graphviz_add_subgraph_cluster-42.patch, /tmp/lint/report/mega-linter-v5.log, /tmp/lint/vendor/autoload.php, /tmp/lint/vendor/composer/ClassLoader.php, /tmp/lint/vendor/composer/InstalledVersions.php, /tmp/lint/vendor/composer/LICENSE, /tmp/lint/vendor/composer/autoload_classmap.php, /tmp/lint/vendor/composer/autoload_namespaces.php, /tmp/lint/vendor/composer/autoload_psr4.php, /tmp/lint/vendor/composer/autoload_real.php, /tmp/lint/vendor/composer/autoload_static.php, /tmp/lint/vendor/composer/installed.json, /tmp/lint/vendor/composer/installed.php, /tmp/lint/vendor/composer/platform_check.php, /tmp/lint/vendor/cweagans/composer-patches/**, /tmp/lint/vendor/graphp/graph/**, /tmp/lint/vendor/graphp/graphviz/** Kept [46] files on [129] found files Kept files before applying linter filters: - /tmp/lint/.editorconfig - /tmp/lint/.github/linters/.ecrc - /tmp/lint/.github/linters/.phpcs.xml.dist - /tmp/lint/.github/linters/phpstan.neon.dist - /tmp/lint/.github/linters/psalm.xml - /tmp/lint/.github/workflows/gh-pages.yml - /tmp/lint/.github/workflows/mega-linter.yml - /tmp/lint/.mega-linter.yml - /tmp/lint/CHANGELOG.md - /tmp/lint/LICENSE - /tmp/lint/README.md - /tmp/lint/composer.json - /tmp/lint/docs/01_Features/Formatters.md - /tmp/lint/docs/01_Features/Generators.md - /tmp/lint/docs/01_Features/Options.md - /tmp/lint/docs/02_Cookbook/Multiple_Classes.md - /tmp/lint/docs/02_Cookbook/Php_Extensions.md - /tmp/lint/docs/02_Cookbook/Single_Class.md - /tmp/lint/docs/02_Cookbook/multiple_classes.graphviz.png - /tmp/lint/docs/02_Cookbook/multiple_classes.html.gv - /tmp/lint/docs/02_Cookbook/php_extensions.graphviz.png - /tmp/lint/docs/02_Cookbook/php_extensions.html.gv - /tmp/lint/docs/02_Cookbook/single_class.graphviz.png - /tmp/lint/docs/02_Cookbook/single_class.record.gv - /tmp/lint/docs/app.png - /tmp/lint/docs/app2.png - /tmp/lint/docs/getting-started.md - /tmp/lint/docs/graph-composer.svg - /tmp/lint/docs/index.md - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/mkdocs.yml - /tmp/lint/phpunit.xml.dist - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'ACTION_ACTIONLINT', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': '.github/workflows', 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.yml', '.yaml'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} ACTION_ACTIONLINT linter kept 2 files after applying linter filters: - /tmp/lint/.github/workflows/gh-pages.yml - /tmp/lint/.github/workflows/mega-linter.yml [Filters] {'name': 'EDITORCONFIG_EDITORCONFIG_CHECKER', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['*'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} EDITORCONFIG_EDITORCONFIG_CHECKER linter kept 46 files after applying linter filters: - /tmp/lint/.editorconfig - /tmp/lint/.github/linters/.ecrc - /tmp/lint/.github/linters/.phpcs.xml.dist - /tmp/lint/.github/linters/phpstan.neon.dist - /tmp/lint/.github/linters/psalm.xml - /tmp/lint/.github/workflows/gh-pages.yml - /tmp/lint/.github/workflows/mega-linter.yml - /tmp/lint/.mega-linter.yml - /tmp/lint/CHANGELOG.md - /tmp/lint/LICENSE - /tmp/lint/README.md - /tmp/lint/composer.json - /tmp/lint/docs/01_Features/Formatters.md - /tmp/lint/docs/01_Features/Generators.md - /tmp/lint/docs/01_Features/Options.md - /tmp/lint/docs/02_Cookbook/Multiple_Classes.md - /tmp/lint/docs/02_Cookbook/Php_Extensions.md - /tmp/lint/docs/02_Cookbook/Single_Class.md - /tmp/lint/docs/02_Cookbook/multiple_classes.graphviz.png - /tmp/lint/docs/02_Cookbook/multiple_classes.html.gv - /tmp/lint/docs/02_Cookbook/php_extensions.graphviz.png - /tmp/lint/docs/02_Cookbook/php_extensions.html.gv - /tmp/lint/docs/02_Cookbook/single_class.graphviz.png - /tmp/lint/docs/02_Cookbook/single_class.record.gv - /tmp/lint/docs/app.png - /tmp/lint/docs/app2.png - /tmp/lint/docs/getting-started.md - /tmp/lint/docs/graph-composer.svg - /tmp/lint/docs/index.md - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/mkdocs.yml - /tmp/lint/phpunit.xml.dist - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'MARKDOWN_MARKDOWNLINT', 'filter_regex_include': None, 'filter_regex_exclude': '(\\.github)', 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.md'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} MARKDOWN_MARKDOWNLINT linter kept 10 files after applying linter filters: - /tmp/lint/CHANGELOG.md - /tmp/lint/README.md - /tmp/lint/docs/01_Features/Formatters.md - /tmp/lint/docs/01_Features/Generators.md - /tmp/lint/docs/01_Features/Options.md - /tmp/lint/docs/02_Cookbook/Multiple_Classes.md - /tmp/lint/docs/02_Cookbook/Php_Extensions.md - /tmp/lint/docs/02_Cookbook/Single_Class.md - /tmp/lint/docs/getting-started.md - /tmp/lint/docs/index.md [Filters] {'name': 'PHP_BUILTIN', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.php'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} PHP_BUILTIN linter kept 15 files after applying linter filters: - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'PHP_PHPCS', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.php'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} PHP_PHPCS linter kept 15 files after applying linter filters: - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'PHP_PHPSTAN', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.php'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} PHP_PHPSTAN linter kept 15 files after applying linter filters: - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'PHP_PSALM', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.php'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} PHP_PSALM linter kept 15 files after applying linter filters: - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'PHP_PHPLINT', 'filter_regex_include': None, 'filter_regex_exclude': None, 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.php'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} PHP_PHPLINT linter kept 15 files after applying linter filters: - /tmp/lint/examples/graphuml-architecture/graphviz.php - /tmp/lint/examples/php-extensions/graphviz.php - /tmp/lint/examples/single-class/graphviz.php - /tmp/lint/examples/without-elements/graphviz.php - /tmp/lint/src/ClassDiagramBuilder.php - /tmp/lint/src/ClassDiagramBuilderInterface.php - /tmp/lint/src/Formatter/AbstractFormatter.php - /tmp/lint/src/Formatter/FormatterInterface.php - /tmp/lint/src/Formatter/HtmlFormatter.php - /tmp/lint/src/Formatter/RecordFormatter.php - /tmp/lint/src/Generator/AbstractGenerator.php - /tmp/lint/src/Generator/GeneratorInterface.php - /tmp/lint/src/Generator/GraphVizGenerator.php - /tmp/lint/tests/ClassDiagramBuilderTest.php - /tmp/lint/tests/bootstrap.php [Filters] {'name': 'YAML_PRETTIER', 'filter_regex_include': None, 'filter_regex_exclude': '(\\.github)', 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.yml', '.yaml'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} YAML_PRETTIER linter kept 2 files after applying linter filters: - /tmp/lint/.mega-linter.yml - /tmp/lint/mkdocs.yml [Filters] {'name': 'YAML_YAMLLINT', 'filter_regex_include': None, 'filter_regex_exclude': '(\\.github)', 'files_sub_directory': None, 'lint_all_files': False, 'lint_all_other_linters_files': False, 'file_extensions': ['.yml', '.yaml'], 'file_names_regex': [], 'file_names_not_ends_with': [], 'file_contains_regex': []} YAML_YAMLLINT linter kept 2 files after applying linter filters: - /tmp/lint/.mega-linter.yml - /tmp/lint/mkdocs.yml +----MATCHING LINTERS-----------------+------------+----------------+------------+ | Descriptor | Linter | Criteria | Matching files | Format/Fix | +--------------+----------------------+------------+----------------+------------+ | ACTION | actionlint | .yml|.yaml | 2 | no | | EDITORCONFIG | editorconfig-checker | * | project | no | | MARKDOWN | markdownlint | .md | 10 | no | | PHP | php | .php | 15 | no | | PHP | phpcs | .php | project | no | | PHP | phpstan | .php | project | no | | PHP | psalm | .php | project | no | | PHP | phplint | .php | 15 | no | | YAML | prettier | .yml|.yaml | 2 | no | | YAML | yamllint | .yml|.yaml | 2 | no | +--------------+----------------------+------------+----------------+------------+ MegaLinter flavor [php] does not contain linters PHP_PHPLINT. As they are not available in this docker image, they will not be processed To solve this problem, please either: - use default flavor megalinter/megalinter - add ignored linters in DISABLE or DISABLE_LINTERS variables in your .mega-linter.yml config file located in your root directory - ignore this message by setting config variable FLAVOR_SUGGESTIONS to false ACTION: ['actionlint'] EDITORCONFIG: ['editorconfig-checker'] MARKDOWN: ['markdownlint'] PHP: ['php'] PHP: ['phpcs'] PHP: ['phpstan'] PHP: ['psalm'] [actionlint] command: ['actionlint', '/tmp/lint/.github/workflows/gh-pages.yml', '/tmp/lint/.github/workflows/mega-linter.yml'] YAML: ['prettier'] YAML: ['yamllint'] [actionlint] CWD: / [editorconfig-checker] command: ['editorconfig-checker', '-config', '/tmp/lint/.github/linters/.ecrc'] [editorconfig-checker] CWD: /tmp/lint [markdownlint] command: ['markdownlint', '-c', '/action/lib/.automation/.markdown-lint.json', '/tmp/lint/CHANGELOG.md', '/tmp/lint/README.md', '/tmp/lint/docs/01_Features/Formatters.md', '/tmp/lint/docs/01_Features/Generators.md', '/tmp/lint/docs/01_Features/Options.md', '/tmp/lint/docs/02_Cookbook/Multiple_Classes.md', '/tmp/lint/docs/02_Cookbook/Php_Extensions.md', '/tmp/lint/docs/02_Cookbook/Single_Class.md', '/tmp/lint/docs/getting-started.md', '/tmp/lint/docs/index.md'] [php] command: ['php', '-l', '/tmp/lint/examples/graphuml-architecture/graphviz.php'] [markdownlint] CWD: / [php] CWD: / [phpcs] command: ['phpcs', '-n', '--standard=/tmp/lint/.github/linters/.phpcs.xml.dist'] [phpcs] CWD: /tmp/lint [prettier] command: ['prettier', '--check', '/tmp/lint/.mega-linter.yml', '/tmp/lint/mkdocs.yml'] [yamllint] command: ['yamllint', '-c', '/action/lib/.automation/.yamllint.yml', '/tmp/lint/.mega-linter.yml', '/tmp/lint/mkdocs.yml'] [psalm] command: ['psalm', '--config=/tmp/lint/.github/linters/psalm.xml'] [prettier] CWD: / [yamllint] CWD: / [psalm] CWD: /tmp/lint [phpstan] command: ['phpstan', 'analyse', '--no-progress', '--no-ansi', '--memory-limit', '1G', '-c', '/tmp/lint/.github/linters/phpstan.neon.dist'] [phpstan] CWD: /tmp/lint [actionlint] result: 0 Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] result: 0 No syntax errors detected in /tmp/lint/examples/graphuml-architecture/graphviz.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Linter version command: ['/go/bin/actionlint', '-version'] Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) Linter version result: 0 v1.6.8 installed by building from source built with go1.15.15 compiler for linux/amd64 ### Processed [ACTION] files - Using [actionlint v1.6.8] https://rhysd.github.io/actionlint/ - MegaLinter key: [ACTION_ACTIONLINT] - Rules config: identified by [actionlint] - Number of files analyzed: [2] ✅ Linted [ACTION] files with [actionlint] successfully - (0.06s) Skipped post of Github Status for ACTION with actionlint [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-ACTION_ACTIONLINT.log [php] command: ['php', '-l', '/tmp/lint/examples/php-extensions/graphviz.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/examples/php-extensions/graphviz.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/examples/single-class/graphviz.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/examples/single-class/graphviz.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/examples/without-elements/graphviz.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/examples/without-elements/graphviz.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/ClassDiagramBuilder.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/ClassDiagramBuilder.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [yamllint] result: 0 /tmp/lint/.mega-linter.yml 1:1 warning missing document start "---" (document-start) 19:36 warning too few spaces before comment (comments) 25:51 warning too few spaces before comment (comments) 26:51 warning too few spaces before comment (comments) 29:2 warning missing starting space in comment (comments) /tmp/lint/mkdocs.yml 4:49 warning too few spaces before comment (comments) 6:14 warning too few spaces before comment (comments) 9:14 warning too few spaces before comment (comments) 20:9 warning comment not indented like content (comments-indentation) 22:30 warning too few spaces before comment (comments) 23:27 warning too few spaces before comment (comments) 24:30 warning too few spaces before comment (comments) 25:26 warning too few spaces before comment (comments) 27:26 warning too few spaces before comment (comments) 28:28 warning too few spaces before comment (comments) Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) [php] command: ['php', '-l', '/tmp/lint/src/ClassDiagramBuilderInterface.php'] [php] CWD: / Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) Linter version command: ['/usr/local/bin/yamllint', '--version'] [php] result: 0 No syntax errors detected in /tmp/lint/src/ClassDiagramBuilderInterface.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/Formatter/AbstractFormatter.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/Formatter/AbstractFormatter.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/Formatter/FormatterInterface.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/Formatter/FormatterInterface.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/Formatter/HtmlFormatter.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/Formatter/HtmlFormatter.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Linter version result: 0 yamllint 1.26.3 ### Processed [YAML] files - Using [yamllint v1.26.3] https://yamllint.readthedocs.io/ - MegaLinter key: [YAML_YAMLLINT] - Rules config: [.yamllint.yml] - Number of files analyzed: [2] ✅ Linted [YAML] files with [yamllint] successfully - (0.28s) Skipped post of Github Status for YAML with yamllint [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-YAML_YAMLLINT.log Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/Formatter/RecordFormatter.php'] [php] CWD: / [markdownlint] result: 0 Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) [php] result: 0 No syntax errors detected in /tmp/lint/src/Formatter/RecordFormatter.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) [phpcs] result: 0 Linter version command: ['/usr/local/bin/phpcs', '--version'] Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) Linter version command: ['/node_modules/.bin/markdownlint', '--version'] [php] command: ['php', '-l', '/tmp/lint/src/Generator/AbstractGenerator.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/Generator/AbstractGenerator.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Linter version result: 0 PHP_CodeSniffer version 3.6.1 (stable) by Squiz (http://www.squiz.net) ### Processed [PHP] files - Using [phpcs v3.6.1] https://github.com/squizlabs/PHP_CodeSniffer - MegaLinter key: [PHP_PHPCS] - Rules config: [.github/linters/.phpcs.xml.dist] ✅ Linted [PHP] files with [phpcs] successfully - (0.48s) Skipped post of Github Status for PHP with phpcs [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-PHP_PHPCS.log Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/Generator/GeneratorInterface.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/Generator/GeneratorInterface.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/src/Generator/GraphVizGenerator.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/src/Generator/GraphVizGenerator.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/tests/ClassDiagramBuilderTest.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/tests/ClassDiagramBuilderTest.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) [php] command: ['php', '-l', '/tmp/lint/tests/bootstrap.php'] [php] CWD: / [php] result: 0 No syntax errors detected in /tmp/lint/tests/bootstrap.php Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) Linter version command: ['/usr/bin/php', '--version'] Linter version result: 0 PHP 7.4.25 (cli) (built: Oct 26 2021 14:26:43) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies ### Processed [PHP] files - Using [php v7.4.25] https://www.php.net - MegaLinter key: [PHP_BUILTIN] - Rules config: identified by [php] - Number of files analyzed: [15] ✅ Linted [PHP] files with [php] successfully - (0.68s) Skipped post of Github Status for PHP with php [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-PHP_BUILTIN.log Linter version result: 0 0.29.0 ### Processed [MARKDOWN] files - Using [markdownlint v0.29.0] https://github.com/DavidAnson/markdownlint - MegaLinter key: [MARKDOWN_MARKDOWNLINT] - Rules config: [.markdown-lint.json] - Number of files analyzed: [10] ✅ Linted [MARKDOWN] files with [markdownlint] successfully - (0.49s) Skipped post of Github Status for MARKDOWN with markdownlint [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-MARKDOWN_MARKDOWNLINT.log [psalm] result: 0 Scanning files... Analyzing files... ░░░░░░░░░ ------------------------------ No errors found! ------------------------------ 17 other issues found. You can display them with --show-info=true ------------------------------ Checks took 1.06 seconds and used 56.687MB of memory Psalm was able to infer types for 99.1935% of the codebase Linter version command: ['/usr/local/bin/psalm', '--version'] Linter version result: 0 Psalm 4.x-dev@ ### Processed [PHP] files - Using [psalm vPsalm.4.x-dev@] https://psalm.dev - MegaLinter key: [PHP_PSALM] - Rules config: [.github/linters/psalm.xml] ✅ Linted [PHP] files with [psalm] successfully - (1.26s) Skipped post of Github Status for PHP with psalm [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-PHP_PSALM.log [prettier] result: 0 Checking formatting... All matched files use Prettier code style! Popen(['git', 'diff', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=None) Popen(['git', 'cat-file', '--batch-check'], cwd=/tmp/lint, universal_newlines=False, shell=None, istream=) Linter version command: ['/node_modules/.bin/prettier', '--version'] Linter version result: 0 2.4.1 ### Processed [YAML] files - Using [prettier v2.4.1] https://prettier.io/ - MegaLinter key: [YAML_PRETTIER] - Rules config: identified by [prettier] - Number of files analyzed: [2] ✅ Linted [YAML] files with [prettier] successfully - (1.42s) Skipped post of Github Status for YAML with prettier [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-YAML_PRETTIER.log [phpstan] result: 0 [OK] No errors Linter version command: ['/usr/local/bin/phpstan', '--version'] Linter version result: 0 PHPStan - PHP Static Analysis Tool 1.1.2 ### Processed [PHP] files - Using [phpstan v1.1.2] https://phpstan.org/ - MegaLinter key: [PHP_PHPSTAN] - Rules config: [.github/linters/phpstan.neon.dist] ✅ Linted [PHP] files with [phpstan] successfully - (2.48s) Skipped post of Github Status for PHP with phpstan [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-PHP_PHPSTAN.log [editorconfig-checker] result: 0 Linter version command: ['/node_modules/.bin/editorconfig-checker', '-version'] Linter version result: 0 2.3.5 ### Processed [EDITORCONFIG] files - Using [editorconfig-checker v2.3.5] https://editorconfig-checker.github.io/ - MegaLinter key: [EDITORCONFIG_EDITORCONFIG_CHECKER] - Rules config: [.github/linters/.ecrc] ✅ Linted [EDITORCONFIG] files with [editorconfig-checker] successfully - (5.23s) Skipped post of Github Status for EDITORCONFIG with editorconfig-checker [Text Reporter] Generated TEXT report: /tmp/lint/report/linters_logs/SUCCESS-EDITORCONFIG_EDITORCONFIG_CHECKER.log [Post] No commands declared in user configuration +----SUMMARY------+----------------------+---------------+-------+-------+--------+--------------+ | Descriptor | Linter | Mode | Files | Fixed | Errors | Elapsed time | +-----------------+----------------------+---------------+-------+-------+--------+--------------+ | ✅ ACTION | actionlint | list_of_files | 2 | | 0 | 0.06s | | ✅ EDITORCONFIG | editorconfig-checker | project | n/a | | 0 | 5.23s | | ✅ MARKDOWN | markdownlint | list_of_files | 10 | | 0 | 0.49s | | ✅ PHP | php | file | 15 | | 0 | 0.68s | | ✅ PHP | phpcs | project | n/a | | 0 | 0.48s | | ✅ PHP | phpstan | project | n/a | | 0 | 2.48s | | ✅ PHP | psalm | project | n/a | | 0 | 1.26s | | ✅ YAML | prettier | list_of_files | 2 | | 0 | 1.42s | | ✅ YAML | yamllint | list_of_files | 2 | | 0 | 0.28s | +-----------------+----------------------+---------------+-------+-------+--------+--------------+ [GitHub Comment Reporter] No GitHub Token found, so skipped post of PR comment ✅ Successfully linted all files without errors Cleared MegaLinter runtime config ```
llaville commented 2 years ago

When I read in log

MegaLinter flavor [php] does not contain linters PHP_PHPLINT.
As they are not available in this docker image, they will not be processed
To solve this problem, please either: 
- use default flavor megalinter/megalinter
- add ignored linters in DISABLE or DISABLE_LINTERS variables in your .mega-linter.yml config file located in your root directory
- ignore this message by setting config variable FLAVOR_SUGGESTIONS to false

I've tried to add both

FAIL_IF_MISSING_LINTER_IN_FLAVOR: false
FLAVOR_SUGGESTIONS: false

But nothing happend. Always the warning message is displayed

https://github.com/megalinter/megalinter/blob/v5.2.0/megalinter/flavor_factory.py#L80-L89

llaville commented 2 years ago

Got something when I rebuild it locally by using default flavor megalinter/megalinter

nvuillam commented 2 years ago

You can test locally... if you use a MegaLinter fork and put your descriptor in the middle of other descriptors :) Then bash build.sh will create test classes, that you can run with a right click in VsCode with Python extension (+ Test Explorer extension) And once it works, you do not publish the branch, but just copy paste the descriptor file in your own repo ^^

nvuillam commented 2 years ago

https://github.com/overtrue/phplint 750+ stars, backed by Jetbrains... could be not a plugin but an embedded linter :)

llaville commented 2 years ago

Agree, but before I wanted to test it on plugin condition

llaville commented 2 years ago

@nvuillam is it ok for you if I used the docker image https://github.com/llaville/phplint/blob/megalinter-plugin/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml#L15-L16

rather than install from source like I did in previous attempt https://github.com/llaville/phplint/blob/c0fdf953712a334f455fadec1583a59abe28162f/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml#L21-L31

nvuillam commented 2 years ago

Usually i use installer to have better runtime perfs, but using the docker image makes smaller mega linter docker images... so both work :)

If you use docker image, please can you use "latest" tag, so MegaLinter daily updater will detect new versions ?

nvuillam commented 2 years ago

Another option can also be to copy binaries from the docker image in megalinter dockerfile, if it is alpine-based it can work too :)

llaville commented 2 years ago

If you use docker image, please can you use "latest" tag, so MegaLinter daily updater will detect new versions ?

In this case, it'S not possible. phplint latest version is equal to branch 8.0 that work only with php 8. And default php built-in linter is 7.4

nvuillam commented 2 years ago

Understood :)

llaville commented 2 years ago

Final results get from plugin https://github.com/llaville/phplint/blob/96e956be8f857b5aa921052b654761416ceb3a32/mega-linter-plugin-phplint/phplint.megalinter-descriptor.yml

When there are less php files phplint into Mega-Linter may be worst than the default PHP built-in 7.4 version But when there are a lot of files to scan -- i.e: https://github.com/llaville/php-compatinfo-db, here are results I have

Without cache: specify in .mega-linter.yml config file

PHP_PHPLINT_ARGUMENTS: ["--no-cache"]

phplint_ml_plugin_no-cache

With usage of phplint cache feature (default behavior)

phplint_ml_plugin

llaville commented 2 years ago

BTW, I've noticed that docker run command used in Mega-Linter https://github.com/megalinter/megalinter/blob/v5.2.0/megalinter/Linter.py#L769 keep containers alive. I suggest to add the --rm option. Are you agree ?

llaville commented 2 years ago

Response about report title was given, so I'll close this question

nvuillam commented 2 years ago

Good catch for the docker run keeping containers of linters ! As I am (also) not a docker expert, when running MegaLinter locally several times , will the linter docker container be reused at the second run or not ?

llaville commented 2 years ago

Yes until it's not removed it stay forever and grow disk space at each run !

nvuillam commented 2 years ago

Great, I'll be glad to accept the PR or do it someday :)

llaville commented 2 years ago

Will propose a PR ASAP. BTW, if you have time, I'll appreciate if you can check the test failures I got from CI about phplint. A new look is welcome