如何设置 eslint 以检查 master 分支和 HEAD 之间的所有内容

How to setup eslint to lint everything between master branch and HEAD

我正在尝试设置 GitHub 操作来检查 lint 错误并在检测到任何错误/警告时使拉取请求失败。

目前我的逻辑在本地工作,但是当我尝试通过 GitHub 操作 运行 它时,我收到一个错误:

fatal: ambiguous argument 'origin/master...HEAD': unknown revision or path not in the working tree.

我认为这与 checkout@v2 没有获取正确数量的数据有关,但我无法理解是什么

代码示例

name: Initiate PR
on: push
jobs:
  STEPS:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 100
      - name: Set up Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 14.18.0
      - name: Install Node.js dependencies
        run: npm ci --ignore-scripts
      - name: lint-on-PR
        shell: bash
        run: |
          npx eslint --max-warnings 0 $(git diff origin/master...HEAD --name-only --relative --diff-filter=MATR '***.js' '***.jsx' '***.ts' '***.tsx' | xargs)

您可能需要 checkout@v1 作为 in this example 来获取所有文件。

- uses: actions/checkout@v1
...
- run: git diff ${{ github.event.pull_request.base.sha }} ${{ github.sha }}

v2 默认只获取触发操作的 sha。