INNER CODE UNIT · TypeScript
context
openai/codex-security · github-action/src/main.ts:22
async function context(): Promise<EventContext> {
const path = process.env.GITHUB_EVENT_PATH;
if (!path) throw new Error('GITHUB_EVENT_PATH is required; run this action in GitHub Actions.');
const payload: unknown = JSON.parse(await readFile(path, 'utf8'));
if (!payload || typeof payload !== 'object' || Array.isArray(payload)) throw new Error('Invalid GitHub event payload.');
return {eventName: process.env.GITHUB_EVENT_NAME ?? '', repository: process.env.GITHUB_REPOSITORY ?? '',
sha: process.env.GITHUB_SHA ?? '', ref: process.env.GITHUB_REF ?? '',
serverUrl: process.env.GITHUB_SERVER_URL ?? '', payload: payload as Record<string, unknown>};
}
function outputs(result: ScanResults, target: Target, exitCode: number): void {
const values: Record<string, string | number | boolean> = {
'sarif-path': result.paths.sarifPath, 'json-path': result.paths.jsonPath, 'coverage-path': result.paths.coveragePath,
'results-directory': result.paths.resultsDirectory, 'scan-status': result.scanStatus, 'policy-status': result.policyStatus,
'report-status': result.reportStatus, 'exit-code': exitCode, 'scanned-sha': target.scannedSha,
'analysis-ref': target.analysisRef, 'sarif-upload-ready': result.sarifUploadReady,
'estimated-cost': result.estimatedCost ?? '',
};
for (const [level, count] of Object.entries(result.counts ?? {})) values[`${level}-count`] = count;