| import { readFileSync } from 'fs' | |
| // Parses the action event payload sets repo and owner to an object from runner environment | |
| export function getActionContext() { | |
| if (!process.env.GITHUB_EVENT_PATH) { | |
| if (!process.env.CI) { | |
| console.warn( | |
| ` | |
| If you're trying to run this locally, to simulate this create a file like this: | |
| echo '{"repository": {"owner": {"login": "github"}, "name": "docs-internal"}}' > /tmp/event-path.json | |
| export GITHUB_EVENT_PATH=/tmp/event-path.json | |
| `.trim(), | |
| ) | |
| } | |
| throw new Error('process.env.GITHUB_EVENT_PATH is not set') | |
| } | |
| const context = JSON.parse(readFileSync(process.env.GITHUB_EVENT_PATH, 'utf8')) | |
| if (context.repository) { | |
| context.owner = context.repository.owner.login | |
| context.repo = context.repository.name | |
| } else { | |
| const [owner, repo] = process.env.GITHUB_REPOSITORY?.split('/') || [] | |
| context.owner = owner | |
| context.repo = repo | |
| } | |
| return context | |
| } | |