Способы получения последнего автора коммита в рабочем процессе Github Actions - PullRequest
0 голосов
/ 14 апреля 2020

Я работаю над преобразованием конвейера Jenkins в рабочий процесс Github Actions, и мне нужен способ сохранить автора коммита в качестве переменной среды для дальнейшего использования в коде node.js.

Я прочитал документацию, и, похоже, это единственный способ заставить его работать:

name: Feature Branch PR

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

Затем в разделе Env:

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

Проблема в том, что это работает только для триггеров Pu sh. Поэтому, если я удаляю секцию on: pu sh из верхней части рабочего процесса yml (так что она запускается только на PR), информация AUTHOR становится пустой.

Я не могу найти способ получить ее для коммитов. Кто-нибудь знает о способе? Мы не хотим, чтобы этот рабочий процесс срабатывал при толчках.

Я также пытался

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

Я думаю, что это было синтаксически неправильно, хотя.

1 Ответ

0 голосов
/ 15 апреля 2020

Для тех, кто борется с этим в будущем, мне удалось решить это.

В коде узла (не yml) вы можете получить событие Actions. Файл json со всей доступной информацией. Чтобы получить автора предыдущего коммита:

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