diff --git a/src/bump-dependencies.js b/src/bump-dependencies.js index 2e16b19f..5d063023 100644 --- a/src/bump-dependencies.js +++ b/src/bump-dependencies.js @@ -17,8 +17,6 @@ const {syncGithub} = require('./core/github'); const {findLatest} = require('./core/node'); const {makeError, formatEventualSuffix} = require('./core/utils'); -const parseArgvToArray = _.pipe(_.split(','), _.compact); - const bumpNodeVersion = async (latestNode, config) => { process.stdout.write(c.bold.blue(`\n\n⬆️ About to bump node version:\n`)); const nodeVersion = _.trimCharsStart('v', latestNode.version); @@ -95,8 +93,8 @@ const commitAndMakePullRequest = config => async options => { body: _.get('body', pullRequest), title: _.get('title', pullRequest), label: config.label, - reviewers: _.pull(await currentUser(), parseArgvToArray(config.reviewers)), - team_reviewers: parseArgvToArray(config.teamReviewers) + reviewers: _.pull(await currentUser(), config.reviewers), + team_reviewers: config.teamReviewers }, config.token, config.forceFlag diff --git a/src/core/config.js b/src/core/config.js index 558304a2..6f926acc 100644 --- a/src/core/config.js +++ b/src/core/config.js @@ -5,6 +5,7 @@ const protocall = require('protocall'); const findUp = require('find-up'); const {command} = require('execa'); const Joi = require('joi'); +const {parseArgvToArray} = require('./utils'); const RELEASE_TYPES = ['major', 'minor', 'patch', 'noop']; @@ -85,6 +86,18 @@ const resolveConfig = async (config, configPath, argv) => { base.packageContent = JSON.parse(fs.readFileSync(base.package)); base.local = argv.local; base.token = await resolveGithubToken(argv); + + // Combine reviewers config and extra args, removing leading @ for user, and potential specified orga for teams + base.reviewers = _.pipe( + parseArgvToArray, + _.map(_.trimCharsStart('@')) + )(`${argv.reviewers || ''},${_.join(',', base.reviewers)}`); + + base.teamReviewers = _.pipe( + parseArgvToArray, + _.map(_.pipe(_.trimCharsStart('@'), _.split('/'), _.last)) + )(`${argv.teamReviewers || ''},${_.join(',', base.teamReviewers)}`); + return base; }; diff --git a/src/core/utils.js b/src/core/utils.js index ed6ac2d7..7c8228bc 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -9,4 +9,6 @@ const makeError = (message, options = {}) => { const formatEventualSuffix = text => (_.isEmpty(text) ? '' : `\n\n\n-----\n${text}`); -module.exports = {makeError, formatEventualSuffix}; +const parseArgvToArray = _.pipe(_.split(','), _.compact); + +module.exports = {makeError, formatEventualSuffix, parseArgvToArray}; diff --git a/src/index.js b/src/index.js index b1453742..9d1900e3 100644 --- a/src/index.js +++ b/src/index.js @@ -30,6 +30,16 @@ const yargs = require('yargs') describe: 'Optional extra message to attach to the commit and pull request', string: true, alias: 'm' + }, + reviewers: { + describe: 'Extra reviewers to add to the pull request', + string: true, + alias: 'r' + }, + teamReviewers: { + describe: 'Extra team reviewers to add to the pull request', + string: true, + alias: 'R' } }, handler: setCommand(UPGRADE)