 07ee75b745
			
		
	
	
	
	
	07ee75b745* 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
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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);
 | |
|   });
 | |
| }
 |