UNPKG

zephyr-agent

Version:
56 lines (55 loc) • 1.58 kB
import "node:module"; import { execFile } from "node:child_process"; import { promisify } from "node:util"; import { getEmails } from "./utils.mjs"; const eas_execFile = promisify(execFile); const EAS_ISSUER = 'https://expo.dev'; const GIT_TIMEOUT_MS = 10000; const easCiIdentityProvider = { provider: 'eas', detect: isEasBuild, infer: inferEasIdentity }; function isEasBuild(env) { return 'true' === env['EAS_BUILD']; } async function inferEasIdentity(env) { const username = env['EAS_BUILD_USERNAME']?.trim() || void 0; const emails = await readCommitEmails(env); if (emails.length > 0) return { provider: 'eas', email: emails[0], emails, username, source: 'git' }; const providerSubject = username ?? env['EAS_BUILD_PROJECT_ID']?.trim(); if (!providerSubject) return; return { provider: 'eas', issuer: EAS_ISSUER, providerSubject, username, providerActorType: 'bot', source: 'env' }; } async function readCommitEmails(env) { const commit = env['EAS_BUILD_GIT_COMMIT_HASH']?.trim() || 'HEAD'; try { const { stdout } = await eas_execFile('git', [ 'show', '-s', '--format=%ae%n%ce', commit ], { cwd: env['EAS_BUILD_WORKINGDIR']?.trim() || process.cwd(), timeout: GIT_TIMEOUT_MS }); return getEmails(stdout.split('\n')); } catch { return []; } } export { easCiIdentityProvider }; //# sourceMappingURL=eas.mjs.map