Okay, I’ve finally managed it. @codyebberson’s version didn’t work for me, cause workflow_run event data doesn’t have pull request info and pull_requests array contains pull requests to fork and not to upstream.
So, this is my version with comments.
First of all you need to save PR number from pull_request event. You can achieve this by echoing data from event to file and upload it as artifact:
And then…
In a separate workflow with workflow_run trigger you need to:
- download artifact from workflow that triggered the current workflow
- read it to workflow data
- get PR data via github rest api
- checkout repo (from fork)
- fetch base branch from upstream - this is important step! If you won’t do it, your “new lines of code” metric will be broken if fork has not synchronized base branch (and who do it nowdays?)
- and at last - run analysis on push or on pull request grabbing all collected data
“Java CI” workflow logs: recreate: Исправил FP · 1c-syntax/bsl-language-server@3a6192c · GitHub
“QA” workflow logs: QA · 1c-syntax/bsl-language-server@2211575 · GitHub
There is some room for improvement (fetch only selected branch from upstream, protect from pr from branch with the same name as base branch), but I hope this will help someone.