const yaml = require('yaml'); const fs = require('node:fs'); const path = require('node:path'); const PREFIX = '# AUTOGENERATED FILE - DO NOT EDIT MANUALLY\n# ONLY EDIT .github/workflows/pipeline-segment-electron-build.yml\n\n'; const base = path.resolve(__dirname, '../.github/workflows/pipeline-segment-electron-build.yml'); const target = path.resolve(__dirname, '../.github/workflows/pipeline-segment-electron-publish.yml'); const baseContents = fs.readFileSync(base, 'utf-8'); const parsedBase = yaml.parse(baseContents); parsedBase.jobs.build.permissions = { 'artifact-metadata': 'write', attestations: 'write', contents: 'read', 'id-token': 'write' }; if (process.argv.includes('--check')) { if (fs.readFileSync(target, 'utf-8') !== PREFIX + yaml.stringify(parsedBase)) { console.error(`${target} is out of date`); console.error('Please run "copy-pipeline-segment-publish.js" to update it'); process.exit(1); } } else { fs.writeFileSync( target, PREFIX + yaml.stringify(parsedBase) ); }