@@ -44,17 +44,14 @@ const core = __importStar(__nccwpck_require__(2186));
4444const github = __importStar(__nccwpck_require__(5438));
4545const getYamlConfigAsync_1 = __nccwpck_require__(7919);
4646const parseConfig_1 = __nccwpck_require__(5826);
47- const getContextPullRequestDetails_1 = __nccwpck_require__(7236);
4847const assignReviewersAsync_1 = __nccwpck_require__(3019);
49- function runAssigner(client, configPath) {
48+ const helpers = __importStar(__nccwpck_require__(6401));
49+ function runAssigner(client, configPath, prNumber) {
5050 var _a;
5151 return __awaiter(this, void 0, void 0, function* () {
5252 try {
53- const unassignIfLabelRemoved = core.getInput("unassign-if-label-removed", {
54- required: false,
55- });
56- const contextDetails = (0, getContextPullRequestDetails_1.getContextPullRequestDetails)();
57- if (contextDetails == null) {
53+ const prReviewersAndAssignees = yield helpers.getPrReviewersAndAssignees(client, prNumber);
54+ if (prReviewersAndAssignees === undefined) {
5855 throw new Error("No context details");
5956 }
6057 let userConfig;
@@ -68,10 +65,10 @@ function runAssigner(client, configPath) {
6865 const contextPayload = github.context.payload;
6966 core.debug("Assigning reviewers...");
7067 const assignedResult = yield (0, assignReviewersAsync_1.assignReviewersAsync)({
71- client,
72- contextDetails,
73- contextPayload,
68+ client: client,
7469 labelReviewers: config.assign,
70+ contextDetails: prReviewersAndAssignees,
71+ contextPayload: contextPayload,
7572 });
7673 if (assignedResult.status === "error") {
7774 core.setFailed(assignedResult.message);
@@ -175,10 +172,11 @@ function assignReviewersAsync({ client, labelReviewers, contextDetails, contextP
175172 };
176173 }
177174 const result = yield (0, setReviewersAsync_1.setReviewersAsync)({
178- client,
175+ client: client ,
179176 reviewers: reviewersToAssign,
180- contextPayload,
181- action: "assign",
177+ contextPayload: contextPayload,
178+ pullRequestDetails: contextDetails,
179+ // action: "assign",
182180 });
183181 if (result == null) {
184182 return {
@@ -196,56 +194,6 @@ function assignReviewersAsync({ client, labelReviewers, contextDetails, contextP
196194exports.assignReviewersAsync = assignReviewersAsync;
197195
198196
199- /***/ }),
200-
201- /***/ 7236:
202- /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
203-
204- "use strict";
205-
206- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
207- if (k2 === undefined) k2 = k;
208- var desc = Object.getOwnPropertyDescriptor(m, k);
209- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
210- desc = { enumerable: true, get: function() { return m[k]; } };
211- }
212- Object.defineProperty(o, k2, desc);
213- }) : (function(o, m, k, k2) {
214- if (k2 === undefined) k2 = k;
215- o[k2] = m[k];
216- }));
217- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
218- Object.defineProperty(o, "default", { enumerable: true, value: v });
219- }) : function(o, v) {
220- o["default"] = v;
221- });
222- var __importStar = (this && this.__importStar) || function (mod) {
223- if (mod && mod.__esModule) return mod;
224- var result = {};
225- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
226- __setModuleDefault(result, mod);
227- return result;
228- };
229- Object.defineProperty(exports, "__esModule", ({ value: true }));
230- exports.getContextPullRequestDetails = void 0;
231- const github = __importStar(__nccwpck_require__(5438));
232- function getContextPullRequestDetails() {
233- var _a;
234- const pullRequest = github.context.payload.pull_request;
235- if (typeof pullRequest === "undefined") {
236- return null;
237- }
238- const labels = pullRequest.labels;
239- const reviewers = pullRequest.requested_reviewers;
240- return {
241- labels: labels.map((label) => label.name),
242- reviewers: reviewers.map((reviewer) => reviewer.login),
243- baseSha: (_a = pullRequest === null || pullRequest === void 0 ? void 0 : pullRequest.base) === null || _a === void 0 ? void 0 : _a.sha,
244- };
245- }
246- exports.getContextPullRequestDetails = getContextPullRequestDetails;
247-
248-
249197/***/ }),
250198
251199/***/ 7919:
@@ -371,35 +319,28 @@ exports.setReviewersAsync = void 0;
371319function setReviewersAsync(options) {
372320 return __awaiter(this, void 0, void 0, function* () {
373321 const payload = options.contextPayload;
374- const pullRequest = payload.pull_request ;
322+ const prNumber = options.pullRequestDetails.prNumber ;
375323 const repository = payload.repository;
376- if (typeof pullRequest === " undefined" || typeof repository === " undefined" ) {
324+ if (prNumber === undefined || repository === undefined) {
377325 throw new Error("Cannot resolve action context");
378326 }
379327 if (options.reviewers.length === 0) {
380328 return null;
381329 }
382330 const repoOwner = repository.owner.login;
383- const pullNumber = pullRequest.number ;
331+ const pullNumber = prNumber ;
384332 const repo = repository.name;
385- const prOwner = pullRequest.user.login ;
333+ const prOwner = options.pullRequestDetails.owner ;
386334 const reviewers = options.reviewers.filter((reviewer) => reviewer !== prOwner);
387335 if (reviewers.length === 0) {
388336 return null;
389337 }
390- const result = options.action === "assign"
391- ? yield options.client.rest.pulls.requestReviewers({
392- owner: repoOwner,
393- repo,
394- pull_number: pullNumber,
395- reviewers,
396- })
397- : yield options.client.rest.pulls.removeRequestedReviewers({
398- owner: repoOwner,
399- repo,
400- pull_number: pullNumber,
401- reviewers,
402- });
338+ const result = yield options.client.rest.pulls.requestReviewers({
339+ owner: repoOwner,
340+ repo,
341+ pull_number: pullNumber,
342+ reviewers,
343+ });
403344 return {
404345 url: result.url,
405346 };
@@ -448,7 +389,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
448389 });
449390};
450391Object.defineProperty(exports, "__esModule", ({ value: true }));
451- exports.getChangedFiles = exports.getPrNumber = exports.fetchContent = void 0;
392+ exports.getPrReviewersAndAssignees = exports. getChangedFiles = exports.getPrNumber = exports.fetchContent = void 0;
452393const github = __importStar(__nccwpck_require__(5438));
453394const core = __importStar(__nccwpck_require__(2186));
454395function fetchContent(client, repoPath) {
@@ -463,12 +404,33 @@ function fetchContent(client, repoPath) {
463404 });
464405}
465406exports.fetchContent = fetchContent;
466- function getPrNumber() {
467- const pullRequest = github.context.payload.pull_request;
468- if (!pullRequest) {
469- return undefined;
470- }
471- return pullRequest.number;
407+ function getPrNumber(client) {
408+ return __awaiter(this, void 0, void 0, function* () {
409+ try {
410+ const pullRequest = github.context.payload.pull_request;
411+ if (pullRequest) {
412+ return pullRequest.number;
413+ }
414+ const result = yield client.rest.repos.listPullRequestsAssociatedWithCommit({
415+ owner: github.context.repo.owner,
416+ repo: github.context.repo.repo,
417+ commit_sha: github.context.sha,
418+ });
419+ const pr = result.data
420+ .filter((el) => el.state === "open")
421+ .find((el) => {
422+ return github.context.payload.ref === `refs/heads/${el.head.ref}`;
423+ });
424+ if (pr !== undefined) {
425+ core.info(`📄 Linked PR: ${pr.number} | ${pr.title}`);
426+ }
427+ return pr === null || pr === void 0 ? void 0 : pr.number;
428+ }
429+ catch (error) {
430+ core.error(`🚨 Failed to get PR number: ${error}`);
431+ return undefined;
432+ }
433+ });
472434}
473435exports.getPrNumber = getPrNumber;
474436function getChangedFiles(client, prNumber) {
@@ -477,9 +439,11 @@ function getChangedFiles(client, prNumber) {
477439 owner: github.context.repo.owner,
478440 repo: github.context.repo.repo,
479441 pull_number: prNumber,
442+ per_page: 100,
480443 });
481444 const listFilesResponse = yield client.paginate(listFilesOptions);
482445 const changedFiles = listFilesResponse.map((f) => f.filename);
446+ // TODO: loop when more than 30 files changed
483447 if (changedFiles.length > 0) {
484448 core.info("📄 Changed files");
485449 for (const file of changedFiles) {
@@ -490,6 +454,32 @@ function getChangedFiles(client, prNumber) {
490454 });
491455}
492456exports.getChangedFiles = getChangedFiles;
457+ function getPrReviewersAndAssignees(client, prNumber) {
458+ var _a, _b;
459+ return __awaiter(this, void 0, void 0, function* () {
460+ try {
461+ const pullRequest = yield client.rest.pulls.get({
462+ owner: github.context.repo.owner,
463+ repo: github.context.repo.repo,
464+ pull_number: prNumber,
465+ });
466+ const labels = pullRequest.data.labels;
467+ const reviewers = pullRequest.data.requested_reviewers;
468+ return {
469+ prNumber: prNumber,
470+ labels: labels.map((label) => label.name),
471+ reviewers: reviewers.map((reviewer) => reviewer.login),
472+ baseSha: (_a = pullRequest.data.base) === null || _a === void 0 ? void 0 : _a.sha,
473+ owner: (_b = pullRequest.data.user) === null || _b === void 0 ? void 0 : _b.login,
474+ };
475+ }
476+ catch (error) {
477+ core.error(`🚨 Failed to get PR details: ${error}`);
478+ return undefined;
479+ }
480+ });
481+ }
482+ exports.getPrReviewersAndAssignees = getPrReviewersAndAssignees;
493483
494484
495485/***/ }),
@@ -565,7 +555,7 @@ function runLabeler(client, configPath, prNumber) {
565555 }
566556 }
567557 catch (error) {
568- core.error(error);
558+ core.error(` 🚨 ${ error}` );
569559 core.setFailed(error.message);
570560 }
571561 });
@@ -730,18 +720,22 @@ const assigner_1 = __nccwpck_require__(3463);
730720const owner_1 = __nccwpck_require__(7612);
731721function run() {
732722 return __awaiter(this, void 0, void 0, function* () {
733- const prNumber = helpers.getPrNumber();
723+ const token = core.getInput("token", { required: true });
724+ const configPath = core.getInput("configuration-path", { required: true });
725+ const client = github.getOctokit(token);
726+ const prNumber = yield helpers.getPrNumber(client);
734727 if (!prNumber) {
735728 console.log("Could not get pull request number from context, exiting");
736729 return;
737730 }
738- const token = core.getInput("token", { required: true });
739- const configPath = core.getInput("configuration-path", { required: true });
740- const client = github.getOctokit(token);
741731 core.info(`📄 Pull Request Number: ${prNumber}`);
732+ core.info(`🏭 Running labeler for ${prNumber}`);
742733 yield (0, labeler_1.runLabeler)(client, configPath, prNumber);
743- yield (0, assigner_1.runAssigner)(client, configPath);
734+ core.info(`🏭 Running assigner for ${prNumber}`);
735+ yield (0, assigner_1.runAssigner)(client, configPath, prNumber);
736+ core.info(`🏭 Running owner for ${prNumber}`);
744737 yield (0, owner_1.runOwner)(client, prNumber);
738+ core.info(`📄 Finsihed for ${prNumber}`);
745739 });
746740}
747741exports.run = run;
0 commit comments