验证输入中的提交哈希(workflow_dispatch)



我想验证来自输入(workflow_dispatch(的提交哈希:

runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v2

- name: Run only if input exist (Validate input hash)
if: ${{ github.event.inputs.sha != '' }}
run: git cat-file -e ${{ github.event.inputs.sha }}^{commit}

问题是它只适用于最近的提交。

如果我使用任何其他提交,它会说:

fatal: Not a valid object name COMMIT_HASH^{commit}
Error: Process completed with exit code 128.

但它在当地有效。我也尝试过这种方式:

git cat-file -e ${{ github.event.inputs.sha }}
git cat-file commit ${{ github.event.inputs.sha }}

我试图运行git rev-list HEAD来检查提交历史记录,结果它只显示了最近的提交。

这是因为对于触发工作流的ref/SHA,签出操作默认情况下只检索一次提交。我们可以设置fetch-depth: 0来获取所有分支和标签的所有历史:

- name: Checkout Project
uses: actions/checkout@v2
with:
fetch-depth: 0

这样,我问题的代码就可以工作了。

相关内容

  • 没有找到相关文章

最新更新