Files
actions-ansi-to-html/node_modules/env-ci/services/github.js
T
2025-11-11 06:53:11 -05:00

50 lines
1.4 KiB
JavaScript

// https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables
const {parseBranch} = require('../lib/utils.js');
const getPrEvent = ({env}) => {
try {
const event = env.GITHUB_EVENT_PATH ? require(env.GITHUB_EVENT_PATH) : undefined;
if (event && event.pull_request) {
return {
branch: event.pull_request.base ? parseBranch(event.pull_request.base.ref) : undefined,
pr: event.pull_request.number,
};
}
} catch {
// Noop
}
return {pr: undefined, branch: undefined};
};
const getPrNumber = (env) => {
const event = env.GITHUB_EVENT_PATH ? require(env.GITHUB_EVENT_PATH) : undefined;
return event && event.pull_request ? event.pull_request.number : undefined;
};
module.exports = {
detect({env}) {
return Boolean(env.GITHUB_ACTIONS);
},
configuration({env, cwd}) {
const isPr = env.GITHUB_EVENT_NAME === 'pull_request' || env.GITHUB_EVENT_NAME === 'pull_request_target';
const branch = parseBranch(
env.GITHUB_EVENT_NAME === 'pull_request_target' ? `refs/pull/${getPrNumber(env)}/merge` : env.GITHUB_REF
);
return {
name: 'GitHub Actions',
service: 'github',
commit: env.GITHUB_SHA,
build: env.GITHUB_RUN_ID,
isPr,
branch,
prBranch: isPr ? branch : undefined,
slug: env.GITHUB_REPOSITORY,
root: env.GITHUB_WORKSPACE,
...(isPr ? getPrEvent({env, cwd}) : undefined),
};
},
};