import { execFileSync } from 'node:child_process' import { SENDING } from '../src/config.js' const baseRef = process.env.SENDING_BASE_REF || 'origin/main' async function baseSending() { let source try { source = execFileSync('git', ['show', `${baseRef}:src/config.js`], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], }) } catch (error) { if (/does not exist in|exists on disk, but not in/.test(String(error.stderr))) return undefined console.error(`sending-gate: cannot read src/config.js at ${baseRef}`) console.error(String(error.stderr).trim()) process.exit(1) } const config = await import(`data:text/javascript,${encodeURIComponent(source)}`) return config.SENDING } const base = await baseSending() const summary = `SENDING=${JSON.stringify(SENDING)}, ${baseRef} has ${JSON.stringify(base)}` // Only the owner turns sending on, on main. A branch may inherit 'allowed' from main. if (SENDING === 'allowed' && base !== 'allowed') { console.error(`sending-gate: this branch turns sending on. ${summary}`) process.exit(1) } console.log(`sending-gate: ${summary}`)