You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

super-linter无法检测已成功拉取的子模块问题求助

解决Super-Linter无法识别Git子模块的问题

问题分析

你已通过actions/checkout@v4成功拉取含递归子模块的仓库,子模块位于src/components目录,但Super-Linter跳过了该目录。日志提示File:{/github/workspace/src/components} existed in commit data, but not found on file system,原因是父仓库Git仅记录子模块引用而非实际文件,Super-Linter默认基于Git提交数据筛选文件时,会误将子模块目录判定为“不存在的文件”,从而跳过扫描。

解决方案

修改Super-Linter的环境变量配置,强制其直接扫描本地文件系统(包含子模块目录),具体配置如下:

- name: Clone repository
  uses: actions/checkout@v4
  with:
    submodules: recursive
    fetch-depth: 0

- name: Super-linter
  uses: super-linter/super-linter@v5.7.2
  env:
    DEFAULT_BRANCH: develop
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    VALIDATE_ALL_CODEBASE: true
    RUN_LOCAL: true
    SKIP_GIT_DIFF: true
    # 可选:按需限制扫描范围,比如仅扫描src目录下的所有文件
    FILTER_REGEX_INCLUDE: "^src/.*"

关键变量说明

  • RUN_LOCAL: true:让Super-Linter直接读取本地文件系统内容,而非依赖Git提交记录或GitHub API获取文件列表
  • SKIP_GIT_DIFF: true:跳过基于Git差异的文件筛选逻辑,确保扫描工作区内所有文件
  • VALIDATE_ALL_CODEBASE: true:明确指定扫描整个代码库,与前两个变量配合确保覆盖子模块
  • FILTER_REGEX_INCLUDE:可选配置,用于缩小扫描范围,避免扫描无关文件

备选方案(复杂场景适配)

如果子模块是独立代码库,需单独定制扫描规则,可在工作流中添加单独步骤,进入子模块目录运行Super-Linter:

- name: Lint submodule
  uses: super-linter/super-linter@v5.7.2
  env:
    DEFAULT_BRANCH: develop
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    RUN_LOCAL: true
    WORKING_DIRECTORY: "./src/components"

内容的提问来源于stack exchange,提问作者Niahm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:52:28