INNER CODE UNIT · JavaScript
verifyPlanGate
rancher/terraform-provider-rancher2 · agent-scripts/gating.js:68
export function verifyPlanGate(targetDir) {
const planApprovalFile = path.join(targetDir, 'plan-approval.json');
const sigFile = path.join(targetDir, 'plan-approval.json.sig');
const pubKeyFile = path.resolve(os.homedir(), '.gemini/ssh-key.pub');
if (!fs.existsSync(planApprovalFile) || !fs.existsSync(sigFile) || !fs.existsSync(pubKeyFile)) {
return null;
}
try {
const allowedSignersFile = path.join(targetDir, 'allowed_signers');
const pubKeyContent = fs.readFileSync(pubKeyFile, 'utf-8').trim();
fs.writeFileSync(allowedSignersFile, `gemini ${pubKeyContent}`);
execFileSync(
'ssh-keygen',
['-Y', 'verify', '-f', allowedSignersFile, '-I', 'gemini', '-n', 'gemini', '-s', sigFile],
{