github 操作中的权限被拒绝错误

Permission denied error in github actions

我已经编写了一个 github 操作来检索更改的 sql 文件并使用 sqlfluff 对这些更改的文件进行 lint。

这是我的 github 操作代码:

name: files_lint

on:
  - pull_request

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2
      - name: Install Python
        uses: "actions/setup-python@v2"
        with:
          python-version: "3.7"
      - name: install sqlfluff
        run: "pip install sqlfluff"

      - name: Get changed .sql files
        id: linting
        run: some code to get the changed files

      - name: Linting files started
        id: sql_linting
        if: steps.linting.outputs.lintees != ''
        shell: bash -l {0}
        run: ${{ steps.linting.outputs.lintees }} > sqlfluff fix --force

但是当我 运行 ${{ steps.linting.outputs.lintees }} > sqlfluff fix --force 在上面的 github 操作中更改 sql 文件时,我收到一个错误

/home/runner/work/_temp/a41i1c89a4.sh: line 1: test.sql: Permission denied
Error: Process completed with exit code 126.

您不能像这样重定向文件:


run: ${{ steps.linting.outputs.lintees }} > sqlfluff fix --force

这是在尝试写入该命令的输出 - 但我猜它是文件列表而不是命令?

你应该作为参数传递(假设它是一个文件列表):


run: sqlfluff fix --force ${{ steps.linting.outputs.lintees }}

另外我猜你之后会用它做些什么?如果不是,固定文件将不会执行任何操作。如果你只是想检查文件 sqlfluff lint 会比 sqlfluff fix 更好(并且捕获更多问题因为 sqlfluff fix 只查看它可以修复的规则)。