Github 针对拉取请求错误的操作

问题描述 投票:0回答:1

我不太擅长使用 github,我最常使用的是 git push 和 git pull,所以我遇到了这个错误,并且不知道如何修复它

这是错误

Run FORBIDDEN_FILES=("appsettings.json" "program.cs")
  FORBIDDEN_FILES=("appsettings.json" "program.cs")
  for FILE in "${FORBIDDEN_FILES[@]}"; do
    echo "Checking $FILE"
    if git diff --name-only origin/dev_branch..0a7488a784a893ab515dbd8853a32009d3f0d83d | grep -q "^$FILE$"; then
      echo "Error: You are trying to merge changes to a forbidden file: $FILE"
      exit 1
    fi
  done
  shell: /usr/bin/bash -e {0}
Checking appsettings.json
fatal: ambiguous argument 'origin/dev_branch..0a7488a784a893ab515dbd8853a32009d3f0d83d': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Checking program.cs
fatal: ambiguous argument 'origin/dev_branch..0a7488a784a893ab515dbd8853a32009d3f0d83d': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

这是 github 操作代码

name: Check Forbidden Files

on: pull_request

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Check for forbidden file changes
      run: |
        FORBIDDEN_FILES=("appsettings.json" "program.cs")
        for FILE in "${FORBIDDEN_FILES[@]}"; do
          echo "Checking $FILE"
          if git diff --name-only origin/${{ github.base_ref }}..${{ github.sha }} | grep -q "^$FILE$";     then
            echo "Error: You are trying to merge changes to a forbidden file: $FILE"
            exit 1
          fi
        done

最疯狂的部分是我有另一个几乎相同的 API,具有相同的 github 操作,但它从未遇到此错误。到目前为止,我已经尝试孤立我正在合并的分支,甚至尝试孤立并恢复主分支。然后我删除了整个存储库并重新提交本地文件以重新创建它。有什么建议吗?

github github-actions pull-request
1个回答
0
投票

尝试修改您指定要在 GitHub Actions 工作流程中进行比较的 Git 修订范围的行。您可以使用以下命令,而不是使用 origin/${{ github.base_ref }}..${{ github.sha }}:

- name: Check for forbidden file changes
  run: |
    FORBIDDEN_FILES=("appsettings.json" "program.cs")
    for FILE in "${FORBIDDEN_FILES[@]}"; do
      echo "Checking $FILE"
      if git diff --name-only ${{ github.base_ref }}..${{ github.sha }} | grep -q "^$FILE$"; then
       echo "Error: You are trying to merge changes to a forbidden file: $FILE"
       exit 1
      fi
    done
© www.soinside.com 2019 - 2024. All rights reserved.