gate: lint every shell script with shellcheck, and fail when shellcheck is missing #761
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#762 lint: remove the SC1091 disables from the shell scripts
sixfold-space/madtea
#763 lint: remove the SC2317 disables from gate.sh and mcp-conformance.sh
sixfold-space/madtea
#764 lint: remove the SC2016 disables from the hook tests
sixfold-space/madtea
#765 lint: split ENV_PAIRS into an array in the hook harness
sixfold-space/madtea
#766 epic: shellcheck passes on every shell script, with no inline disables
sixfold-space/madtea
Reference
sixfold-space/madtea#761
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
The gate runs shellcheck on one file,
scripts/install.sh(scripts/check-install-sh-pins.sh:84-85). The repo tracks 52.shfiles. The other 51 get no lint, and 9 of them are the plugin hooks inhooks/scripts/that ship to users.The one lint that runs is skipped when shellcheck is not installed.
scripts/check-install-sh-pins.sh:86-87prints a skip line, and the step still passes. The CIgatejob installs onlyjqandpython3(.forgejo/workflows/ci.yml:151), so CI does not install shellcheck for this step.How
.shfile and fails on any finding.scripts/check-install-sh-pins.sh:86-87.gatejob and inscripts/setup-dev.sh, at the same version.Acceptance
.shfile has a shellcheck finding.