Revision 7df9127088bda3c9d29937a04287b87dc2045ea7 authored by Dylan Hunn on 03 December 2021, 18:33:53 UTC, committed by Alex Rickabaugh on 10 December 2021, 22:13:24 UTC
It is desirable to land this separately to reduce the scope of the Typed Forms PR, by focusing it only on the new type parameters (rather than incidental strictness fixes). PR Close #44370
1 parent 78bdb1f
push-pr
#!/usr/bin/env node
const shell = require('shelljs');
shell.config.fatal = true;
const util = require('./utils/git_util');
if (require.main === module) {
main(process.argv.splice(2)).then(
(v) => process.exitCode,
(e) => console.error(process.exitCode = 1, e)
);
}
async function main(args) {
let flags = '';
let prNumber = 0;
let printHelp = false;
args.forEach((arg) => {
if (prNumber == 0 && Number.parseInt(arg) > 0) {
prNumber = Number.parseInt(arg);
} else if (arg == '--help') {
printHelp = true;
} else if (arg == '--force-with-lease') {
flags += ' --force-with-lease';
} else if (arg == '--force') {
flags += ' --force';
} else {
shell.echo('Unexpected argument: ', arg);
}
});
if (!prNumber) {
const branch = util.getCurrentBranch();
const maybePr = branch.split('/')[1];
if (maybePr > 0) {
shell.echo(`PR number not specified. Defaulting to #${maybePr}.`);
prNumber = maybePr;
}
}
if (!prNumber || printHelp) {
shell.echo(`Push the current HEAD into an existing pull request.`);
shell.echo(``);
shell.echo(`${process.argv[1]} [PR_NUMBER] [--force-with-lease]`);
shell.echo(``);
shell.echo(` --force-with-lease Continues even \if change can\'t be fast-forwarded.`);
shell.echo(` --force Forces the push with --force.`);
shell.echo(` [PR_NUMBER] If not present the script guesses the PR from the branch name.`);
return 1;
}
const prInfo = await util.githubPrInfo(prNumber);
const prPushCmd = `git push${flags} ${prInfo.repository.gitUrl} HEAD:${prInfo.branch}`;
shell.echo(`>>> ${prPushCmd}`);
shell.exec(prPushCmd);
return 0;
}
Computing file changes ...