在 Github Actions 工作流程中获取最后提交作者的方法

Pho*_*sis 7 github github-actions

我正在努力将 Jenkins Pipeline 转换为 Github Actions 工作流程,并且需要一种将提交作者存储为环境变量的方法,以便稍后在 Node.js 代码中使用。

我已阅读文档,这似乎是我可以让它工作的唯一方法:

name: Feature Branch PR

on:
  pull_request:
    types: [opened, edited, synchronize]
  push:
    branches: 
    - '**'
Run Code Online (Sandbox Code Playgroud)

然后在 Env 部分:

env:
   AUTHOR: ${{ github.event.pusher.name }}
Run Code Online (Sandbox Code Playgroud)

问题是这只适用于推送触发器。因此,如果我从 yml 工作流程顶部删除 on: Push 部分(因此它仅在 PR 上触发),那么作者信息将变为空。

我找不到一种方法来获取它的提交。有谁知道有什么办法吗?我们不希望此工作流程在推送时触发。

我也尝试过

        AUTHOR: $(jq '.commits.committer.name' $GITHUB_EVENT_PATH)
Run Code Online (Sandbox Code Playgroud)

我认为这在语法上是不正确的。

Pho*_*sis 3

对于未来遇到这个问题的任何人,我都设法解决了。

在节点代码(不是 yml)中,您可以获得包含所有可用信息的 Actions event.json 文件。要获取先前提交的作者:

 const ev = JSON.parse(fs.readFileSync(process.env.GITHUB_EVENT_PATH, 'utf8'));
  return ev.pull_request.user.login;
Run Code Online (Sandbox Code Playgroud)