From 4f4d60e81b185307778a9d3c6ec21007538b44b3 Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Sun, 7 Apr 2024 19:27:16 +0200 Subject: [PATCH] feat: add API descriptor with API_SPECTRAL with AsyncAPI/OpenAPI support Add API descriptor as modified copy of the OPENAPI descriptor. Deprecate the contained linter OPENAPI_SPECTRAL. Add `.spectral.yaml` as default config file to `TEMPLATE/` as modified copy of `.openapirc.yml` with rulesets for AsyncAPI and OpenAPI (previously, only OpenAPI). Closes: #3387 --- .automation/test/api/api_bad_1.yml | 1 + .automation/test/api/api_bad_2.json | 3 + .automation/test/api/api_good_1.yml | 13 + .automation/test/api/api_good_2.json | 23 ++ .../test/api/reports/ERROR-API_SPECTRAL.txt | 28 +++ .../test/api/reports/SUCCESS-API_SPECTRAL.txt | 12 + .automation/test/api/reports/expected-API.tap | 12 + .cspell.json | 1 + .github/workflows/deploy-BETA-linters.yml | 1 + .github/workflows/deploy-DEV-linters.yml | 1 + .github/workflows/deploy-RELEASE-linters.yml | 1 + CHANGELOG.md | 1 + Dockerfile | 2 +- TEMPLATES/.spectral.yaml | 11 + docs/descriptors/api.md | 39 +++ docs/descriptors/api_spectral.md | 134 ++++++++++ docs/descriptors/clojure_cljstyle.md | 2 +- docs/descriptors/dart_dartanalyzer.md | 2 +- docs/descriptors/latex_chktex.md | 2 +- docs/descriptors/lua_luacheck.md | 2 +- docs/descriptors/markdown_remark_lint.md | 2 +- docs/descriptors/openapi.md | 6 +- docs/descriptors/perl_perlcritic.md | 2 +- docs/descriptors/puppet_puppet_lint.md | 2 +- docs/descriptors/r_lintr.md | 2 +- docs/descriptors/raku_raku.md | 2 +- docs/descriptors/repository_devskim.md | 2 +- docs/descriptors/repository_dustilock.md | 2 +- docs/descriptors/repository_syft.md | 2 +- docs/descriptors/scala_scalafix.md | 2 +- docs/flavors/c_cpp.md | 3 +- docs/flavors/documentation.md | 3 +- docs/flavors/dotnet.md | 3 +- docs/flavors/dotnetweb.md | 3 +- docs/flavors/go.md | 3 +- docs/flavors/java.md | 3 +- docs/flavors/javascript.md | 3 +- docs/flavors/php.md | 3 +- docs/flavors/python.md | 3 +- docs/flavors/ruby.md | 3 +- docs/flavors/rust.md | 3 +- docs/flavors/salesforce.md | 3 +- docs/flavors/swift.md | 3 +- docs/flavors/terraform.md | 3 +- docs/index.md | 5 +- docs/standalone-linters.md | 1 + docs/supported-linters.md | 3 +- flavors/c_cpp/Dockerfile | 2 +- flavors/c_cpp/flavor.json | 1 + flavors/documentation/Dockerfile | 2 +- flavors/documentation/flavor.json | 1 + flavors/dotnet/Dockerfile | 2 +- flavors/dotnet/flavor.json | 1 + flavors/dotnetweb/Dockerfile | 2 +- flavors/dotnetweb/flavor.json | 1 + flavors/go/Dockerfile | 2 +- flavors/go/flavor.json | 1 + flavors/java/Dockerfile | 2 +- flavors/java/flavor.json | 1 + flavors/javascript/Dockerfile | 2 +- flavors/javascript/flavor.json | 1 + flavors/php/Dockerfile | 2 +- flavors/php/flavor.json | 1 + flavors/python/Dockerfile | 2 +- flavors/python/flavor.json | 1 + flavors/ruby/Dockerfile | 2 +- flavors/ruby/flavor.json | 1 + flavors/rust/Dockerfile | 2 +- flavors/rust/flavor.json | 1 + flavors/salesforce/Dockerfile | 2 +- flavors/salesforce/flavor.json | 1 + flavors/swift/Dockerfile | 2 +- flavors/swift/flavor.json | 1 + flavors/terraform/Dockerfile | 2 +- flavors/terraform/flavor.json | 1 + linters/api_spectral/Dockerfile | 232 +++++++++++++++++ mega-linter-runner/README.md | 3 +- megalinter/descriptors/all_flavors.json | 14 ++ .../descriptors/api.megalinter-descriptor.yml | 43 ++++ .../openapi.megalinter-descriptor.yml | 1 + .../megalinter-configuration.jsonschema.json | 236 ++++++++++++++++-- .../linters/api_spectral_test.py | 14 ++ mkdocs.yml | 5 +- 83 files changed, 890 insertions(+), 66 deletions(-) create mode 100644 .automation/test/api/api_bad_1.yml create mode 100644 .automation/test/api/api_bad_2.json create mode 100644 .automation/test/api/api_good_1.yml create mode 100644 .automation/test/api/api_good_2.json create mode 100644 .automation/test/api/reports/ERROR-API_SPECTRAL.txt create mode 100644 .automation/test/api/reports/SUCCESS-API_SPECTRAL.txt create mode 100644 .automation/test/api/reports/expected-API.tap create mode 100644 TEMPLATES/.spectral.yaml create mode 100644 docs/descriptors/api.md create mode 100644 docs/descriptors/api_spectral.md create mode 100644 linters/api_spectral/Dockerfile create mode 100644 megalinter/descriptors/api.megalinter-descriptor.yml create mode 100644 megalinter/tests/test_megalinter/linters/api_spectral_test.py diff --git a/.automation/test/api/api_bad_1.yml b/.automation/test/api/api_bad_1.yml new file mode 100644 index 00000000000..6c86b1b464b --- /dev/null +++ b/.automation/test/api/api_bad_1.yml @@ -0,0 +1 @@ +openapi: '3.0.0' diff --git a/.automation/test/api/api_bad_2.json b/.automation/test/api/api_bad_2.json new file mode 100644 index 00000000000..b0b97ddb816 --- /dev/null +++ b/.automation/test/api/api_bad_2.json @@ -0,0 +1,3 @@ +{ + "openapi": "3.0.0" +} diff --git a/.automation/test/api/api_good_1.yml b/.automation/test/api/api_good_1.yml new file mode 100644 index 00000000000..bbfd625e11f --- /dev/null +++ b/.automation/test/api/api_good_1.yml @@ -0,0 +1,13 @@ +openapi: 3.0.0 +info: + title: Example + version: "1.0" + contact: + name: Justin Kalland + email: justin@kalland.com + description: Test for mega-linter +servers: + - url: "http://localhost:3000" +paths: {} +tags: + - name: example diff --git a/.automation/test/api/api_good_2.json b/.automation/test/api/api_good_2.json new file mode 100644 index 00000000000..647a0cd1c9b --- /dev/null +++ b/.automation/test/api/api_good_2.json @@ -0,0 +1,23 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example", + "version": "1.0", + "contact": { + "name": "Justin Kalland", + "email": "justin@kalland.com" + }, + "description": "Test for mega-linter" + }, + "servers": [ + { + "url": "http://localhost:3000" + } + ], + "paths": {}, + "tags": [ + { + "name": "example" + } + ] +} diff --git a/.automation/test/api/reports/ERROR-API_SPECTRAL.txt b/.automation/test/api/reports/ERROR-API_SPECTRAL.txt new file mode 100644 index 00000000000..eff84faeb30 --- /dev/null +++ b/.automation/test/api/reports/ERROR-API_SPECTRAL.txt @@ -0,0 +1,28 @@ +Results of spectral linter (version 5.6.0) +See documentation on https://megalinter.io/descriptors/openapi_spectral/ +----------------------------------------------- + +[ERROR] .automation/test/api/api_bad_1.yml + OpenAPI 3.x detected + + .automation/test/api/api_bad_1.yml + 1:1 warning info-contact Info object should contain `contact` object. + 1:1 warning info-description OpenAPI object info `description` must be present and non-empty string. + 1:1 warning oas3-api-servers OpenAPI `servers` must be present and non-empty array. + 1:1 error oas3-schema Object should have required property `info`. + 1:1 warning openapi-tags OpenAPI object should have non-empty `tags` array. + + ✖ 5 problems (1 error, 4 warnings, 0 infos, 0 hints) + +[ERROR] .automation/test/api/api_bad_2.json + OpenAPI 3.x detected + + .automation/test/api/api_bad_2.json + 1:1 warning info-contact Info object should contain `contact` object. + 1:1 warning info-description OpenAPI object info `description` must be present and non-empty string. + 1:1 warning oas3-api-servers OpenAPI `servers` must be present and non-empty array. + 1:1 error oas3-schema Object should have required property `info`. + 1:1 warning openapi-tags OpenAPI object should have non-empty `tags` array. + + ✖ 5 problems (1 error, 4 warnings, 0 infos, 0 hints) + diff --git a/.automation/test/api/reports/SUCCESS-API_SPECTRAL.txt b/.automation/test/api/reports/SUCCESS-API_SPECTRAL.txt new file mode 100644 index 00000000000..455a7db4e56 --- /dev/null +++ b/.automation/test/api/reports/SUCCESS-API_SPECTRAL.txt @@ -0,0 +1,12 @@ +Results of spectral linter (version 5.6.0) +See documentation on https://megalinter.io/descriptors/api_spectral/ +----------------------------------------------- + +[SUCCESS] .automation/test/api/api_good_1.yml + OpenAPI 3.x detected + No results with a severity of 'error' or higher found! + +[SUCCESS] .automation/test/api/api_good_2.json + OpenAPI 3.x detected + No results with a severity of 'error' or higher found! + diff --git a/.automation/test/api/reports/expected-API.tap b/.automation/test/api/reports/expected-API.tap new file mode 100644 index 00000000000..72a0c7d9f24 --- /dev/null +++ b/.automation/test/api/reports/expected-API.tap @@ -0,0 +1,12 @@ +TAP version 13 +1..4 +not ok 1 - api_bad_1.yml + --- + message: OpenAPI 3.x detected\n\n/tmp/lint/.automation/test/api/api_bad_1.ymlopenapi\n 1 1 warning info-contact Info object should contain `contact` object.\n 1 1 warning info-description OpenAPI object info `description` must be present and non-empty string.\n 1 1 warning oas3-api-servers OpenAPI `servers` must be present and non-empty array.\n 1 1 error oas3-schema Object should have required property `info`.\n 1 1 warning openapi-tags OpenAPI object should have non-empty `tags` array.\n\n✖ 5 problems (1 error, 4 warnings, 0 infos, 0 hints)\n + ... +not ok 2 - api_bad_2.json + --- + message: OpenAPI 3.x detected\n\n/tmp/lint/.automation/test/api/api_bad_2.jsonopenapi\n 1 1 warning info-contact Info object should contain `contact` object.\n 1 1 warning info-description OpenAPI object info `description` must be present and non-empty string.\n 1 1 warning oas3-api-servers OpenAPI `servers` must be present and non-empty array.\n 1 1 error oas3-schema Object should have required property `info`.\n 1 1 warning openapi-tags OpenAPI object should have non-empty `tags` array.\n\n✖ 5 problems (1 error, 4 warnings, 0 infos, 0 hints)\n + ... +ok 3 - api_good_1.yml +ok 4 - api_good_2.json diff --git a/.cspell.json b/.cspell.json index 87a00a9462d..7c70cc37349 100644 --- a/.cspell.json +++ b/.cspell.json @@ -521,6 +521,7 @@ "asdict", "ashokm", "assignuser", + "asyncapi", "autocorrect", "autocrlf", "autofix", diff --git a/.github/workflows/deploy-BETA-linters.yml b/.github/workflows/deploy-BETA-linters.yml index d2d1d7853b5..97e0478aed9 100644 --- a/.github/workflows/deploy-BETA-linters.yml +++ b/.github/workflows/deploy-BETA-linters.yml @@ -76,6 +76,7 @@ jobs: [ "action_actionlint", "ansible_ansible_lint", + "api_spectral", "arm_arm_ttk", "bash_exec", "bash_shellcheck", diff --git a/.github/workflows/deploy-DEV-linters.yml b/.github/workflows/deploy-DEV-linters.yml index b3b97b15045..5f8296f014f 100644 --- a/.github/workflows/deploy-DEV-linters.yml +++ b/.github/workflows/deploy-DEV-linters.yml @@ -47,6 +47,7 @@ jobs: [ "action_actionlint", "ansible_ansible_lint", + "api_spectral", "arm_arm_ttk", "bash_exec", "bash_shellcheck", diff --git a/.github/workflows/deploy-RELEASE-linters.yml b/.github/workflows/deploy-RELEASE-linters.yml index b2b931c0b2b..609be50f8a5 100644 --- a/.github/workflows/deploy-RELEASE-linters.yml +++ b/.github/workflows/deploy-RELEASE-linters.yml @@ -51,6 +51,7 @@ jobs: [ "action_actionlint", "ansible_ansible_lint", + "api_spectral", "arm_arm_ttk", "bash_exec", "bash_shellcheck", diff --git a/CHANGELOG.md b/CHANGELOG.md index d3df145ffaf..cbf4b5469f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-l - Media - New linters + - `API_SPECTRAL` was added as replacement for `OPENAPI_SPECTRAL` (deprecated), supporting AsyncAPI and OpenAPI by default. Uses Spectral's standard config file name `.spectral.yaml` instead of `.openapirc.yml` with a default config with rulesets for AsyncAPI and OpenAPI enabled. Fixes [#3387](https://github.com/oxsecurity/megalinter/issues/3387) - Reporters diff --git a/Dockerfile b/Dockerfile index a27fc47d2e2..87c714a5f2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -206,6 +206,7 @@ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ @salesforce/cli \ typescript \ + @stoplight/spectral-cli \ @coffeelint/cli \ jscpd \ stylelint \ @@ -241,7 +242,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/TEMPLATES/.spectral.yaml b/TEMPLATES/.spectral.yaml new file mode 100644 index 00000000000..b550071446e --- /dev/null +++ b/TEMPLATES/.spectral.yaml @@ -0,0 +1,11 @@ +--- + +####################################### +####################################### +## AsyncAPI and OpenAPI Linter rules ## +####################################### +####################################### + +extends: + - spectral:asyncapi + - spectral:oas diff --git a/docs/descriptors/api.md b/docs/descriptors/api.md new file mode 100644 index 00000000000..e6904efa310 --- /dev/null +++ b/docs/descriptors/api.md @@ -0,0 +1,39 @@ +--- +title: API linters in MegaLinter +description: spectral is available to analyze API files in MegaLinter +--- + + + +# API + +## Linters + +| Linter | Additional | +|-----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------| +| [**spectral**](api_spectral.md)
[_API_SPECTRAL_](api_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | + +## Linted files + +- File extensions: + - `.yml` + - `.yaml` + - `.json` + +- Detected file content: + - `"asyncapi":` + - `"openapi":` + - `"swagger":` + - `asyncapi:` + - `openapi:` + - `swagger:` + +## Configuration in MegaLinter + +| Variable | Description | Default value | +|--------------------------|-------------------------------------------------|---------------| +| API_PRE_COMMANDS | List of bash commands to run before the linters | None | +| API_POST_COMMANDS | List of bash commands to run after the linters | None | +| API_FILTER_REGEX_INCLUDE | Custom regex including filter | | +| API_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + diff --git a/docs/descriptors/api_spectral.md b/docs/descriptors/api_spectral.md new file mode 100644 index 00000000000..806066bed8b --- /dev/null +++ b/docs/descriptors/api_spectral.md @@ -0,0 +1,134 @@ +--- +title: spectral configuration in MegaLinter +description: How to use spectral (configure, ignore files, ignore errors, help & version documentations) to analyze API files +--- + + + +
+ + spectral + +
+ +[![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/stoplightio/spectral?sort=semver)](https://github.com/stoplightio/spectral/releases) [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) [![GitHub commit activity](https://img.shields.io/github/commit-activity/y/stoplightio/spectral)](https://github.com/stoplightio/spectral/graphs/commit-activity/) [![GitHub contributors](https://img.shields.io/github/contributors/stoplightio/spectral)](https://github.com/stoplightio/spectral/graphs/contributors/) + +## spectral documentation + +- Version in MegaLinter: **6.11.1** +- Visit [Official Web Site](https://docs.stoplight.io/docs/spectral/674b27b261c3c-overview){target=_blank} +- See [How to configure spectral rules](https://docs.stoplight.io/docs/spectral/9ffa04e052cc1-spectral-cli#using-a-ruleset-file){target=_blank} + - If custom `.spectral.yaml` config file isn't found, [.spectral.yaml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.spectral.yaml){target=_blank} will be used +- See [Index of problems detected by spectral](https://docs.stoplight.io/docs/spectral/4dec24461f3af-open-api-rules){target=_blank} + +[![spectral - GitHub](https://gh-card.dev/repos/stoplightio/spectral.svg?fullname=)](https://github.com/stoplightio/spectral){target=_blank} + +## Configuration in MegaLinter + +- Enable spectral by adding `API_SPECTRAL` in [ENABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) +- Disable spectral by adding `API_SPECTRAL` in [DISABLE_LINTERS variable](https://megalinter.io/beta/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| API_SPECTRAL_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| API_SPECTRAL_COMMAND_REMOVE_ARGUMENTS | User custom arguments to remove from command line before calling the linter
Ex: `-s --foo "bar"` | | +| API_SPECTRAL_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | +| API_SPECTRAL_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | +| API_SPECTRAL_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `project`: Call the linter from the root of the project | `file` | +| API_SPECTRAL_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".yml", ".yaml", ".json"]` | +| API_SPECTRAL_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| API_SPECTRAL_PRE_COMMANDS | List of bash commands to run before the linter | None | +| API_SPECTRAL_POST_COMMANDS | List of bash commands to run after the linter | None | +| API_SPECTRAL_UNSECURED_ENV_VARIABLES | List of env variables explicitly not filtered before calling API_SPECTRAL and its pre/post commands | None | +| API_SPECTRAL_CONFIG_FILE | spectral configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.spectral.yaml` | +| API_SPECTRAL_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| API_SPECTRAL_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| API_SPECTRAL_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | +| API_SPECTRAL_CLI_EXECUTABLE | Override CLI executable | `['spectral']` | + +## IDE Integration + +Use spectral in your favorite IDE to catch errors before MegaLinter ! + +| | IDE | Extension Name | Install | +|:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------|:-------------------------------------------------------------------------------:| +| | stoplight | [Native integration](https://stoplight.io/studio) | [Visit Web Site](https://stoplight.io/studio){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-spectral](https://github.com/stoplightio/vscode-spectral) | [Visit Web Site](https://github.com/stoplightio/vscode-spectral){target=_blank} | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------|:---------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [c_cpp](https://megalinter.io/beta/flavors/c_cpp/) | Optimized for pure C/C++ projects | 57 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-c_cpp/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-c_cpp) | +| | [documentation](https://megalinter.io/beta/flavors/documentation/) | MegaLinter for documentation projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://megalinter.io/beta/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 66 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [dotnetweb](https://megalinter.io/beta/flavors/dotnetweb/) | Optimized for C, C++, C# or VB based projects with JS/TS | 75 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnetweb/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnetweb) | +| | [go](https://megalinter.io/beta/flavors/go/) | Optimized for GO based projects | 55 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://megalinter.io/beta/flavors/java/) | Optimized for JAVA based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://megalinter.io/beta/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 62 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://megalinter.io/beta/flavors/php/) | Optimized for PHP based projects | 56 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://megalinter.io/beta/flavors/python/) | Optimized for PYTHON based projects | 66 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://megalinter.io/beta/flavors/ruby/) | Optimized for RUBY based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://megalinter.io/beta/flavors/rust/) | Optimized for RUST based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://megalinter.io/beta/flavors/salesforce/) | Optimized for Salesforce based projects | 57 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://megalinter.io/beta/flavors/swift/) | Optimized for SWIFT based projects | 53 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://megalinter.io/beta/flavors/terraform/) | Optimized for TERRAFORM based projects | 57 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- File extensions: `.yml`, `.yaml`, `.json` +- Detected file content (regex): `"asyncapi":`, `"openapi":`, `"swagger":`, `asyncapi:`, `openapi:`, `swagger:` + + + +### How the linting is performed + +- spectral is called one time by identified file (`file` CLI lint mode) + +### Example calls + +```shell +spectral lint myfile.yml +``` + +```shell +spectral lint -r .spectral.yaml myfile.yml +``` + + +### Help content + +```shell +spectral lint [documents..] + +lint JSON/YAML documents from files or URLs + +Positionals: + documents Location of JSON/YAML documents. Can be either a file, a glob or fetchable resource(s) on the web. [array] [default: []] + +Options: + --version Show version number [boolean] + --help Show help [boolean] + -e, --encoding text encoding to use [string] [choices: "utf8", "ascii", "utf-8", "utf16le", "ucs2", "ucs-2", "base64", "latin1"] [default: "utf8"] + -f, --format formatters to use for outputting results, more than one can be provided by using multiple flags [string] [choices: "json", "stylish", "junit", "html", "text", "teamcity", "pretty", "github-actions", "sarif"] [default: "stylish"] + -o, --output where to output results, can be a single file name, multiple "output." or missing to print to stdout [string] + --stdin-filepath path to a file to pretend that stdin comes from [string] + --resolver path to custom json-ref-resolver instance [string] + -r, --ruleset path/URL to a ruleset file [string] + -F, --fail-severity results of this level or above will trigger a failure exit code [string] [choices: "error", "warn", "info", "hint"] [default: "error"] + -D, --display-only-failures only output results equal to or greater than --fail-severity [boolean] [default: false] + --ignore-unknown-format do not warn about unmatched formats [boolean] [default: false] + --fail-on-unmatched-globs fail on unmatched glob patterns [boolean] [default: false] + -v, --verbose increase verbosity [boolean] + -q, --quiet no logging - output only [boolean] +``` + +### Installation on mega-linter Docker image + +- NPM packages (node.js): + - [@stoplight/spectral-cli](https://www.npmjs.com/package/@stoplight/spectral-cli) diff --git a/docs/descriptors/clojure_cljstyle.md b/docs/descriptors/clojure_cljstyle.md index 9be05ff4618..8be77b0f3ba 100644 --- a/docs/descriptors/clojure_cljstyle.md +++ b/docs/descriptors/clojure_cljstyle.md @@ -58,7 +58,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/dart_dartanalyzer.md b/docs/descriptors/dart_dartanalyzer.md index bd1e81773b1..45d29030c15 100644 --- a/docs/descriptors/dart_dartanalyzer.md +++ b/docs/descriptors/dart_dartanalyzer.md @@ -54,7 +54,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/latex_chktex.md b/docs/descriptors/latex_chktex.md index 8368453b964..284d3ca73db 100644 --- a/docs/descriptors/latex_chktex.md +++ b/docs/descriptors/latex_chktex.md @@ -51,7 +51,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/lua_luacheck.md b/docs/descriptors/lua_luacheck.md index 0e077121bf0..ad5ec96dc4b 100644 --- a/docs/descriptors/lua_luacheck.md +++ b/docs/descriptors/lua_luacheck.md @@ -60,7 +60,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/markdown_remark_lint.md b/docs/descriptors/markdown_remark_lint.md index 95ef890b7f5..334c2f35bdd 100644 --- a/docs/descriptors/markdown_remark_lint.md +++ b/docs/descriptors/markdown_remark_lint.md @@ -63,7 +63,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/openapi.md b/docs/descriptors/openapi.md index 4003debe91a..dedf30f5e9a 100644 --- a/docs/descriptors/openapi.md +++ b/docs/descriptors/openapi.md @@ -9,9 +9,9 @@ description: spectral is available to analyze OPENAPI files in MegaLinter ## Linters -| Linter | Additional | -|-----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------| -| [**spectral**](openapi_spectral.md)
[_OPENAPI_SPECTRAL_](openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| Linter | Additional | +|-----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [**spectral**](openapi_spectral.md)
[_OPENAPI_SPECTRAL_](openapi_spectral.md) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | ## Linted files diff --git a/docs/descriptors/perl_perlcritic.md b/docs/descriptors/perl_perlcritic.md index 936c718ffd9..1b67e484997 100644 --- a/docs/descriptors/perl_perlcritic.md +++ b/docs/descriptors/perl_perlcritic.md @@ -50,7 +50,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/puppet_puppet_lint.md b/docs/descriptors/puppet_puppet_lint.md index 5cf84b82cee..fb896b118e4 100644 --- a/docs/descriptors/puppet_puppet_lint.md +++ b/docs/descriptors/puppet_puppet_lint.md @@ -56,7 +56,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/r_lintr.md b/docs/descriptors/r_lintr.md index eeacec0f4d8..6b94c8dc633 100644 --- a/docs/descriptors/r_lintr.md +++ b/docs/descriptors/r_lintr.md @@ -57,7 +57,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/raku_raku.md b/docs/descriptors/raku_raku.md index 6c345fbf7d3..359eb14e1d8 100644 --- a/docs/descriptors/raku_raku.md +++ b/docs/descriptors/raku_raku.md @@ -53,7 +53,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/repository_devskim.md b/docs/descriptors/repository_devskim.md index 4c4c27be51e..c290bef104c 100644 --- a/docs/descriptors/repository_devskim.md +++ b/docs/descriptors/repository_devskim.md @@ -62,7 +62,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | | | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes diff --git a/docs/descriptors/repository_dustilock.md b/docs/descriptors/repository_dustilock.md index ed69e7d155f..243e4e3a350 100644 --- a/docs/descriptors/repository_dustilock.md +++ b/docs/descriptors/repository_dustilock.md @@ -42,7 +42,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | | | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes diff --git a/docs/descriptors/repository_syft.md b/docs/descriptors/repository_syft.md index b6ae2f680e1..30d3272346e 100644 --- a/docs/descriptors/repository_syft.md +++ b/docs/descriptors/repository_syft.md @@ -46,7 +46,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | | | [security](https://megalinter.io/beta/flavors/security/) | Optimized for security | 24 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes diff --git a/docs/descriptors/scala_scalafix.md b/docs/descriptors/scala_scalafix.md index 1347ba81f92..9a072bfc76f 100644 --- a/docs/descriptors/scala_scalafix.md +++ b/docs/descriptors/scala_scalafix.md @@ -52,7 +52,7 @@ This linter is available in the following flavours | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------|:--------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 122 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 123 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/beta) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/flavors/c_cpp.md b/docs/flavors/c_cpp.md index dfe2fc05429..a0497858ee2 100644 --- a/docs/flavors/c_cpp.md +++ b/docs/flavors/c_cpp.md @@ -65,12 +65,13 @@ Optimized for pure C/C++ projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/documentation.md b/docs/flavors/documentation.md index 2d62d595611..7ab729cbec6 100644 --- a/docs/flavors/documentation.md +++ b/docs/flavors/documentation.md @@ -61,12 +61,13 @@ MegaLinter for documentation projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/dotnet.md b/docs/flavors/dotnet.md index 9c0a157d076..0a4c53153b5 100644 --- a/docs/flavors/dotnet.md +++ b/docs/flavors/dotnet.md @@ -71,6 +71,7 @@ Optimized for C, C++, C# or VB based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**ARM**](https://megalinter.io/beta/descriptors/arm/) | [**arm-ttk**](https://megalinter.io/beta/descriptors/arm_arm_ttk/)
[_ARM_ARM_TTK_](https://megalinter.io/beta/descriptors/arm_arm_ttk/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | | | [**BICEP**](https://megalinter.io/beta/descriptors/bicep/) | [**bicep_linter**](https://megalinter.io/beta/descriptors/bicep_bicep_linter/)
[_BICEP_BICEP_LINTER_](https://megalinter.io/beta/descriptors/bicep_bicep_linter/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -79,7 +80,7 @@ Optimized for C, C++, C# or VB based projects | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/dotnetweb.md b/docs/flavors/dotnetweb.md index 931d5f060e9..ede1b21320d 100644 --- a/docs/flavors/dotnetweb.md +++ b/docs/flavors/dotnetweb.md @@ -80,6 +80,7 @@ Optimized for C, C++, C# or VB based projects with JS/TS |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**ARM**](https://megalinter.io/beta/descriptors/arm/) | [**arm-ttk**](https://megalinter.io/beta/descriptors/arm_arm_ttk/)
[_ARM_ARM_TTK_](https://megalinter.io/beta/descriptors/arm_arm_ttk/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | | | [**BICEP**](https://megalinter.io/beta/descriptors/bicep/) | [**bicep_linter**](https://megalinter.io/beta/descriptors/bicep_bicep_linter/)
[_BICEP_BICEP_LINTER_](https://megalinter.io/beta/descriptors/bicep_bicep_linter/) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -88,7 +89,7 @@ Optimized for C, C++, C# or VB based projects with JS/TS | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/go.md b/docs/flavors/go.md index 29a0cf8023d..0ef0fcc25bb 100644 --- a/docs/flavors/go.md +++ b/docs/flavors/go.md @@ -63,12 +63,13 @@ Optimized for GO based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/java.md b/docs/flavors/java.md index 65c2931e54a..42391243ead 100644 --- a/docs/flavors/java.md +++ b/docs/flavors/java.md @@ -64,12 +64,13 @@ Optimized for JAVA based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/javascript.md b/docs/flavors/javascript.md index 8c3db878f7b..a9758615fe8 100644 --- a/docs/flavors/javascript.md +++ b/docs/flavors/javascript.md @@ -70,12 +70,13 @@ Optimized for JAVASCRIPT or TYPESCRIPT based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/php.md b/docs/flavors/php.md index ce263d367ab..fe0b818d97d 100644 --- a/docs/flavors/php.md +++ b/docs/flavors/php.md @@ -64,12 +64,13 @@ Optimized for PHP based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/python.md b/docs/flavors/python.md index a931796a5a7..29589fbaa9a 100644 --- a/docs/flavors/python.md +++ b/docs/flavors/python.md @@ -74,12 +74,13 @@ Optimized for PYTHON based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/ruby.md b/docs/flavors/ruby.md index b55ec9ad948..d8d857b7685 100644 --- a/docs/flavors/ruby.md +++ b/docs/flavors/ruby.md @@ -61,12 +61,13 @@ Optimized for RUBY based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/rust.md b/docs/flavors/rust.md index 63d51e82c48..39f88b76a8f 100644 --- a/docs/flavors/rust.md +++ b/docs/flavors/rust.md @@ -61,12 +61,13 @@ Optimized for RUST based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/salesforce.md b/docs/flavors/salesforce.md index 9f9278dec71..507ccd9990b 100644 --- a/docs/flavors/salesforce.md +++ b/docs/flavors/salesforce.md @@ -65,12 +65,13 @@ Optimized for Salesforce based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/swift.md b/docs/flavors/swift.md index 1dcab42d576..d7803025c0c 100644 --- a/docs/flavors/swift.md +++ b/docs/flavors/swift.md @@ -61,12 +61,13 @@ Optimized for SWIFT based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/flavors/terraform.md b/docs/flavors/terraform.md index 82ffb9718a4..55beef2e92f 100644 --- a/docs/flavors/terraform.md +++ b/docs/flavors/terraform.md @@ -60,12 +60,13 @@ Optimized for TERRAFORM based projects |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://megalinter.io/beta/descriptors/action/) | [**actionlint**](https://megalinter.io/beta/descriptors/action_actionlint/)
[_ACTION_ACTIONLINT_](https://megalinter.io/beta/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://megalinter.io/beta/descriptors/ansible/) | [**ansible-lint**](https://megalinter.io/beta/descriptors/ansible_ansible_lint/)
[_ANSIBLE_ANSIBLE_LINT_](https://megalinter.io/beta/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://megalinter.io/beta/descriptors/api/) | [**spectral**](https://megalinter.io/beta/descriptors/api_spectral/)
[_API_SPECTRAL_](https://megalinter.io/beta/descriptors/api_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**DOCKERFILE**](https://megalinter.io/beta/descriptors/dockerfile/) | [**hadolint**](https://megalinter.io/beta/descriptors/dockerfile_hadolint/)
[_DOCKERFILE_HADOLINT_](https://megalinter.io/beta/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | | | [**EDITORCONFIG**](https://megalinter.io/beta/descriptors/editorconfig/) | [**editorconfig-checker**](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://megalinter.io/beta/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubeconform**](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/)
[_KUBERNETES_KUBECONFORM_](https://megalinter.io/beta/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**helm**](https://megalinter.io/beta/descriptors/kubernetes_helm/)
[_KUBERNETES_HELM_](https://megalinter.io/beta/descriptors/kubernetes_helm/) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://megalinter.io/beta/descriptors/kubernetes/) | [**kubescape**](https://megalinter.io/beta/descriptors/kubernetes_kubescape/)
[_KUBERNETES_KUBESCAPE_](https://megalinter.io/beta/descriptors/kubernetes_kubescape/) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://megalinter.io/beta/descriptors/openapi/) | [**spectral**](https://megalinter.io/beta/descriptors/openapi_spectral/)
[_OPENAPI_SPECTRAL_](https://megalinter.io/beta/descriptors/openapi_spectral/) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakemake**](https://megalinter.io/beta/descriptors/snakemake_snakemake/)
[_SNAKEMAKE_LINT_](https://megalinter.io/beta/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://megalinter.io/beta/descriptors/snakemake/) | [**snakefmt**](https://megalinter.io/beta/descriptors/snakemake_snakefmt/)
[_SNAKEMAKE_SNAKEFMT_](https://megalinter.io/beta/descriptors/snakemake_snakefmt/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | | | [**TEKTON**](https://megalinter.io/beta/descriptors/tekton/) | [**tekton-lint**](https://megalinter.io/beta/descriptors/tekton_tekton_lint/)
[_TEKTON_TEKTON_LINT_](https://megalinter.io/beta/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | diff --git a/docs/index.md b/docs/index.md index 2407b307f31..387b6fc7e51 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,7 +28,7 @@ MegaLinter is an **Open-Source** tool for **CI/CD workflows** that analyzes the **consistency of your code**, **IAC**, **configuration**, and **scripts** in your repository sources, to **ensure all your projects sources are clean and formatted** whatever IDE/toolbox is used by their developers, powered by [**OX Security**](https://www.ox.security/?ref=megalinter). -Supporting [**60** languages](supported-linters.md#languages), [**24** formats](supported-linters.md#formats), [**20** tooling formats](supported-linters.md#tooling-formats) and **ready to use out of the box**, as a GitHub action or any CI system **highly configurable** and **free for all uses**. +Supporting [**60** languages](supported-linters.md#languages), [**24** formats](supported-linters.md#formats), [**21** tooling formats](supported-linters.md#tooling-formats) and **ready to use out of the box**, as a GitHub action or any CI system **highly configurable** and **free for all uses**. [**Switch to MegaLinter v7 !**](https://github.com/oxsecurity/megalinter/issues/2692) @@ -205,6 +205,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](descriptors/action.md) | [**actionlint**](descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](descriptors/ansible.md) | [**ansible-lint**](descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](descriptors/api.md) | [**spectral**](descriptors/api_spectral.md)
[_API_SPECTRAL_](descriptors/api_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**ARM**](descriptors/arm.md) | [**arm-ttk**](descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | | | [**BICEP**](descriptors/bicep.md) | [**bicep_linter**](descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | | | [**CLOUDFORMATION**](descriptors/cloudformation.md) | [**cfn-lint**](descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](descriptors/cloudformation_cfn_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -214,7 +215,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubeconform**](descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](descriptors/kubernetes.md) | [**helm**](descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubescape**](descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**PUPPET**](descriptors/puppet.md) | [**puppet-lint**](descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakemake**](descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakefmt**](descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](descriptors/snakemake_snakefmt.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | diff --git a/docs/standalone-linters.md b/docs/standalone-linters.md index 9e799b381d8..7ef54968d6f 100644 --- a/docs/standalone-linters.md +++ b/docs/standalone-linters.md @@ -4,6 +4,7 @@ |:----------------------------------|:------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------:| | 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) | diff --git a/docs/supported-linters.md b/docs/supported-linters.md index 1a59cf1092f..dafc7606ff4 100644 --- a/docs/supported-linters.md +++ b/docs/supported-linters.md @@ -112,6 +112,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](descriptors/action.md) | [**actionlint**](descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](descriptors/ansible.md) | [**ansible-lint**](descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](descriptors/api.md) | [**spectral**](descriptors/api_spectral.md)
[_API_SPECTRAL_](descriptors/api_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**ARM**](descriptors/arm.md) | [**arm-ttk**](descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | | | [**BICEP**](descriptors/bicep.md) | [**bicep_linter**](descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | | | [**CLOUDFORMATION**](descriptors/cloudformation.md) | [**cfn-lint**](descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](descriptors/cloudformation_cfn_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -121,7 +122,7 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c | | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubeconform**](descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](descriptors/kubernetes.md) | [**helm**](descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](descriptors/kubernetes.md) | [**kubescape**](descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](descriptors/openapi.md) | [**spectral**](descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](descriptors/openapi_spectral.md) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**PUPPET**](descriptors/puppet.md) | [**puppet-lint**](descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakemake**](descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](descriptors/snakemake.md) | [**snakefmt**](descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](descriptors/snakemake_snakefmt.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | diff --git a/flavors/c_cpp/Dockerfile b/flavors/c_cpp/Dockerfile index fd8c4471b5d..597b6bceb82 100644 --- a/flavors/c_cpp/Dockerfile +++ b/flavors/c_cpp/Dockerfile @@ -143,6 +143,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -158,7 +159,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/c_cpp/flavor.json b/flavors/c_cpp/flavor.json index 2ef68328589..a2ee9bde779 100644 --- a/flavors/c_cpp/flavor.json +++ b/flavors/c_cpp/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/documentation/Dockerfile b/flavors/documentation/Dockerfile index a45a2e61e92..7e732a6a6b5 100644 --- a/flavors/documentation/Dockerfile +++ b/flavors/documentation/Dockerfile @@ -141,6 +141,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -156,7 +157,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/documentation/flavor.json b/flavors/documentation/flavor.json index 6154ba757b7..9d86d295c44 100644 --- a/flavors/documentation/flavor.json +++ b/flavors/documentation/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/dotnet/Dockerfile b/flavors/dotnet/Dockerfile index 180d60d0e13..d44968248dc 100644 --- a/flavors/dotnet/Dockerfile +++ b/flavors/dotnet/Dockerfile @@ -149,6 +149,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -167,7 +168,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/dotnet/flavor.json b/flavors/dotnet/flavor.json index cfe647e1904..6c2711c79d5 100644 --- a/flavors/dotnet/flavor.json +++ b/flavors/dotnet/flavor.json @@ -11,6 +11,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "ARM_ARM_TTK", "BASH_EXEC", "BASH_SHELLCHECK", diff --git a/flavors/dotnetweb/Dockerfile b/flavors/dotnetweb/Dockerfile index 358a293f1c3..9d321506fe9 100644 --- a/flavors/dotnetweb/Dockerfile +++ b/flavors/dotnetweb/Dockerfile @@ -150,6 +150,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ typescript \ + @stoplight/spectral-cli \ @coffeelint/cli \ jscpd \ stylelint \ @@ -185,7 +186,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/dotnetweb/flavor.json b/flavors/dotnetweb/flavor.json index 6984da19047..a7a905de9dd 100644 --- a/flavors/dotnetweb/flavor.json +++ b/flavors/dotnetweb/flavor.json @@ -12,6 +12,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "ARM_ARM_TTK", "BASH_EXEC", "BASH_SHELLCHECK", diff --git a/flavors/go/Dockerfile b/flavors/go/Dockerfile index 1ff341dd3a7..0c3ec739421 100644 --- a/flavors/go/Dockerfile +++ b/flavors/go/Dockerfile @@ -148,6 +148,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -163,7 +164,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/go/flavor.json b/flavors/go/flavor.json index 5427771260a..c745277a288 100644 --- a/flavors/go/flavor.json +++ b/flavors/go/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/java/Dockerfile b/flavors/java/Dockerfile index 3c9399227c4..a383b710dd8 100644 --- a/flavors/java/Dockerfile +++ b/flavors/java/Dockerfile @@ -141,6 +141,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -156,7 +157,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/java/flavor.json b/flavors/java/flavor.json index ee948e41023..c56202af4ed 100644 --- a/flavors/java/flavor.json +++ b/flavors/java/flavor.json @@ -9,6 +9,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/javascript/Dockerfile b/flavors/javascript/Dockerfile index 8affbf1944e..e9973e39579 100644 --- a/flavors/javascript/Dockerfile +++ b/flavors/javascript/Dockerfile @@ -141,6 +141,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ typescript \ + @stoplight/spectral-cli \ @coffeelint/cli \ jscpd \ stylelint \ @@ -175,7 +176,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/javascript/flavor.json b/flavors/javascript/flavor.json index 4410ad0b3b2..07064c14fbb 100644 --- a/flavors/javascript/flavor.json +++ b/flavors/javascript/flavor.json @@ -8,6 +8,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/php/Dockerfile b/flavors/php/Dockerfile index 02f10d217a3..314cd830cb3 100644 --- a/flavors/php/Dockerfile +++ b/flavors/php/Dockerfile @@ -152,6 +152,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -167,7 +168,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/php/flavor.json b/flavors/php/flavor.json index 8cb38e510cf..d0c56519c3f 100644 --- a/flavors/php/flavor.json +++ b/flavors/php/flavor.json @@ -8,6 +8,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/python/Dockerfile b/flavors/python/Dockerfile index 7d135e92d90..b4a0ab32d8a 100644 --- a/flavors/python/Dockerfile +++ b/flavors/python/Dockerfile @@ -153,6 +153,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -168,7 +169,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/python/flavor.json b/flavors/python/flavor.json index 72417dfd4cd..225adf584fd 100644 --- a/flavors/python/flavor.json +++ b/flavors/python/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/ruby/Dockerfile b/flavors/ruby/Dockerfile index de85850cfb0..c4259d53fe2 100644 --- a/flavors/ruby/Dockerfile +++ b/flavors/ruby/Dockerfile @@ -140,6 +140,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -155,7 +156,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/ruby/flavor.json b/flavors/ruby/flavor.json index 28d643585ed..f0f3db186da 100644 --- a/flavors/ruby/flavor.json +++ b/flavors/ruby/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/rust/Dockerfile b/flavors/rust/Dockerfile index e198e625186..297e9365ec6 100644 --- a/flavors/rust/Dockerfile +++ b/flavors/rust/Dockerfile @@ -140,6 +140,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -155,7 +156,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/rust/flavor.json b/flavors/rust/flavor.json index 7690f7eade1..036abb99866 100644 --- a/flavors/rust/flavor.json +++ b/flavors/rust/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/salesforce/Dockerfile b/flavors/salesforce/Dockerfile index d100adae23d..dcbc82e3a54 100644 --- a/flavors/salesforce/Dockerfile +++ b/flavors/salesforce/Dockerfile @@ -141,6 +141,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ @salesforce/cli \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -158,7 +159,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/salesforce/flavor.json b/flavors/salesforce/flavor.json index 3bad18d90f1..30cdb227dfc 100644 --- a/flavors/salesforce/flavor.json +++ b/flavors/salesforce/flavor.json @@ -8,6 +8,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/swift/Dockerfile b/flavors/swift/Dockerfile index dfca9e63c8d..d6f5183c5d5 100644 --- a/flavors/swift/Dockerfile +++ b/flavors/swift/Dockerfile @@ -142,6 +142,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -157,7 +158,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/swift/flavor.json b/flavors/swift/flavor.json index 50666d118ac..1a77f6173cd 100644 --- a/flavors/swift/flavor.json +++ b/flavors/swift/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/flavors/terraform/Dockerfile b/flavors/terraform/Dockerfile index c52eb4e192f..1eb1254c700 100644 --- a/flavors/terraform/Dockerfile +++ b/flavors/terraform/Dockerfile @@ -146,6 +146,7 @@ ENV NODE_OPTIONS="--max-old-space-size=8192" \ #NPM__START WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli \ jscpd \ stylelint \ stylelint-config-standard \ @@ -161,7 +162,6 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ markdownlint-cli \ markdown-link-check \ markdown-table-formatter \ - @stoplight/spectral-cli \ secretlint \ @secretlint/secretlint-rule-preset-recommend \ @secretlint/secretlint-formatter-sarif \ diff --git a/flavors/terraform/flavor.json b/flavors/terraform/flavor.json index 7ae862a3392..9ea0ebb8e70 100644 --- a/flavors/terraform/flavor.json +++ b/flavors/terraform/flavor.json @@ -7,6 +7,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/linters/api_spectral/Dockerfile b/linters/api_spectral/Dockerfile new file mode 100644 index 00000000000..c1c500359e4 --- /dev/null +++ b/linters/api_spectral/Dockerfile @@ -0,0 +1,232 @@ +# syntax=docker/dockerfile:1 +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @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 +ARG GITHUB_TOKEN + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# 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 \ + npm \ + nodejs-current \ + yarn \ + && 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 +WORKDIR /node-deps +RUN npm --no-cache install --ignore-scripts --omit=dev \ + @stoplight/spectral-cli && \ + echo "Cleaning npm cache…" \ + && npm cache clean --force || true \ + && echo "Changing owner of node_modules files…" \ + && chown -R "$(id -u)":"$(id -g)" node_modules # fix for https://github.com/npm/cli/issues/5900 \ + && echo "Removing extra node_module files…" \ + && rm -rf /root/.npm/_cacache \ + && find . -name "*.d.ts" -delete \ + && find . -name "*.map" -delete \ + && find . -name "*.npmignore" -delete \ + && find . -name "*.travis.yml" -delete \ + && find . -name "CHANGELOG.md" -delete \ + && find . -name "README.md" -delete \ + && find . -name ".package-lock.json" -delete \ + && find . -name "package-lock.json" -delete \ + && find . -name "README.md" -delete +WORKDIR / + +#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__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#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=API_SPECTRAL \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=API_SPECTRAL \ + 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/mega-linter-runner/README.md b/mega-linter-runner/README.md index 803f9f79993..c588d2b4f58 100644 --- a/mega-linter-runner/README.md +++ b/mega-linter-runner/README.md @@ -238,6 +238,7 @@ You can generate a ready-to-use [.mega-linter.yml configuration file](https://me |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**actionlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | | | [**ANSIBLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible.md) | [**ansible-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**API**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api_spectral.md)
[_API_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md) | [**arm-ttk**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/arm-ttk?cacheSeconds=3600)](https://github.com/Azure/arm-ttk) | | | [**BICEP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep.md) | [**bicep_linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [![GitHub stars](https://img.shields.io/github/stars/Azure/bicep?cacheSeconds=3600)](https://github.com/Azure/bicep) | | | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md) | [**cfn-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | @@ -247,7 +248,7 @@ You can generate a ready-to-use [.mega-linter.yml configuration file](https://me | | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubeconform**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | | | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**helm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [![GitHub stars](https://img.shields.io/github/stars/helm/helm?cacheSeconds=3600)](https://github.com/helm/helm) | | | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubescape**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | ![downgraded version](https://shields.io/badge/-downgraded%20version-orange) [![GitHub stars](https://img.shields.io/github/stars/kubescape/kubescape?cacheSeconds=3600)](https://github.com/kubescape/kubescape) ![sarif](https://shields.io/badge/-SARIF-orange) | -| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md)
[_OPENAPI_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md) | ![deprecated](https://shields.io/badge/-deprecated-red) [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | | | [**PUPPET**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet.md) | [**puppet-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) | [![GitHub stars](https://img.shields.io/github/stars/puppetlabs/puppet-lint?cacheSeconds=3600)](https://github.com/puppetlabs/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | | | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakemake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | | | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakefmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | diff --git a/megalinter/descriptors/all_flavors.json b/megalinter/descriptors/all_flavors.json index b1ccdf709a2..4acb7e1d66e 100644 --- a/megalinter/descriptors/all_flavors.json +++ b/megalinter/descriptors/all_flavors.json @@ -8,6 +8,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -198,6 +199,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -262,6 +264,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "ARM_ARM_TTK", "BASH_EXEC", "BASH_SHELLCHECK", @@ -340,6 +343,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "ARM_ARM_TTK", "BASH_EXEC", "BASH_SHELLCHECK", @@ -451,6 +455,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -515,6 +520,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -579,6 +585,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -649,6 +656,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -712,6 +720,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -785,6 +794,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -845,6 +855,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -906,6 +917,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -1000,6 +1012,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", @@ -1060,6 +1073,7 @@ "linters": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", diff --git a/megalinter/descriptors/api.megalinter-descriptor.yml b/megalinter/descriptors/api.megalinter-descriptor.yml new file mode 100644 index 00000000000..7bfd103d4e2 --- /dev/null +++ b/megalinter/descriptors/api.megalinter-descriptor.yml @@ -0,0 +1,43 @@ +descriptor_id: API +descriptor_type: tooling_format +descriptor_flavors: + - all_flavors # Any project can contain API specifications (AsyncAPI, OpenAI, etc.) +file_extensions: + - ".yml" + - ".yaml" + - ".json" +file_contains_regex: + - '"asyncapi":' + - '"openapi":' + - '"swagger":' + - "asyncapi:" + - "openapi:" + - "swagger:" +linters: + # Spectral + - linter_name: spectral + linter_url: https://docs.stoplight.io/docs/spectral/674b27b261c3c-overview + linter_repo: https://github.com/stoplightio/spectral + linter_rules_url: https://docs.stoplight.io/docs/spectral/4dec24461f3af-open-api-rules + linter_banner_image_url: https://github.com/stoplightio/spectral/raw/develop/docs/img/spectral-banner.png + linter_rules_configuration_url: https://docs.stoplight.io/docs/spectral/9ffa04e052cc1-spectral-cli#using-a-ruleset-file + config_file_name: .spectral.yaml + cli_config_arg_name: "-r" + cli_lint_extra_args: + - "lint" + cli_help_arg_name: "--help" + cli_help_extra_args: + - "lint" + examples: + - "spectral lint myfile.yml" + - "spectral lint -r .spectral.yaml myfile.yml" + install: + npm: + - "@stoplight/spectral-cli" + ide: + stoplight: + - name: Native integration + url: https://stoplight.io/studio + vscode: + - name: vscode-spectral + url: https://github.com/stoplightio/vscode-spectral diff --git a/megalinter/descriptors/openapi.megalinter-descriptor.yml b/megalinter/descriptors/openapi.megalinter-descriptor.yml index 98a11f4bd07..e50dd47e71e 100644 --- a/megalinter/descriptors/openapi.megalinter-descriptor.yml +++ b/megalinter/descriptors/openapi.megalinter-descriptor.yml @@ -14,6 +14,7 @@ file_contains_regex: linters: # Spectral - linter_name: spectral + deprecated: true linter_url: https://docs.stoplight.io/docs/spectral/674b27b261c3c-overview linter_repo: https://github.com/stoplightio/spectral linter_rules_url: https://docs.stoplight.io/docs/spectral/4dec24461f3af-open-api-rules diff --git a/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json b/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json index 6fa93f0fd17..111e56636eb 100644 --- a/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json +++ b/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json @@ -41,6 +41,7 @@ "enum": [ "ACTION", "ANSIBLE", + "API", "ARM", "BASH", "BICEP", @@ -106,6 +107,7 @@ "enum": [ "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", + "API_SPECTRAL", "ARM_ARM_TTK", "BASH_EXEC", "BASH_SHELLCHECK", @@ -666,7 +668,209 @@ }, "title": "Pre commands for ANSIBLE descriptor", "type": "array" - }, + }, + "API_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/API_FILTER_REGEX_EXCLUDE", + "title": "Excluding regex filter for API descriptor", + "type": "string" + }, + "API_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/API_FILTER_REGEX_INCLUDE", + "title": "Including regex filter for API descriptor", + "type": "string" + }, + "API_POST_COMMANDS": { + "$id": "#/properties/API_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "Post commands for API descriptor", + "type": "array" + }, + "API_PRE_COMMANDS": { + "$id": "#/properties/API_PRE_COMMANDS", + "examples": [ + [ + { + "command": "composer install", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "Pre commands for API descriptor", + "type": "array" + }, + "API_SPECTRAL_ARGUMENTS": { + "$id": "#/properties/API_SPECTRAL_ARGUMENTS", + "description": "API_SPECTRAL: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "API_SPECTRAL: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "API_SPECTRAL_CLI_EXECUTABLE": { + "$id": "#/properties/API_SPECTRAL_CLI_EXECUTABLE", + "default": [ + [ + "spectral" + ] + ], + "items": { + "type": "string" + }, + "title": "API_SPECTRAL: CLI Executable", + "type": "array" + }, + "API_SPECTRAL_CLI_LINT_MODE": { + "$id": "#/properties/API_SPECTRAL_CLI_LINT_MODE", + "default": "file", + "enum": [ + "file", + "project" + ], + "title": "API_SPECTRAL: Override default cli lint mode", + "type": "string" + }, + "API_SPECTRAL_COMMAND_REMOVE_ARGUMENTS": { + "$id": "#/properties/API_SPECTRAL_COMMAND_REMOVE_ARGUMENTS", + "description": "API_SPECTRAL: User custom arguments to remove before calling linter", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "API_SPECTRAL: Custom remove arguments", + "type": [ + "array", + "string" + ] + }, + "API_SPECTRAL_CONFIG_FILE": { + "$id": "#/properties/API_SPECTRAL_CONFIG_FILE", + "default": ".spectral.yaml", + "description": "API_SPECTRAL: User custom config file name if different from default", + "title": "API_SPECTRAL: Custom config file name", + "type": "string" + }, + "API_SPECTRAL_DISABLE_ERRORS": { + "$id": "#/properties/API_SPECTRAL_DISABLE_ERRORS", + "default": false, + "title": "API_SPECTRAL: Linter doesn't make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "API_SPECTRAL_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/API_SPECTRAL_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "API_SPECTRAL: Maximum number of errors allowed", + "type": "number" + }, + "API_SPECTRAL_FILE_EXTENSIONS": { + "$id": "#/properties/API_SPECTRAL_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "API_SPECTRAL: Override descriptor/linter matching files extensions", + "type": "array" + }, + "API_SPECTRAL_FILE_NAMES_REGEX": { + "$id": "#/properties/API_SPECTRAL_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "API_SPECTRAL: Override descriptor/linter matching file name regex", + "type": "array" + }, + "API_SPECTRAL_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/API_SPECTRAL_FILTER_REGEX_EXCLUDE", + "title": "API_SPECTRAL: Excluding Regex", + "type": "string" + }, + "API_SPECTRAL_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/API_SPECTRAL_FILTER_REGEX_INCLUDE", + "title": "API_SPECTRAL: Including Regex", + "type": "string" + }, + "API_SPECTRAL_POST_COMMANDS": { + "$id": "#/properties/API_SPECTRAL_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "API_SPECTRAL: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "API_SPECTRAL_PRE_COMMANDS": { + "$id": "#/properties/API_SPECTRAL_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "API_SPECTRAL: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "API_SPECTRAL_RULES_PATH": { + "$id": "#/properties/API_SPECTRAL_RULES_PATH", + "description": "API_SPECTRAL: Path where to find linter configuration file", + "title": "API_SPECTRAL: Custom config file path", + "type": "string" + }, + "API_SPECTRAL_UNSECURED_ENV_VARIABLES": { + "$id": "#/properties/API_SPECTRAL_UNSECURED_ENV_VARIABLES", + "default": [], + "description": "List of env variables explicitly not filtered before calling API_SPECTRAL and its pre/post commands", + "items": { + "type": "string" + }, + "title": "API_SPECTRAL: Unsecured env variables", + "type": "array" + }, "APPLY_FIXES": { "$id": "#/properties/APPLY_FIXES", "default": "none", @@ -11336,7 +11540,7 @@ "items": { "type": "string" }, - "title": "OPENAPI_SPECTRAL: Custom arguments", + "title": "(deprecated) OPENAPI_SPECTRAL: Custom arguments", "type": [ "array", "string" @@ -11352,7 +11556,7 @@ "items": { "type": "string" }, - "title": "OPENAPI_SPECTRAL: CLI Executable", + "title": "(deprecated) OPENAPI_SPECTRAL: CLI Executable", "type": "array" }, "OPENAPI_SPECTRAL_CLI_LINT_MODE": { @@ -11362,7 +11566,7 @@ "file", "project" ], - "title": "OPENAPI_SPECTRAL: Override default cli lint mode", + "title": "(deprecated) OPENAPI_SPECTRAL: Override default cli lint mode", "type": "string" }, "OPENAPI_SPECTRAL_COMMAND_REMOVE_ARGUMENTS": { @@ -11375,7 +11579,7 @@ "items": { "type": "string" }, - "title": "OPENAPI_SPECTRAL: Custom remove arguments", + "title": "(deprecated) OPENAPI_SPECTRAL: Custom remove arguments", "type": [ "array", "string" @@ -11385,19 +11589,19 @@ "$id": "#/properties/OPENAPI_SPECTRAL_CONFIG_FILE", "default": ".openapirc.yml", "description": "OPENAPI_SPECTRAL: User custom config file name if different from default", - "title": "OPENAPI_SPECTRAL: Custom config file name", + "title": "(deprecated) OPENAPI_SPECTRAL: Custom config file name", "type": "string" }, "OPENAPI_SPECTRAL_DISABLE_ERRORS": { "$id": "#/properties/OPENAPI_SPECTRAL_DISABLE_ERRORS", "default": false, - "title": "OPENAPI_SPECTRAL: Linter doesn't make MegaLinter fail even if errors are found", + "title": "(deprecated) OPENAPI_SPECTRAL: Linter doesn't make MegaLinter fail even if errors are found", "type": "boolean" }, "OPENAPI_SPECTRAL_DISABLE_ERRORS_IF_LESS_THAN": { "$id": "#/properties/OPENAPI_SPECTRAL_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "OPENAPI_SPECTRAL: Maximum number of errors allowed", + "title": "(deprecated) OPENAPI_SPECTRAL: Maximum number of errors allowed", "type": "number" }, "OPENAPI_SPECTRAL_FILE_EXTENSIONS": { @@ -11409,7 +11613,7 @@ "items": { "type": "string" }, - "title": "OPENAPI_SPECTRAL: Override descriptor/linter matching files extensions", + "title": "(deprecated) OPENAPI_SPECTRAL: Override descriptor/linter matching files extensions", "type": "array" }, "OPENAPI_SPECTRAL_FILE_NAME": { @@ -11428,17 +11632,17 @@ "items": { "type": "string" }, - "title": "OPENAPI_SPECTRAL: Override descriptor/linter matching file name regex", + "title": "(deprecated) OPENAPI_SPECTRAL: Override descriptor/linter matching file name regex", "type": "array" }, "OPENAPI_SPECTRAL_FILTER_REGEX_EXCLUDE": { "$id": "#/properties/OPENAPI_SPECTRAL_FILTER_REGEX_EXCLUDE", - "title": "OPENAPI_SPECTRAL: Excluding Regex", + "title": "(deprecated) OPENAPI_SPECTRAL: Excluding Regex", "type": "string" }, "OPENAPI_SPECTRAL_FILTER_REGEX_INCLUDE": { "$id": "#/properties/OPENAPI_SPECTRAL_FILTER_REGEX_INCLUDE", - "title": "OPENAPI_SPECTRAL: Including Regex", + "title": "(deprecated) OPENAPI_SPECTRAL: Including Regex", "type": "string" }, "OPENAPI_SPECTRAL_POST_COMMANDS": { @@ -11455,7 +11659,7 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "OPENAPI_SPECTRAL: Define or override a list of bash commands to run after the linter", + "title": "(deprecated) OPENAPI_SPECTRAL: Define or override a list of bash commands to run after the linter", "type": "array" }, "OPENAPI_SPECTRAL_PRE_COMMANDS": { @@ -11472,13 +11676,13 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "OPENAPI_SPECTRAL: Define or override a list of bash commands to run before the linter", + "title": "(deprecated) OPENAPI_SPECTRAL: Define or override a list of bash commands to run before the linter", "type": "array" }, "OPENAPI_SPECTRAL_RULES_PATH": { "$id": "#/properties/OPENAPI_SPECTRAL_RULES_PATH", "description": "OPENAPI_SPECTRAL: Path where to find linter configuration file", - "title": "OPENAPI_SPECTRAL: Custom config file path", + "title": "(deprecated) OPENAPI_SPECTRAL: Custom config file path", "type": "string" }, "OPENAPI_SPECTRAL_UNSECURED_ENV_VARIABLES": { @@ -11488,7 +11692,7 @@ "items": { "type": "string" }, - "title": "OPENAPI_SPECTRAL: Unsecured env variables", + "title": "(deprecated) OPENAPI_SPECTRAL: Unsecured env variables", "type": "array" }, "OUTPUT_DETAIL": { diff --git a/megalinter/tests/test_megalinter/linters/api_spectral_test.py b/megalinter/tests/test_megalinter/linters/api_spectral_test.py new file mode 100644 index 00000000000..5c4838f7a17 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/api_spectral_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for API linter spectral +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 api_spectral_test(TestCase, LinterTestRoot): + descriptor_id = "API" + linter_name = "spectral" diff --git a/mkdocs.yml b/mkdocs.yml index 3bf1f7aecaa..f0bb33a3a92 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,7 +5,7 @@ repo_url: https://github.com/oxsecurity/megalinter edit_uri: tree/main/docs site_author: Nicolas Vuillamy # site_description-start -site_description: MegaLinter is an Open-Source tool for CI/CD workflows that analyzes the consistency of your code, IAC, configuration, and scripts in your repository sources, to ensure all your projects sources are clean and formatted whatever IDE/toolbox is used by their developers, powered by OX Security.Supporting 60 languages, 24 formats, 20 tooling formats and ready to use out of the box, as a GitHub action or any CI system highly configurable and free for all uses.Switch to MegaLinter v7 ! +site_description: MegaLinter is an Open-Source tool for CI/CD workflows that analyzes the consistency of your code, IAC, configuration, and scripts in your repository sources, to ensure all your projects sources are clean and formatted whatever IDE/toolbox is used by their developers, powered by OX Security.Supporting 60 languages, 24 formats, 21 tooling formats and ready to use out of the box, as a GitHub action or any CI system highly configurable and free for all uses.Switch to MegaLinter v7 ! # site_description-end copyright: Copyright © 2024 OX Security & Nicolas Vuillamy theme: @@ -270,6 +270,9 @@ nav: - "ANSIBLE": - "All ANSIBLE linters": "descriptors/ansible.md" - "ansible-lint": "descriptors/ansible_ansible_lint.md" + - "API": + - "All API linters": "descriptors/api.md" + - "spectral": "descriptors/api_spectral.md" - "ARM": - "All ARM linters": "descriptors/arm.md" - "arm-ttk": "descriptors/arm_arm_ttk.md"