npm-update-package 0.56.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -31,6 +31,7 @@ CLI tool for creating pull requests to update npm packages
31
31
  - [prBodyNotes](#prbodynotes)
32
32
  - [prTitle](#prtitle)
33
33
  - [reviewers](#reviewers)
34
+ - [reviewersSampleSize](#reviewerssamplesize)
34
35
  - [GitHub token](#github-token)
35
36
  - [Examples](#examples)
36
37
  - [Use token of GitHub Actions](#use-token-of-github-actions)
@@ -375,6 +376,25 @@ npx npm-update-package \
375
376
  --reviewers alice bob
376
377
  ```
377
378
 
379
+ ### reviewersSampleSize
380
+
381
+ How many members to be assigned to reviewers.
382
+
383
+ |Name|Value|
384
+ |---|---|
385
+ |cli|`--reviewers-sample-size`|
386
+ |type|number|
387
+ |required|false|
388
+
389
+ Example:
390
+
391
+ ```sh
392
+ npx npm-update-package \
393
+ --github-token $GITHUB_TOKEN \
394
+ --reviewers alice bob \
395
+ --reviewers-sample-size 1
396
+ ```
397
+
378
398
  ## GitHub token
379
399
 
380
400
  GitHub token is required to run npm-update-package.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "npm-update-package",
3
- "version": "0.56.0",
3
+ "version": "0.57.0",
4
4
  "description": "CLI tool for creating pull requests to update npm packages",
5
5
  "scripts": {
6
6
  "build": "tsc --project tsconfig.build.json",
@@ -47,7 +47,7 @@
47
47
  "eslint-plugin-jest": "26.1.3",
48
48
  "eslint-plugin-node": "11.1.0",
49
49
  "eslint-plugin-promise": "6.0.0",
50
- "eslint-plugin-tsdoc": "0.2.14",
50
+ "eslint-plugin-tsdoc": "0.2.15",
51
51
  "husky": "7.0.4",
52
52
  "jest": "27.4.7",
53
53
  "lint-staged": "12.3.7",
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PullRequestCreator = void 0;
4
4
  const logger_1 = require("../../../logger");
5
5
  class PullRequestCreator {
6
- constructor({ options, github, gitRepo, githubRepo, pullRequestTitleCreator, pullRequestBodyCreator, assigneesAdder }) {
6
+ constructor({ options, github, gitRepo, githubRepo, pullRequestTitleCreator, pullRequestBodyCreator, assigneesAdder, reviewersAdder }) {
7
7
  this.options = options;
8
8
  this.github = github;
9
9
  this.gitRepo = gitRepo;
@@ -11,6 +11,7 @@ class PullRequestCreator {
11
11
  this.pullRequestTitleCreator = pullRequestTitleCreator;
12
12
  this.pullRequestBodyCreator = pullRequestBodyCreator;
13
13
  this.assigneesAdder = assigneesAdder;
14
+ this.reviewersAdder = reviewersAdder;
14
15
  }
15
16
  async create({ outdatedPackage, branchName }) {
16
17
  const title = this.pullRequestTitleCreator.create(outdatedPackage);
@@ -40,11 +41,10 @@ class PullRequestCreator {
40
41
  });
41
42
  }
42
43
  if (this.options.reviewers !== undefined) {
43
- await this.github.requestReviewers({
44
- owner: this.gitRepo.owner,
45
- repo: this.gitRepo.name,
44
+ await this.reviewersAdder.add({
46
45
  pullNumber: pullRequest.number,
47
- reviewers: this.options.reviewers
46
+ reviewers: this.options.reviewers,
47
+ sampleSize: this.options.reviewersSampleSize
48
48
  });
49
49
  }
50
50
  return pullRequest;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReviewersAdder = void 0;
7
+ const shuffle_1 = __importDefault(require("lodash/shuffle"));
8
+ // TODO: Add test
9
+ class ReviewersAdder {
10
+ constructor({ github, gitRepo }) {
11
+ this.github = github;
12
+ this.gitRepo = gitRepo;
13
+ }
14
+ async add({ pullNumber, reviewers, sampleSize }) {
15
+ await this.github.requestReviewers({
16
+ owner: this.gitRepo.owner,
17
+ repo: this.gitRepo.name,
18
+ pullNumber,
19
+ reviewers: sampleSize !== undefined ? (0, shuffle_1.default)(reviewers).slice(0, sampleSize) : reviewers
20
+ });
21
+ }
22
+ }
23
+ exports.ReviewersAdder = ReviewersAdder;
@@ -21,3 +21,4 @@ __exportStar(require("./PullRequestBodyCreator"), exports);
21
21
  __exportStar(require("./PullRequestCreator"), exports);
22
22
  __exportStar(require("./PullRequestTitleCreator"), exports);
23
23
  __exportStar(require("./ReleaseNotesSectionCreator"), exports);
24
+ __exportStar(require("./ReviewersAdder"), exports);
package/dist/src/main.js CHANGED
@@ -80,6 +80,10 @@ const main = async (options) => {
80
80
  github,
81
81
  gitRepo
82
82
  });
83
+ const reviewersAdder = new github_1.ReviewersAdder({
84
+ github,
85
+ gitRepo
86
+ });
83
87
  const pullRequestCreator = new github_1.PullRequestCreator({
84
88
  options,
85
89
  github,
@@ -87,7 +91,8 @@ const main = async (options) => {
87
91
  githubRepo,
88
92
  pullRequestTitleCreator,
89
93
  pullRequestBodyCreator,
90
- assigneesAdder
94
+ assigneesAdder,
95
+ reviewersAdder
91
96
  });
92
97
  const commitMessageCreator = new git_1.CommitMessageCreator(options.commitMessage);
93
98
  const pullRequestFinder = new github_1.PullRequestFinder(pullRequests);
@@ -33,7 +33,8 @@ const Options = (0, io_ts_1.intersection)([
33
33
  (0, io_ts_1.literal)(package_manager_1.PackageManagerName.Yarn)
34
34
  ]),
35
35
  prBodyNotes: io_ts_1.string,
36
- reviewers: (0, io_ts_1.array)(io_ts_1.string)
36
+ reviewers: (0, io_ts_1.array)(io_ts_1.string),
37
+ reviewersSampleSize: io_ts_1.number
37
38
  })
38
39
  ]);
39
40
  exports.isOptions = Options.is;
@@ -113,5 +113,11 @@ exports.cliOptions = [
113
113
  description: 'User names to request reviews',
114
114
  type: OptionType_1.OptionType.StringArray,
115
115
  required: false
116
+ },
117
+ {
118
+ name: 'reviewers-sample-size',
119
+ description: 'How many members to be assigned to reviewers',
120
+ type: OptionType_1.OptionType.Number,
121
+ required: false
116
122
  }
117
123
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "npm-update-package",
3
- "version": "0.56.0",
3
+ "version": "0.57.0",
4
4
  "description": "CLI tool for creating pull requests to update npm packages",
5
5
  "scripts": {
6
6
  "build": "tsc --project tsconfig.build.json",
@@ -47,7 +47,7 @@
47
47
  "eslint-plugin-jest": "26.1.3",
48
48
  "eslint-plugin-node": "11.1.0",
49
49
  "eslint-plugin-promise": "6.0.0",
50
- "eslint-plugin-tsdoc": "0.2.14",
50
+ "eslint-plugin-tsdoc": "0.2.15",
51
51
  "husky": "7.0.4",
52
52
  "jest": "27.4.7",
53
53
  "lint-staged": "12.3.7",