我目前有一个 GitHub Action 会触发:
pull_request_review:
types: [submitted]
Run Code Online (Sandbox Code Playgroud)
然后我想运行一个命令,该命令需要拉取请求的更改内容。
以前,我使用的是
on:
push
Run Code Online (Sandbox Code Playgroud)
我对操作上下文中可用的文件内容没有任何问题。
但是,我的命令现在失败了,我认为这是因为上下文仅包含触发操作的提交(没有文件更改)。以前我运行此操作push并且总是成功,文件更改可用在上下文中。
我在用着:
steps:
- uses: actions/checkout@v2
Run Code Online (Sandbox Code Playgroud)
(https://github.com/actions/checkout)
是否可以使用它来在操作上下文中对拉取请求进行所有文件更改?
任何对此的帮助将不胜感激!
您可以通过使用市场上提供的开源 Action 来做到这一点:
jobs:
build:
runs-on: ubuntu-latest # windows-latest | macos-latest
name: Test changed-files
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v14.6
- name: List all changed files
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
echo "$file was changed"
done
Run Code Online (Sandbox Code Playgroud)
上面的解决方案使用 git checkout 和 git diff 来获取 PR 更改的文件。或者,如果您确实只需要有关已更改路径的信息,并且实际上并不需要文件本身(无需签出) - 您可以使用ghCLI 无需签出即可完成此操作:
gh pr view XXX --json files -q '.files[].path'
Run Code Online (Sandbox Code Playgroud)
你可以像这样运行它:
jobs:
comment:
runs-on: ubuntu-latest
steps:
- run: gh pr view XXX --json files -q '.files[].path'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6562 次 |
| 最近记录: |