用途
该技能用于在项目中运行 lint 检查,覆盖两类目标:Shell 脚本和 GitHub Actions 工作流。适合在推送代码之前执行,或在修复 lint 问题时使用。
主要能力
- Shell 脚本检查(shellcheck)
先通过 git diff 找出相对于 main 分支发生变更的 .sh 文件,然后对每个存在的脚本运行 shellcheck,并以 gcc 格式输出结果:
# Find changed shell scripts
changed_scripts=$(git diff --name-only main...HEAD 2>/dev/null | grep -E '\.sh$')
# Run shellcheck on each
for script in $changed_scripts; do
if [[ -f "$script" ]]; then
shellcheck -f gcc "$script"
fi
done
- GitHub Actions 工作流检查(actionlint)
先通过 git diff 找出相对于 main 分支发生变更的 .github/workflows/ 下的 .yml 或 .yaml 文件,然后对每个存在的工作流运行 actionlint:
# Find changed workflow files
changed_workflows=$(git diff --name-only main...HEAD 2>/dev/null | grep -E '\.github/workflows/.*\.ya?ml$')
# Run actionlint on each
for workflow in $changed_workflows; do
if [[ -f "$workflow" ]]; then
actionlint "$workflow"
fi
done
使用方式
按上述步骤对变更文件执行检查。检查范围限定为相对于 main 分支发生变更的文件,而非整个仓库。
问题处理
发现 lint 问题时:
- 修复问题:直接修正代码以消除告警或错误。
- 仅在最后手段使用 disable 指令:如果某个告警是误报或确实无法避免,添加带说明的 disable 注释,例如:
# shellcheck disable=SC2034 # Variable used by sourcing script
- 报告修复内容:总结所做的更改。
可选指引
技能支持通过 $ARGUMENTS 传入可选指引。
适用场景与限制
适用于在推送前对变更的 Shell 脚本与 GitHub Actions 工作流做静态检查,或用于修复相关 lint 问题。检查依赖 shellcheck 与 actionlint 工具,且以 main 分支为比较基准;其他环境要求、安装方式与配置细节暂未提供。