build: auto-push patch file changes (#26235)
* build: auto-push patch file changes * chore: change patch for testing purposes * build: remove stray log * build: push as electron bot * build: suppress all output of the push-patch script * chore: fix linting
This commit is contained in:
parent
914aed6495
commit
07ee75b745
5 changed files with 187 additions and 9 deletions
41
script/push-patch.js
Normal file
41
script/push-patch.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
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);
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue