ci(lint): add shell linter - Differential ShellCheck #2243
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Addition of a new job in CI workflow that will Scan all shell scripts in the repo using ShellCheck and report only newly added defects.
Motivation and Context
Differential ShellCheck is a GitHub action that performs differential ShellCheck scans on shell scripts changed via PR and reports results directly in PR.
It's great for projects with a greater number of ShellCheck defects where it's not feasible to fix or mask all of them. I see that you have an allow-list of files that can be scanned because they are free of ShellCheck defects. But from what I can see when someone changes a script that is not on the list, CI won't check the changes. But when running ShellCheck scans differentially, you can scan all shell scripts, and only new defects will be reported.
It is able to produce reports in SARIF format. GitHub understands this format and is able to display it nicely as a PR comment, and on the
Files Changed
tab, please see below.Documentation is available at @redhat-plumbers-in-action/differential-shellcheck. Let me know If you are missing some feature or option. I'm always happy to extend functionality.
Screenshots (if appropriate):
Types of changes
Checklist:
clean_files.txt
and formatted it usinglint_clean_files.sh
.