Github Action拉取请求未提供github_sha的最后一次提交

时间:2019-12-24 15:57:54

标签: git github github-actions

我有一个github操作工作流程,该工作流程是在请求请求时触发的。我想查找每次提交中已更改的文件,因此我试图运行git diff-tree --no-commit-id --name-only -r ${{ github.sha }}
但是,它不会返回该请求中最新提交的哈希提交。我又返回了另一个哈希提交(在我的仓库中找不到它的提交)。
任何人都知道如何解决此问题,或者以其他方式可以找到在请求请求中提交中更改的所有文件?

编辑-yml文件

name: test
on: [pull_request]
jobs:
  build: 
    runs-on: ubuntu-latest
    steps:
    - checkout my repo
    - install python
    - run a python script
      run: |
        CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }})
        python3 .github/scripts/test.py $CHANGED_FILES

我的github.sha(此处为^)生成的哈希提交似乎与我的提交的实际哈希不匹配。

1 个答案:

答案 0 :(得分:3)

我碰到了一个类似的问题,但触发器不同。事实证明,您可以使用以下步骤打印GitHub变量:

- name: Dump GitHub context
  env:
    GITHUB_CONTEXT: ${{ toJson(github) }}
  run: echo "$GITHUB_CONTEXT"

对于pull_request,可以在${{ github.event.pull_request.head.sha }}变量中找到最新提交的哈希,而${{ github.sha }}则是PR合并提交。