diff --git a/dev-infra/pr/merge/cli.ts b/dev-infra/pr/merge/cli.ts index 8bec6a2231..1981fc48f9 100644 --- a/dev-infra/pr/merge/cli.ts +++ b/dev-infra/pr/merge/cli.ts @@ -6,8 +6,10 @@ * found in the LICENSE file at https://angular.io/license */ -import chalk from 'chalk'; import {Arguments, Argv} from 'yargs'; + +import {error, red, yellow} from '../../utils/console'; + import {GITHUB_TOKEN_GENERATE_URL, mergePullRequest} from './index'; /** Builds the options for the merge command. */ @@ -22,10 +24,9 @@ export function buildMergeCommand(yargs: Argv) { export async function handleMergeCommand(args: Arguments) { const githubToken = args.githubToken || process.env.GITHUB_TOKEN || process.env.TOKEN; if (!githubToken) { - console.error( - chalk.red('No Github token set. Please set the `GITHUB_TOKEN` environment variable.')); - console.error(chalk.red('Alternatively, pass the `--github-token` command line flag.')); - console.error(chalk.yellow(`You can generate a token here: ${GITHUB_TOKEN_GENERATE_URL}`)); + error(red('No Github token set. Please set the `GITHUB_TOKEN` environment variable.')); + error(red('Alternatively, pass the `--github-token` command line flag.')); + error(yellow(`You can generate a token here: ${GITHUB_TOKEN_GENERATE_URL}`)); process.exit(1); } diff --git a/dev-infra/pr/merge/git.ts b/dev-infra/pr/merge/git.ts index e43b7e0aab..32cc1d5704 100644 --- a/dev-infra/pr/merge/git.ts +++ b/dev-infra/pr/merge/git.ts @@ -8,6 +8,9 @@ import * as Octokit from '@octokit/rest'; import {spawnSync, SpawnSyncOptions, SpawnSyncReturns} from 'child_process'; + +import {info} from '../../utils/console'; + import {MergeConfigWithRemote} from './config'; /** Error for failed Github API requests. */ @@ -74,7 +77,7 @@ export class GitClient { // To improve the debugging experience in case something fails, we print all executed // Git commands. Note that we do not want to print the token if is contained in the // command. It's common to share errors with others if the tool failed. - console.info('Executing: git', this.omitGithubTokenFromMessage(args.join(' '))); + info('Executing: git', this.omitGithubTokenFromMessage(args.join(' '))); const result = spawnSync('git', args, { cwd: this._projectRoot, diff --git a/dev-infra/pr/merge/index.ts b/dev-infra/pr/merge/index.ts index 3efb5e8cc1..61238071bd 100644 --- a/dev-infra/pr/merge/index.ts +++ b/dev-infra/pr/merge/index.ts @@ -6,10 +6,9 @@ * found in the LICENSE file at https://angular.io/license */ -import chalk from 'chalk'; import {getRepoBaseDir} from '../../utils/config'; -import {promptConfirm} from '../../utils/console'; +import {error, green, info, promptConfirm, red, yellow} from '../../utils/console'; import {loadAndValidateConfig, MergeConfigWithRemote} from './config'; import {GithubApiRequestError} from './git'; @@ -40,8 +39,8 @@ export async function mergePullRequest( if (config === undefined) { const {config: _config, errors} = loadAndValidateConfig(); if (errors) { - console.error(chalk.red('Invalid configuration:')); - errors.forEach(desc => console.error(chalk.yellow(` - ${desc}`))); + error(red('Invalid configuration:')); + errors.forEach(desc => error(yellow(` - ${desc}`))); process.exit(1); } config = _config!; @@ -65,9 +64,9 @@ export async function mergePullRequest( // Catch errors to the Github API for invalid requests. We want to // exit the script with a better explanation of the error. if (e instanceof GithubApiRequestError && e.status === 401) { - console.error(chalk.red('Github API request failed. ' + e.message)); - console.error(chalk.yellow('Please ensure that your provided token is valid.')); - console.error(chalk.yellow(`You can generate a token here: ${GITHUB_TOKEN_GENERATE_URL}`)); + error(red('Github API request failed. ' + e.message)); + error(yellow('Please ensure that your provided token is valid.')); + error(yellow(`You can generate a token here: ${GITHUB_TOKEN_GENERATE_URL}`)); process.exit(1); } throw e; @@ -99,25 +98,25 @@ export async function mergePullRequest( switch (status) { case MergeStatus.SUCCESS: - console.info(chalk.green(`Successfully merged the pull request: ${prNumber}`)); + info(green(`Successfully merged the pull request: ${prNumber}`)); return true; case MergeStatus.DIRTY_WORKING_DIR: - console.error(chalk.red( - `Local working repository not clean. Please make sure there are ` + - `no uncommitted changes.`)); + error( + red(`Local working repository not clean. Please make sure there are ` + + `no uncommitted changes.`)); return false; case MergeStatus.UNKNOWN_GIT_ERROR: - console.error(chalk.red( - 'An unknown Git error has been thrown. Please check the output ' + - 'above for details.')); + error( + red('An unknown Git error has been thrown. Please check the output ' + + 'above for details.')); return false; case MergeStatus.FAILED: - console.error(chalk.yellow(`Could not merge the specified pull request.`)); - console.error(chalk.red(failure!.message)); + error(yellow(`Could not merge the specified pull request.`)); + error(red(failure!.message)); if (canForciblyMerge && !disableForceMergePrompt) { - console.info(); - console.info(chalk.yellow('The pull request above failed due to non-critical errors.')); - console.info(chalk.yellow(`This error can be forcibly ignored if desired.`)); + info(); + info(yellow('The pull request above failed due to non-critical errors.')); + info(yellow(`This error can be forcibly ignored if desired.`)); return await promptAndPerformForceMerge(); } return false;