Skip to content

Commit

Permalink
fix: check if a PR can be merged after a review request is removed
Browse files Browse the repository at this point in the history
  • Loading branch information
christophehurpeau committed Dec 31, 2021
1 parent 8848afb commit 19406c6
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions src/events/pr-handlers/reviewRequestRemoved.ts
@@ -1,8 +1,10 @@
import type { Probot } from 'probot';
import type { AppContext } from '../../context/AppContext';
import * as slackUtils from '../../slack/utils';
import { autoMergeIfPossible } from './actions/autoMergeIfPossible';
import { updateReviewStatus } from './actions/updateReviewStatus';
import { createPullRequestHandler } from './utils/createPullRequestHandler';
import { fetchPr } from './utils/fetchPr';
import { getReviewersAndReviewStates } from './utils/getReviewersAndReviewStates';

export default function reviewRequestRemoved(
Expand All @@ -26,19 +28,22 @@ export default function reviewRequestRemoved(
const requestedReviewers = requestedReviewer
? [requestedReviewer]
: await repoContext.getMembersForTeam(requestedTeam.id);
let isMerged = false;

const reviewerGroup = requestedReviewer
? repoContext.getReviewerGroup(requestedReviewer.login)
: repoContext.getTeamGroup(requestedTeam.name);

if (
reviewflowPrContext &&
!repoContext.shouldIgnore &&
reviewerGroup &&
repoContext.config.labels.review[reviewerGroup]
) {
const updatedPr = await fetchPr(context, pullRequest.number);
const hasRequestedReviewsForGroup = repoContext.approveShouldWait(
reviewerGroup,
pullRequest,
updatedPr,
{
includesReviewerGroup: true,
},
Expand All @@ -59,8 +64,8 @@ export default function reviewRequestRemoved(
!hasChangesRequestedInReviews &&
hasApprovedInReviews;

await updateReviewStatus(
pullRequest,
const newLabels = await updateReviewStatus(
updatedPr,
context,
repoContext,
reviewerGroup,
Expand All @@ -84,6 +89,16 @@ export default function reviewRequestRemoved(
},
);

if (approved && !hasChangesRequestedInReviews) {
isMerged = await autoMergeIfPossible(
updatedPr,
context,
repoContext,
reviewflowPrContext,
newLabels,
);
}

const assigneesLogins: string[] = [];
if (pullRequest.assignees) {
pullRequest.assignees.forEach((assignee) => {
Expand Down Expand Up @@ -113,7 +128,7 @@ export default function reviewRequestRemoved(
}_ review on ${slackUtils.createPrLink(
pullRequest,
repoContext,
)}`,
)}${isMerged ? ' and PR is merged :tada:' : ''}`,
},
requestedTeam ? requestedTeam.id : undefined,
);
Expand All @@ -131,7 +146,7 @@ export default function reviewRequestRemoved(
} review on ${slackUtils.createPrLink(
pullRequest,
repoContext,
)}`,
)}${isMerged ? ' and PR is merged :tada:' : ''}`,
},
requestedTeam ? requestedTeam.id : undefined,
);
Expand Down

0 comments on commit 19406c6

Please sign in to comment.