在Github操作工作流中获取拉取请求的基础分支SHA

在Github操作工作流中获取拉取请求的基础分支SHA,github,github-actions,Github,Github Actions,在GitHub的pull请求操作中,我需要在“当前主机”的上下文中运行一些代码,然后在PR分支的上下文中重新运行相同的代码 我可以检查并比较拉取请求和它所针对的基础。我如何找到基础分支机构的SHA(例如,如果PR反对主分支机构,则当前主分支机构) 作业: 基于工作单元的工作单元: 运行于:ubuntu最新版本 步骤: -用途:行动/checkout@v2 与: ref:“${github.base_ref}}” -运行:| #似乎我可以用$(git log-1--format=“%H”)在这里获

在GitHub的pull请求操作中,我需要在“当前主机”的上下文中运行一些代码,然后在PR分支的上下文中重新运行相同的代码

我可以检查并比较拉取请求和它所针对的基础。我如何找到基础分支机构的SHA(例如,如果PR反对主分支机构,则当前主分支机构)

作业:
基于工作单元的工作单元:
运行于:ubuntu最新版本
步骤:
-用途:行动/checkout@v2
与:
ref:“${github.base_ref}}”
-运行:|
#似乎我可以用$(git log-1--format=“%H”)在这里获得它
echo“我当前的SHA是…”
关于公共关系的工作:
运行于:ubuntu最新版本
步骤:
-用途:行动/checkout@v2
与:
ref:“${{github.ref}}”
-运行:|
echo“我当前的SHA是$GITHUB_SHA”
回声“基础是什么?”

这原来是一个
git
问题,而不是Github操作。
操作/checkout@v2
创建一个浅层的
--depth=1
克隆,以便获得PR的父级,可以解析
git cat文件-p
作为输出。可以使用访问第一个(基本)父级

git cat-file -p <SHA> | awk 'NR > 1 {if(/^parent/){print $2; exit}}'

如果作业在
pull\u请求
事件上运行,则基本sha可用作
${{github.event.pull\u请求.base.sha}

steps:
  - uses: actions/checkout@v2
    with:
      fetch-depth: 2