import { program } from 'commander' import { postPRComment } from './post-pr-comment' import { validate } from './validate' import { generateNewJSON } from './generate-new-json' import { cleanUpOldBranches } from './clean-up-old-branches' program .name('validate-github-github-docs-urls') .description('Validate config/docs-urls.json in github/github') program .command('validate') .description('Validate config/docs-urls.json in github/github') .option('--fail-on-warning', 'Any warning will make the process exit with a non-zero code') .option('--fail-on-error', 'Any error will make the process exit with a non-zero code') .option( '--ignore-not-found', 'Do not fail validation on 404 errors (pages not found) - useful for feature-flagged content', ) .option('-o, --output ', 'Output file') .argument('', 'path to the docs-urls JSON file') .action(validate) program .command('post-pr-comment') .description('Given a JSON file of checks, post a comment to a PR about problems') .option( '-r, --repository ', 'Repository where the PR is located', process.env.REPOSITORY, ) .option( '-i, --issue-number ', 'Issue number to post the comment on', process.env.ISSUE_NUMBER, ) .option('--dry-run', "Don't post any comment. Only print what it would post.") .option('--fail-on-error', 'Any error will make the process exit with a non-zero code') .option( '--changed-files [paths...]', 'Content files that we can map to URLs for inclusion', process.env.CHANGED_FILES || '', ) .argument('', 'JSON file that has all checks') .action(postPRComment) program .command('generate-new-json') .description( 'Given a JSON file of checks, and the destination JSON file, edit the second based on the first', ) .option('--fail-on-error', 'Any error will make the process exit with a non-zero code') .option('-o, --output ', 'Output file') .argument('', 'JSON file that has all checks') .argument('', 'JSON file to edit') .action(generateNewJSON) program .command('clean-up-old-branches') .description('Clean up branches our automation has created and pushed to upstream') .option('--min-days ', 'Number of days since last updated', '30') .option( '--repository ', 'Repository where branches to clean up are located', 'github/github', ) .option( '--prefix ', "Prefix of the branch name to clean up, e.g. 'update-docs-urls'", 'update-docs-urls', ) .action(cleanUpOldBranches) program.parse(process.argv)