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

如何让Super Linter检查分支所有提交文件而非仅最新提交?

解决Super Linter仅检查最新提交文件的问题

修改后的Workflow配置

name: Super Linter Java Check

on: [push]

jobs:
  lint:
    runs-on: ubuntu-latest

    steps:
      # 拉取完整代码仓库历史
      - name: Checkout repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      # 获取当前分支相对于默认分支的所有变更文件
      - name: Fetch all changed files in branch
        id: get-changed-files
        run: |
          # 对比默认分支与当前分支的所有提交差异,提取变更文件列表
          CHANGED_FILES=$(git diff --name-only origin/${{ env.DEFAULT_BRANCH }}...HEAD)
          # 将换行分隔转为逗号分隔格式,适配Super Linter的FILES_TO_LINT参数
          echo "files_to_lint=$(echo "$CHANGED_FILES" | tr '\n' ',' | sed 's/,$//')" >> $GITHUB_OUTPUT

      # 运行Super Linter检查所有变更文件
      - name: Run Super Linter
        uses: super-linter/super-linter@v7.1.0
        env:
          VALIDATE_ALL_CODEBASE: false
          VALIDATE_JAVA: true
          DEFAULT_BRANCH: master  # 替换为你的仓库默认分支
          FILES_TO_LINT: ${{ steps.get-changed-files.outputs.files_to_lint }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

关键修改说明

  • 新增Fetch all changed files in branch步骤:通过git diff --name-only origin/master...HEAD获取当前分支相对于默认分支的所有提交变更文件(三点语法会对比默认分支到当前分支的完整提交链差异)。
  • 将变更文件列表转为逗号分隔格式:Super Linter的FILES_TO_LINT环境变量接受逗号分隔的文件路径,因此用tr和sed做格式转换。
  • 传递文件列表给Super Linter:通过步骤输出变量files_to_lint将所有变更文件传入,替代默认的仅检查最后一次提交文件的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:04:58