Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: github/super-linter
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v6
Choose a base ref
...
head repository: github/super-linter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v7
Choose a head ref
Loading
Showing with 10,392 additions and 7,259 deletions.
  1. +9 −12 .devcontainer/devcontainer.json
  2. +6 −0 .editorconfig
  3. +53 −5 .github/ISSUE_TEMPLATE/bug_report.yml
  4. +0 −1 .github/ISSUE_TEMPLATE/config.yml
  5. +3 −7 .github/ISSUE_TEMPLATE/feature_request.yml
  6. +5 −4 .github/dependabot.yml
  7. +0 −3 .github/linters/.cfnlintrc.yml
  8. +0 −2 .github/linters/.checkov-test-linters-failure.yaml
  9. +14 −1 .github/linters/.checkov-test-linters-success.yaml
  10. +3 −2 .github/linters/.checkov.yaml
  11. +0 −802 .github/linters/.chktexrc
  12. +0 −18 .github/linters/.ecrc
  13. +43 −0 .github/linters/.eslintrc.yml
  14. +0 −3 .github/linters/.flake8
  15. +3 −38 .github/linters/.golangci.yml
  16. +8 −8 .github/linters/.hadolint.yaml
  17. +0 −25 .github/linters/.htmlhintrc
  18. +0 −2 .github/linters/.isort.cfg
  19. +2 −6 .github/linters/.jscpd-test-linters.json
  20. +11 −4 .github/linters/.jscpd.json
  21. +0 −1 .github/linters/.lintr
  22. +0 −1 .github/linters/.luacheckrc
  23. +1 −34 .github/linters/.markdown-lint.yml
  24. +0 −9 .github/linters/.openapirc.yml
  25. +0 −2 .github/linters/.perlcriticrc
  26. +0 −8 .github/linters/.protolintrc.yml
  27. +0 −470 .github/linters/.python-lint
  28. +0 −8 .github/linters/.ruby-lint.yml
  29. +0 −3 .github/linters/.sql-config.json
  30. +0 −18 .github/linters/.sqlfluff
  31. +0 −3 .github/linters/.stylelintrc.json
  32. +0 −8 .github/linters/.textlintrc
  33. +0 −3 .github/linters/actionlint.yaml
  34. +4 −4 .github/linters/commitlint.config.js
  35. +3 −12 .github/linters/tsconfig.json
  36. +13 −5 .github/pull_request-template.md
  37. +1 −1 .github/release-please/.release-please-manifest.json
  38. +1 −5 .github/release-please/release-please-config.json
  39. +19 −57 .github/workflows/cd.yml
  40. +153 −54 .github/workflows/ci.yml
  41. +1 −2 .github/workflows/dependabot-automation.yaml
  42. +1 −2 .github/workflows/lint-commit.yaml
  43. +4 −4 .github/workflows/stale.yml
  44. +0 −39 .github/workflows/sync-scala-version.yaml
  45. +28 −29 .github/workflows/thank_contributors.yaml
  46. +9 −1 .gitignore
  47. +448 −0 CHANGELOG.md
  48. +16 −13 CODE_OF_CONDUCT.md
  49. +78 −52 Dockerfile
  50. +218 −21 Makefile
  51. +1 −0 README.md
  52. +8 −8 TEMPLATES/.ansible-lint.yml
  53. +0 −1 TEMPLATES/.checkov.yaml
  54. +2 −36 TEMPLATES/.eslintrc.yml
  55. +3 −2 TEMPLATES/.golangci.yml
  56. +62 −62 TEMPLATES/.groovylintrc.json
  57. +2 −7 TEMPLATES/.jscpd.json
  58. +8 −8 TEMPLATES/.markdown-lint.yml
  59. +0 −1 TEMPLATES/.openapirc.yml
  60. +7 −0 TEMPLATES/.python-lint
  61. 0 .github/linters/.python-black → TEMPLATES/.python-pyink
  62. +6 −2 TEMPLATES/.scalafmt.conf
  63. +4 −0 TEMPLATES/.shellcheckrc
  64. +0 −3 TEMPLATES/.sql-config.json
  65. +0 −4 TEMPLATES/actionlint.yml
  66. +7 −7 action.yml
  67. +8 −5 dependencies/Gemfile
  68. +52 −46 dependencies/Gemfile.lock
  69. +1 −1 dependencies/checkstyle/build.gradle
  70. +1 −1 dependencies/google-java-format/build.gradle
  71. +1 −1 dependencies/ktlint/build.gradle
  72. +3,505 −3,886 dependencies/package-lock.json
  73. +30 −31 dependencies/package.json
  74. +4 −4 dependencies/phive.xml
  75. +1 −1 dependencies/python/ansible-lint.txt
  76. +1 −1 dependencies/python/black.txt
  77. +1 −1 dependencies/python/cfn-lint.txt
  78. +1 −1 dependencies/python/checkov.txt
  79. +1 −1 dependencies/python/flake8.txt
  80. +1 −1 dependencies/python/mypy.txt
  81. +1 −0 dependencies/python/pyink.txt
  82. +1 −1 dependencies/python/pylint.txt
  83. +1 −1 dependencies/python/ruff.txt
  84. +1 −1 dependencies/python/snakefmt.txt
  85. +1 −1 dependencies/python/snakemake.txt
  86. +1 −1 dependencies/python/sqlfluff.txt
  87. +1 −1 dependencies/python/yq.txt
  88. +2 −2 dev-dependencies/Dockerfile
  89. +43 −54 dev-dependencies/package-lock.json
  90. +2 −2 dev-dependencies/package.json
  91. +117 −47 docs/add-new-linter.md
  92. +3 −3 docs/release-process.md
  93. +57 −34 docs/run-linter-locally.md
  94. +63 −2 docs/upgrade-guide.md
  95. +64 −27 lib/functions/buildFileList.sh
  96. +16 −1 lib/functions/detectFiles.sh
  97. +20 −0 lib/functions/githubDomain.sh
  98. +138 −37 lib/functions/linterCommands.sh
  99. +1 −54 lib/functions/linterRules.sh
  100. +57 −0 lib/functions/output.sh
  101. +170 −49 lib/functions/validation.sh
  102. +35 −23 lib/functions/worker.sh
  103. +43 −0 lib/globals/languages.sh
  104. +104 −0 lib/globals/linterCommandsOptions.sh
  105. +107 −0 lib/globals/linterRules.sh
  106. +227 −196 lib/linter.sh
  107. +44 −0 scripts/build-metadata.sh
  108. +0 −11 scripts/clippy.sh
  109. +9 −27 scripts/install-lua.sh
  110. +2 −2 scripts/install-phive.sh
  111. +6 −3 scripts/linterVersions.sh
  112. +7 −7 slim/action.yml
  113. +246 −0 test/data/github-event/github-event-push-merge-commit.json
  114. +1 −7 test/data/github-event/github-event-push.json
  115. +91 −0 test/data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-failure-slim.md
  116. +101 −0 ...data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-failure-standard.md
  117. +91 −0 test/data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-success-slim.md
  118. +101 −0 ...data/super-linter-summary/markdown/table/expected-summary-test-linters-expect-success-standard.md
  119. +50 −0 test/data/super-linter-summary/markdown/table/expected-summary-test-linters-fix-mode-slim.md
  120. +59 −0 test/data/super-linter-summary/markdown/table/expected-summary-test-linters-fix-mode-standard.md
  121. +36 −18 test/inspec/super-linter/controls/super_linter.rb
  122. +45 −14 test/lib/buildFileListTest.sh
  123. +41 −17 test/lib/detectFilesTest.sh
  124. +8 −14 test/lib/githubEventTest.sh
  125. +50 −0 test/lib/globalsLanguagesTest.sh
  126. +44 −0 test/lib/globalsLinterCommandsOptionsTest.sh
  127. +310 −0 test/lib/linterCommandsTest.sh
  128. +148 −0 test/lib/linterRulesTest.sh
  129. +138 −0 test/lib/outputTest.sh
  130. +8 −16 test/lib/setupSSHTest.sh
  131. +479 −12 test/lib/validationTest.sh
  132. +8 −0 test/linters-config/fix-mode/.ansible-lint.yml
  133. +43 −0 test/linters-config/fix-mode/.eslintrc.yml
  134. +4 −0 test/linters-config/fix-mode/.golangci.yml
  135. +10 −7 test/linters/ansible/bad/playbooks/ansible_bad_1.yml
  136. +1 −1 test/linters/ansible/good/playbooks/ansible_good_1.yml
  137. +24 −0 test/linters/checkov/bad/bad_chart/Chart.yaml
  138. +31 −0 test/linters/checkov/bad/bad_chart/templates/deployment.yaml
  139. +14 −0 test/linters/checkov/bad/bad_chart/values.yaml
  140. +29 −0 test/linters/checkov/bad/bad_kustomize/graph_check.yaml
  141. +7 −0 test/linters/checkov/bad/bad_kustomize/kustomization.yaml
  142. +24 −0 test/linters/checkov/good/good_chart/Chart.yaml
  143. +39 −0 test/linters/checkov/good/good_chart/templates/deployment.yaml
  144. +36 −0 test/linters/checkov/good/good_chart/values.yaml
  145. +60 −0 test/linters/checkov/good/good_kustomize/graph_check.yaml
  146. +15 −0 test/linters/checkov/good/good_kustomize/kustomization.yaml
  147. +1 −1 test/linters/cloudformation/cloudformation_good_1.json
  148. +1 −1 test/linters/cloudformation/cloudformation_good_2.yaml
  149. +22 −0 test/linters/css_prettier/css_prettier_bad_01.css
  150. +30 −0 test/linters/css_prettier/css_prettier_good_01.css
  151. +5 −0 test/linters/dotnet_sln_format_analyzers/bad/.editorconfig
  152. +11 −0 test/linters/dotnet_sln_format_analyzers/bad/Directory.Build.props
  153. +58 −0 test/linters/dotnet_sln_format_analyzers/bad/format.sln
  154. +18 −0 test/linters/dotnet_sln_format_analyzers/bad/src/Program.cs
  155. +40 −0 test/linters/dotnet_sln_format_analyzers/bad/src/dotnet-format.csproj
  156. +6 −0 test/linters/dotnet_sln_format_analyzers/good/.editorconfig
  157. +11 −0 test/linters/dotnet_sln_format_analyzers/good/Directory.Build.props
  158. +58 −0 test/linters/dotnet_sln_format_analyzers/good/format.sln
  159. +20 −0 test/linters/dotnet_sln_format_analyzers/good/src/Program.cs
  160. +40 −0 test/linters/dotnet_sln_format_analyzers/good/src/dotnet-format.csproj
  161. +5 −0 test/linters/dotnet_sln_format_style/bad/.editorconfig
  162. +11 −0 test/linters/dotnet_sln_format_style/bad/Directory.Build.props
  163. +58 −0 test/linters/dotnet_sln_format_style/bad/format.sln
  164. +17 −0 test/linters/dotnet_sln_format_style/bad/src/Program.cs
  165. +36 −0 test/linters/dotnet_sln_format_style/bad/src/dotnet-format.csproj
  166. +5 −0 test/linters/dotnet_sln_format_style/good/.editorconfig
  167. +11 −0 test/linters/dotnet_sln_format_style/good/Directory.Build.props
  168. +58 −0 test/linters/dotnet_sln_format_style/good/format.sln
  169. +6 −0 test/linters/dotnet_sln_format_style/good/src/Program.cs
  170. +36 −0 test/linters/dotnet_sln_format_style/good/src/dotnet-format.csproj
  171. +58 −0 test/linters/dotnet_sln_format_whitespace/bad/format.sln
  172. +17 −0 test/linters/dotnet_sln_format_whitespace/bad/src/Program.cs
  173. +63 −0 test/linters/dotnet_sln_format_whitespace/bad/src/dotnet-format.csproj
  174. +58 −0 test/linters/dotnet_sln_format_whitespace/good/format.sln
  175. +15 −0 test/linters/dotnet_sln_format_whitespace/good/src/Program.cs
  176. +63 −0 test/linters/dotnet_sln_format_whitespace/good/src/dotnet-format.csproj
  177. +0 −1 test/linters/github_actions/actions_good_01.yml
  178. +6 −2 test/linters/go/golang_bad_01.go
  179. +3 −6 test/linters/go_modules/go_modules_bad/golang_bad_01.go
  180. +3 −0 test/linters/graphql_prettier/graphql_prettier_bad_01.graphql
  181. +5 −0 test/linters/graphql_prettier/graphql_prettier_good_01.graphql
  182. +3 −1 test/linters/groovy/groovy_good_01.groovy
  183. +13 −0 test/linters/html_prettier/html_prettier_bad_01.html
  184. +11 −0 test/linters/html_prettier/html_prettier_good_01.html
  185. +6 −195 test/linters/javascript_es/javascript_bad_1.js
  186. +6 −133 test/linters/javascript_es/javascript_good_1.js
  187. +6 −11 test/linters/javascript_prettier/javascript_bad_1.js
  188. +5 −195 test/linters/javascript_standard/javascript_bad_1.js
  189. +4 −2 test/linters/json/.dotfile_json_bad_2.json
  190. +4 −2 test/linters/json/json_bad_1.json
  191. +13 −0 test/linters/json_prettier/json_prettier_bad_01.json
  192. +10 −0 test/linters/json_prettier/json_prettier_good_01.json
  193. +4 −2 test/linters/jsonc/json_bad_1.jsonc
  194. +11 −0 test/linters/jsonc_prettier/json_prettier_bad_1.json5
  195. +11 −0 test/linters/jsonc_prettier/json_prettier_good_1.json5
  196. +3 −1 test/linters/jsx/jsx_bad_1.jsx
  197. +3 −0 test/linters/jsx/jsx_good_1.jsx
  198. +4 −0 test/linters/jsx_prettier/jsx_prettier_bad_01.jsx
  199. +4 −0 test/linters/jsx_prettier/jsx_prettier_good_01.jsx
  200. +5 −10 test/linters/markdown/markdown_bad_1.md
  201. +20 −0 test/linters/markdown_prettier/markdown_prettier_bad_01.md
  202. +21 −0 test/linters/markdown_prettier/markdown_prettier_good_01.md
  203. +1 −9 test/linters/protobuf/protobuf_bad_1.proto
  204. +4 −0 test/linters/python_pyink/python_bad_1.py
  205. +4 −0 test/linters/python_pyink/python_good_1.py
  206. +6 −4 test/linters/python_pylint/python_good_1.py
  207. +5 −0 test/linters/python_pylint/python_good_2.py
  208. +4 −3 test/linters/python_ruff/python_bad_1.py
  209. +5 −2 test/linters/rust_clippy/bad/src/main.rs
  210. +0 −1 test/linters/sql/sql_bad_1.sql
  211. +0 −1 test/linters/sql/sql_good_1.sql
  212. +3 −1 test/linters/sqlfluff/sqlfluff_bad_1.sql
  213. +1 −1 test/linters/tsx/tsx_bad_1.tsx
  214. +4 −1 test/linters/tsx/tsx_good_1.tsx
  215. +8 −6 test/linters/typescript_es/typescript_bad_1.ts
  216. +10 −0 test/linters/typescript_prettier/typescript_bad_1.ts
  217. +11 −0 test/linters/typescript_prettier/typescript_good_1.ts
  218. +6 −7 test/linters/typescript_standard/typescript_bad_1.ts
  219. +23 −0 test/linters/vue_prettier/vue_prettier_bad_01.vue
  220. +23 −0 test/linters/vue_prettier/vue_prettier_good_01.vue
  221. +19 −0 test/linters/yaml_prettier/yaml_prettier_bad_01.yml
  222. +19 −0 test/linters/yaml_prettier/yaml_prettier_bad_02.yaml
  223. +18 −0 test/linters/yaml_prettier/yaml_prettier_good_01.yml
  224. +18 −0 test/linters/yaml_prettier/yaml_prettier_good_02.yaml
  225. +364 −32 test/run-super-linter-tests.sh
  226. +201 −0 test/testUtils.sh
  227. +1 −1 version.txt
21 changes: 9 additions & 12 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -3,10 +3,15 @@
"image": "ghcr.io/super-linter/super-linter:latest",
"customizations": {
"vscode": {
"settings": {},
"settings": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.wordWrap": "off",
"prettier.resolveGlobalModules": true
},
"extensions": [
"DavidAnson.vscode-markdownlint",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"GitHub.vscode-github-actions",
"GitHub.vscode-pull-request-github",
"mads-hartmann.bash-ide-vscode",
@@ -24,18 +29,10 @@
"type": "bind"
},
{
"source": "${localWorkspaceFolder}/lib/linter.sh",
"target": "/action/lib/linter.sh",
"type": "bind"
},
{
"source": "${localWorkspaceFolder}/lib/functions",
"target": "/action/lib/functions",
"source": "${localWorkspaceFolder}/lib",
"target": "/action/lib",
"type": "bind"
}
],
"runArgs": [
"--env-file",
".devcontainer/devcontainer.env"
]
"runArgs": ["--env-file", ".devcontainer/devcontainer.env"]
}
6 changes: 6 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -33,3 +33,9 @@ indent_size = 4
# Disable the filename rule because our test case logic requires that files used in test cases
# follow a certain syntax which is not compatible with what ktlint currently mandates (PascalCase)
disabled_rules = filename

[*.md]

# Indentation in Markdown files might not be constant, or a multiple of 2.
# Prettier takes care of formatting Markdown files.
indent_size = unset
58 changes: 53 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -13,8 +13,34 @@ body:
label: Is there an existing issue for this?
description: Search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- label: I have searched the existing issues
required: true
- type: checkboxes
attributes:
label: Are you using the latest Super-linter version available?
description: |
Ensure that you're using the latest Super-linter version.
https://github.com/super-linter/super-linter/releases/latest
options:
- label: I am using the latest Super-linter version.
required: true
- label: |
I can reproduce the issue running Super-linter using complete version identifier (example: vX.Y.Z), and not just with a partial one (example: vX)
required: true
- label: |
I am using the super-linter/super-linter action or container image, and not the deprecated github/super-linter action or container image.
required: true
- type: checkboxes
attributes:
label: Are you resonably sure that it's a Super-linter issue, and not an issue related to a tool that Super-linter runs?
description: |
If you encounter a specific issue, ensure that the issue is about
Super-linter, and not about a tool that Super-linter runs. For example,
if a linter reports an unexpected or a surprising error, you may check
if there are similar issues reported in that linter's issue tracker.
options:
- label: I think that this is a Super-linter issue.
required: true
- type: textarea
attributes:
label: Current Behavior
@@ -33,10 +59,33 @@ body:
description: |
Super-Linter version where you observed this issue
placeholder: |
vX.Y.Z
vX.Y.Z
render: markdown
validations:
required: true
- type: textarea
attributes:
label: Super-linter configuration
description: |
How you configured Super-linter to experience the issue.
If running on GitHub Actions, include the actions/checkout step
as well.
placeholder: |
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Super-linter
uses: super-linter/super-linter@vX.Y.Z
env:
# To report GitHub Actions status checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
........
........
render: yaml
validations:
required: true
- type: textarea
id: logs
attributes:
@@ -45,6 +94,7 @@ body:
Copy and paste any relevant log output.
This will be automatically formatted into code, so no need for backticks.
Enable debug logging, either on GitHub Actions, or when running locally.
Not attaching debug logging will delay the issue triaging process.
render: shell
validations:
required: true
@@ -67,7 +117,5 @@ body:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
---
blank_issues_enabled: false
...
10 changes: 3 additions & 7 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -16,8 +16,8 @@ body:
label: Is there an existing issue for this?
description: Search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
@@ -34,10 +34,6 @@ body:
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
Links? References? Anything that will give us more context about the issue you are encountering.
validations:
required: false

---
9 changes: 5 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -4,16 +4,17 @@
#################################
version: 2
updates:

- package-ecosystem: "devcontainers"
commit-message:
prefix: "chore(devcontainer)"
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 100

- package-ecosystem: github-actions
commit-message:
prefix: "deps(github-actions)"
prefix: "ci(github-actions)"
directory: "/"
schedule:
interval: "weekly"
@@ -77,15 +78,15 @@ updates:

- package-ecosystem: "docker"
commit-message:
prefix: "deps(dev-docker)"
prefix: "ci(dev-docker)"
directory: "/dev-dependencies"
schedule:
interval: "weekly"
open-pull-requests-limit: 100

- package-ecosystem: "npm"
commit-message:
prefix: "deps(dev-npm)"
prefix: "ci(dev-npm)"
directory: "/dev-dependencies"
schedule:
interval: "weekly"
3 changes: 0 additions & 3 deletions .github/linters/.cfnlintrc.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .github/linters/.checkov-test-linters-failure.yaml
Original file line number Diff line number Diff line change
@@ -5,5 +5,3 @@ directory:
- test/linters/checkov/bad

quiet: false

...
15 changes: 14 additions & 1 deletion .github/linters/.checkov-test-linters-success.yaml
Original file line number Diff line number Diff line change
@@ -5,4 +5,17 @@ directory:
- test/linters/checkov/good

quiet: false
...

skip-framework:
# The Kubernetes framework because it doesn't run Kustomize before running the
# scan, as expected. There's the Kustomize framework for that.
# If we don't skip the Kubernetes framework, Checkov reports issues against
# Kubernetes descriptors that we handle with Kustomize. For example, we set
# a non-default Kubernetes Namespace using Kustomize.
# Checkov doesn't currently support skipping checks only for a given set of
# frameworks, and the Kubernetes framework runs the same checks that the Helm
# and the Kustomize frameworks run. So, we skip the Kubernetes framework when
# running test cases. In case we need to implement new Kubernetes test cases,
# we have to do that as part of the test Helm chart or the test Kustomize
# "package".
- kubernetes
5 changes: 3 additions & 2 deletions .github/linters/.checkov.yaml
Original file line number Diff line number Diff line change
@@ -17,7 +17,9 @@ quiet: true
skip-path:
- test/linters/ansible
- test/linters/arm
- test/linters/checkov/bad
# We can't exclude just test/linters/checkov/bad because of
# https://github.com/bridgecrewio/checkov/issues/6468
- test/linters/checkov
- test/linters/dockerfile_hadolint
- test/linters/jscpd
- test/linters/json
@@ -26,4 +28,3 @@ skip-path:
- test/linters/terraform_fmt
- test/linters/terraform_tflint
- test/linters/terraform_terrascan
...
Loading