在单次提交 PR 中获取 git 预告片

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

我正在使用 Renovate 通过 git Trailer 生成 PR。这些 PR 始终只包含单个提交。我已将 Renovate 配置为在提交正文中嵌入更新列表,现在我想在 Github 操作步骤中获取该列表。

目前,我设置

GITHUB_SHA={{github.event.pull_request.head.sha}}
,然后使用
git log ${GITHUB_SHA}^1..${GITHUB_SHA}^2
和正确的格式参数,从而提取预告片。

它有效,但看起来很脆弱。它需要对合并提交父级进行排序。它要求存在合并提交。我希望该步骤可重复使用,并且即使结账操作与替代参考一起使用也能正常工作。目前,鉴于它在合并提交上运行,它会中断。 如何更简洁地从 Renovate 生成的 PR 中提取 git 预告片?

我当前的步骤,看起来太不优雅(来自

来源

): - name: Extract New-Versions git trailer from Renovate if: ${{ github.event_name == 'pull_request' }} env: GITHUB_SHA: "{{ github.event.pull_request.head.sha }}" run: | echo 'packages: .' > cabal.project for constraint in $(git log "--format=%(trailers:key=New-Versions,valueonly=true)" ${GITHUB_SHA}^1..${GITHUB_SHA}^2) do echo "constraints: $constraint" >> cabal.project done

	
git github-actions
1个回答
0
投票

env

部分没有任何效果,这就是为什么 GITHUB_SHA 没有按预期引用拉取请求头。

如果您使用 

git log ${{ github.event.pull_request.head.sha }} -1

而不是使用环境变量,您将获得相同的结果,而无需担心合并提交。当然,它与检出哪个提交无关,因为它指定了要操作的确切提交。

但请记住,您需要设置

fetch-depth

,例如设置为

0
。否则它不会知道 PR 头提交 SHA。
    

© www.soinside.com 2019 - 2024. All rights reserved.