我有一个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(此处为^)生成的哈希提交似乎与我的提交的实际哈希不匹配。
答案 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合并提交。