push-patch.js 956 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. const { appCredentialsFromString, getTokenForRepo } = require('@electron/github-app-auth');
  2. const cp = require('node:child_process');
  3. const { PATCH_UP_APP_CREDS } = process.env;
  4. async function main () {
  5. if (!PATCH_UP_APP_CREDS) {
  6. throw new Error('PATCH_UP_APP_CREDS environment variable not set');
  7. }
  8. const token = await getTokenForRepo(
  9. {
  10. name: 'electron',
  11. owner: 'electron'
  12. },
  13. appCredentialsFromString(PATCH_UP_APP_CREDS)
  14. );
  15. const remoteURL = `https://x-access-token:${token}@github.com/electron/electron.git`;
  16. // NEVER LOG THE OUTPUT OF THIS COMMAND
  17. // GIT LEAKS THE ACCESS CREDENTIALS IN CONSOLE LOGS
  18. const { status } = cp.spawnSync('git', ['push', '--set-upstream', remoteURL], {
  19. stdio: 'ignore'
  20. });
  21. if (status !== 0) {
  22. throw new Error('Failed to push to target branch');
  23. }
  24. }
  25. if (require.main === module) {
  26. main().catch((err) => {
  27. console.error(err);
  28. process.exit(1);
  29. });
  30. }