用途:在仓库中编排 MegaLinter,完成 lint 检查与修复,使 CI lint 任务通过。MegaLinter 聚合 100 多种 linter,以 Docker 镜像运行,本地可用 npx mega-linter-runner,也可作为 CI 任务。
主要能力与流程:先检测仓库状态——若无 .mega-linter.yml 且无 MegaLinter CI 工作流文件,先运行 megalinter-setup 技能;若已有配置则进入检查。用 megalinter-check 收集错误:若当前分支/PR 的 CI 任务正在运行或刚失败,用其 watch 模式;否则用本地模式(需 docker 或 podman,缺失时技能会提示安装/启动)。本地运行资源消耗大(基于 Docker,需较好配置与网络,可能下载数 GB 镜像),因此当仓库有 CI 工作流时通常推荐用 CI,并询问用户选择(CI 优先/推荐)。发现错误后运行 megalinter-fix,修复后再次 megalinter-check,本地模式优先用定向重查(仅针对之前失败的 linter 和已修复文件并行运行独立 linter)。最多重复 3 次,仍有错误则停止并报告,建议手动修复、禁用规则或禁用 linter。若报告 slow_linters,即使全绿也在循环末尾转达性能建议,但需用户同意才应用。
规则:不得在默认分支(main/master)提交或推送,先建 megalinter/fix-<topic> 分支;禁用任何 linter 或规则、推送提交前须询问用户;禁止 force-push,唯一例外是 MegaLinter 自身在被监视分支上推送了 [MegaLinter] Apply linters fixes 提交时,megalinter-check 会加 🤖 前缀 amend 并用 --force-with-lease 重新推送以触发 CI,绝不用普通 --force,其他情况一律禁止。每阶段后简短告知用户状态。
优化:若环境支持子代理且存在 megalinter-watcher、megalinter-runner、megalinter-fixer 定义,可将 CI 监视委派给 watcher、本地运行委派给 runner(避免大日志进入上下文,只返回紧凑错误列表),并为每个失败 linter 并行启动一个 fixer;不可用时按技能说明内联执行。
限制:本地运行需容器引擎且资源消耗大;具体配置、收费、平台支持等资料未提供。