'Ways to get last commit author in Github Actions workflow

I am working on converting a Jenkins Pipeline into a Github Actions workflow and need a way of storing the commit author as an environment variable for later use in node.js code.

I have read the documentation and this seems to be the only way I can get it working:

name: Feature Branch PR

on:
  pull_request:
    types: [opened, edited, synchronize]
  push:
    branches: 
    - '**'

Then in the Env section:

env:
   AUTHOR: ${{ github.event.pusher.name }}

The problem is this only works for Push triggers. So if i remove the on: push section from top of yml workflow (so it only triggers on PRs) the AUTHOR info becomes empty.

I cannot find a way to get it for commits. Does anyone know of of a way? We do not want this workflow to trigger on pushes.

I also tried

        AUTHOR: $(jq '.commits.committer.name' $GITHUB_EVENT_PATH)

I think this was syntactically incorrect though.



Solution 1:[1]

For anyone who struggles with this in future, I managed to work it out.

In the node code (not yml) you can obtain an Actions event.json file with all info available. To get the author of a previous commit:

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

Solution 2:[2]

As YakovL mentioned,

env:
  ${{ github.event.pull_request.user.login }}

Works fine in a Github action.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Phonesis
Solution 2 pythonInRelay