1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const { createAppAuth } = require('@octokit/auth-app');
- const cp = require('child_process');
- if (!process.env.CIRCLE_BRANCH) {
- console.error('Not building for a specific branch, can\'t autopush a patch');
- process.exit(1);
- }
- if (process.env.CIRCLE_PR_NUMBER) {
- console.error('Building for a forked PR, can\'t autopush a patch');
- process.exit(1);
- }
- const auth = createAppAuth({
- appId: process.env.PATCH_UP_APP_ID,
- privateKey: Buffer.from(process.env.PATCH_UP_PRIVATE_KEY, 'base64').toString('utf8'),
- installationId: process.env.PATCH_UP_INSTALLATION_ID,
- clientId: process.env.PATCH_UP_CLIENT_ID,
- clientSecret: process.env.PATCH_UP_CLIENT_SECRET
- });
- async function main () {
- const installationAuth = await auth({ type: 'installation' });
- const remoteURL = `https://x-access-token:${installationAuth.token}@github.com/electron/electron.git`;
- // NEVER LOG THE OUTPUT OF THIS COMMAND
- // GIT LEAKS THE ACCESS CREDENTIALS IN CONSOLE LOGS
- const { status } = cp.spawnSync('git', ['push', '--set-upstream', remoteURL], {
- stdio: 'ignore'
- });
- if (status !== 0) {
- console.error('Failed to push to target branch');
- process.exit(1);
- }
- }
- if (process.mainModule === module) {
- main().catch((err) => {
- console.error(err);
- process.exit(1);
- });
- }
|