我想访问Github Actions工作流程中的请求请求编号。我可以访问可用的GITHUB_REF环境变量。尽管在“拉取请求”操作中,其值为:“ refs / pull / 125 / merge”。我只需要提取“ 125”。
我发现了类似的帖子here,该帖子显示了如何使用此变量获取当前分支。尽管在这种情况下,我解析的内容有所不同,但我无法隔离请求请求号。
我尝试使用解析为“合并”的{GITHUB_REF ## * /} 我也尝试过{GITHUB_REF#* /}解析为“ pull / 125 / merge”
我只需要请求请求号(在我的示例中是125)
答案 0 :(得分:5)
尽管已经回答了,但我发现最简单的方法是使用github上下文。以下示例显示了如何将其设置为环境变量。
env:
PR_NUMBER: ${{ github.event.number }}
答案 1 :(得分:4)
@Samira的答案正常运行。我发现有一种新方法可以做到这一点,并希望与可能偶然发现此问题的任何人分享。
解决方案是在工作流程的开头添加一个阶段,该阶段从Github令牌(事件)获取PR号,然后将其设置为环境变量,以便在整个工作流程的其余部分轻松使用。这是代码:
- name: Test
uses: actions/github-script@0.3.0
with:
github-token: ${{github.token}}
script: |
const core = require('@actions/core')
const prNumber = context.payload.number;
core.exportVariable('PULL_NUMBER', prNumber);
现在,在以后的任何阶段,您都可以简单地使用$ PULL_NUMBER来访问之前设置的环境变量。
答案 2 :(得分:2)
使用awk
提取GITHUB_REF
的部分而不是bash magick怎么样?
摘自awk
联机帮助页:
-F fs
-场分隔符fs
将fs用作输入字段分隔符(FS预定义变量的值)。
只要记住这一点,仅提取所需变量的一部分就很简单。 awk
在所有平台上都可用,因此下面的步骤将在任何地方都适用:
- run: echo ::set-env name=PULL_NUMBER::$(echo "$GITHUB_REF" | awk -F / '{print $3}')
shell: bash