我正在将Jenkins Pipeline转换为Github Actions工作流,并且需要一种将提交作者存储为环境变量的方法,以便以后在node.js代码中使用。
我已经阅读了文档,这似乎是使它正常工作的唯一方法:
name: Feature Branch PR
on:
pull_request:
types: [opened, edited, synchronize]
push:
branches:
- '**'
然后在“环境”部分:
env:
AUTHOR: ${{ github.event.pusher.name }}
问题是这仅适用于Push触发器。因此,如果我从yml工作流程的顶部删除on:push部分(因此它仅在PR上触发),则作者信息将为空。
我找不到一种提交方式。有人知道一种方法吗?我们不希望此工作流在推送时触发。
我也尝试过
AUTHOR: $(jq '.commits.committer.name' $GITHUB_EVENT_PATH)
我认为这在语法上是不正确的。
答案 0 :(得分:2)
对于将来遇到任何困难的人,我都设法解决了。
在节点代码(不是yml)中,您可以获得具有所有可用信息的Actions event.json文件。获取先前提交的作者:
const ev = JSON.parse(fs.readFileSync(process.env.GITHUB_EVENT_PATH, 'utf8'));
return ev.pull_request.user.login;