← Public packages
@danj/hey-email
HEY.com email for Kody: search threads, read messages, download PDF attachments, and write drafts. Sending is barred until you allow it.
scripts/check-sending-policy.mjs
32 lines · 1.1 KB · JavaScriptimport { 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}`)