Skip to content

Commit 8a15997

Browse files
committed
chores: send review request to valid reviewers
1 parent e2189ea commit 8a15997

File tree

8 files changed

+82
-13
lines changed

8 files changed

+82
-13
lines changed

.github/workflows/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ jobs:
1919
uses: ./
2020
with:
2121
github-token: ${{ secrets.GITHUB_TOKEN }}
22+
max-reviewers: 2

.husky/pre-commit

-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
#!/usr/bin/env sh
22
. "$(dirname -- "$0")/_/husky.sh"
3-
4-
yarn build

action.yml

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ inputs:
66
github-token:
77
description: 'The GitHub token to use for authentication'
88
required: true
9+
max-reviewers:
10+
description: 'The maximum number of reviewers to add to a Pull Request'
11+
required: false
12+
default: '2'
913

1014
runs:
1115
using: 'node16'

dist/index.js

+37-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"use strict";
88

99
Object.defineProperty(exports, "__esModule", ({ value: true }));
10-
exports.HEAD_SHA = exports.BASE_SHA = exports.INVALID_REVIEWERS = exports.DEFAULT_ERROR_MESSAGE = void 0;
10+
exports.DEFAULT_MAX_REVIEWERS = exports.HEAD_SHA = exports.BASE_SHA = exports.INVALID_REVIEWERS = exports.DEFAULT_ERROR_MESSAGE = void 0;
1111
exports.DEFAULT_ERROR_MESSAGE = 'An unexpected error occurred!';
1212
exports.INVALID_REVIEWERS = [
1313
'GitHub',
@@ -21,6 +21,7 @@ exports.INVALID_REVIEWERS = [
2121
];
2222
exports.BASE_SHA = '2d2f73c099310be56ace9e4aa3a922eb23ff0650';
2323
exports.HEAD_SHA = '71c867b0d68417a9de4774aedb92182169028538';
24+
exports.DEFAULT_MAX_REVIEWERS = 2;
2425

2526

2627
/***/ }),
@@ -135,6 +136,29 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
135136
__exportStar(__nccwpck_require__(3694), exports);
136137
__exportStar(__nccwpck_require__(3324), exports);
137138
__exportStar(__nccwpck_require__(5397), exports);
139+
__exportStar(__nccwpck_require__(2498), exports);
140+
141+
142+
/***/ }),
143+
144+
/***/ 2498:
145+
/***/ ((__unused_webpack_module, exports) => {
146+
147+
"use strict";
148+
149+
Object.defineProperty(exports, "__esModule", ({ value: true }));
150+
exports.sendReviewRequests = void 0;
151+
const sendReviewRequests = async ({ Octokit, reviewers, context, }) => {
152+
var _a;
153+
console.log({ reviewers, context, repo: context.repo });
154+
return Octokit.rest.pulls.requestReviewers({
155+
owner: context.repo.owner,
156+
repo: context.repo.repo,
157+
pull_number: (_a = context.payload.pull_request) === null || _a === void 0 ? void 0 : _a.number,
158+
reviewers,
159+
});
160+
};
161+
exports.sendReviewRequests = sendReviewRequests;
138162

139163

140164
/***/ }),
@@ -30339,7 +30363,9 @@ const run = async () => {
3033930363
const baseSha = ((_a = github_1.context.payload.pull_request) === null || _a === void 0 ? void 0 : _a.base.sha) || constants_1.BASE_SHA;
3034030364
const headSha = ((_b = github_1.context.payload.pull_request) === null || _b === void 0 ? void 0 : _b.head.sha) || constants_1.HEAD_SHA;
3034130365
const creator = (_c = github_1.context.payload.pull_request) === null || _c === void 0 ? void 0 : _c.user.login;
30366+
const maxReviewers = (0, core_1.getInput)('max-reviewers');
3034230367
const token = (0, core_1.getInput)('github-token');
30368+
console.log({ maxReviewers, type: typeof maxReviewers });
3034330369
const Octokit = (0, github_1.getOctokit)(token);
3034430370
const changedFiles = await (0, helpers_1.getChangedFiles)(baseSha, headSha);
3034530371
if (!changedFiles)
@@ -30351,11 +30377,19 @@ const run = async () => {
3035130377
const validReviewers = (0, get_valid_reviewers_1.getValidReviewers)({
3035230378
reviewers: usernames,
3035330379
creator,
30354-
maxReviewers: 3,
30380+
maxReviewers: isNaN(Number(maxReviewers))
30381+
? constants_1.DEFAULT_MAX_REVIEWERS
30382+
: Number(maxReviewers),
3035530383
});
3035630384
if (!(validReviewers === null || validReviewers === void 0 ? void 0 : validReviewers.length))
3035730385
return (0, core_1.warning)('No valid reviewers found!');
30358-
console.log({ usernames, changedFiles });
30386+
console.log({ validReviewers });
30387+
const response = (0, helpers_1.sendReviewRequests)({
30388+
Octokit,
30389+
reviewers: validReviewers,
30390+
context: github_1.context,
30391+
});
30392+
console.log({ response });
3035930393
}
3036030394
catch (error) {
3036130395
console.log({ error });

src/constants.ts

+2
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ export const INVALID_REVIEWERS = [
1414
export const BASE_SHA = '2d2f73c099310be56ace9e4aa3a922eb23ff0650';
1515

1616
export const HEAD_SHA = '71c867b0d68417a9de4774aedb92182169028538';
17+
18+
export const DEFAULT_MAX_REVIEWERS = 2;

src/helpers/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from './get-reviewers-usernames';
22
export * from './get-changed-files';
33
export * from './get-reviewers-emails';
4+
export * from './send-review-requests';

src/helpers/send-review-requests.ts

+19-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
import { TOctokit } from '../types';
2+
import { Context } from '@actions/github/lib/context';
23

3-
export const sendReviewRequests = async (
4-
Octokit: TOctokit,
5-
reviewers: string[]
6-
) => {
7-
console.log({ reviewers });
4+
interface SendReviewRequests {
5+
Octokit: TOctokit;
6+
reviewers: string[];
7+
context: Context;
8+
}
9+
export const sendReviewRequests = async ({
10+
Octokit,
11+
reviewers,
12+
context,
13+
}: SendReviewRequests) => {
14+
console.log({ reviewers, context, repo: context.repo });
15+
16+
return Octokit.rest.pulls.requestReviewers({
17+
owner: context.repo.owner,
18+
repo: context.repo.repo,
19+
pull_number: context.payload.pull_request?.number as number,
20+
reviewers,
21+
});
822
};

src/index.ts

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { context, getOctokit } from '@actions/github';
22
import { getInput, warning } from '@actions/core';
3-
import { BASE_SHA, HEAD_SHA } from './constants';
3+
import { BASE_SHA, DEFAULT_MAX_REVIEWERS, HEAD_SHA } from './constants';
44
import {
55
getChangedFiles,
66
getReviewersEmails,
77
getReviewersUsernames,
8+
sendReviewRequests,
89
} from './helpers';
910
import { getValidReviewers } from './helpers/get-valid-reviewers';
1011

@@ -14,7 +15,11 @@ const run = async () => {
1415
const headSha = context.payload.pull_request?.head.sha || HEAD_SHA;
1516
const creator = context.payload.pull_request?.user.login;
1617

18+
const maxReviewers = getInput('max-reviewers');
1719
const token = getInput('github-token');
20+
21+
console.log({ maxReviewers, type: typeof maxReviewers });
22+
1823
const Octokit = getOctokit(token);
1924

2025
const changedFiles = await getChangedFiles(baseSha, headSha);
@@ -28,12 +33,22 @@ const run = async () => {
2833
const validReviewers = getValidReviewers({
2934
reviewers: usernames,
3035
creator,
31-
maxReviewers: 3,
36+
maxReviewers: isNaN(Number(maxReviewers))
37+
? DEFAULT_MAX_REVIEWERS
38+
: Number(maxReviewers),
3239
});
3340

3441
if (!validReviewers?.length) return warning('No valid reviewers found!');
3542

36-
console.log({ usernames, changedFiles });
43+
console.log({ validReviewers });
44+
45+
const response = sendReviewRequests({
46+
Octokit,
47+
reviewers: validReviewers,
48+
context,
49+
});
50+
51+
console.log({ response });
3752
} catch (error) {
3853
console.log({ error });
3954
}

0 commit comments

Comments
 (0)