Skip to content

Commit

Permalink
fix: add default reviewers to manual backport
Browse files Browse the repository at this point in the history
  • Loading branch information
alicelovescake committed Apr 1, 2024
1 parent 87d47fd commit 5d028ba
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 19 deletions.
9 changes: 8 additions & 1 deletion src/operations/update-manual-backport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
BACKPORT_REQUESTED_LABEL,
SKIP_CHECK_LABEL,
} from '../constants';
import { isSemverMinorPR } from '../utils';
import { tagBackportReviewers, isSemverMinorPR } from '../utils';
import { WebHookPRContext } from '../types';

/**
Expand Down Expand Up @@ -135,6 +135,13 @@ please check out #${pr.number}`;
}),
);
}

// Tag default reviewers to manual backport
await tagBackportReviewers({
context,
user: pr.user.login,
targetPrNumber: pr.number,
});
} else if (type === PRChange.MERGE) {
log(
'updateManualBackport',
Expand Down
51 changes: 33 additions & 18 deletions src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,34 @@ const createBackportComment = async (
return body;
};

export const tagBackportReviewers = async ({
context,
user,
targetPrNumber,
}: {
context: SimpleWebHookRepoContext;
user: string;
targetPrNumber: number;
}) => {
const reviewers = [];
const hasWrite = await checkUserHasWriteAccess(context, user);
// Optionally request a default review team for backports.
// If the PR author has write access, also request their review.
if (hasWrite) reviewers.push(user);
if (DEFAULT_BACKPORT_REVIEW_TEAM) {
reviewers.push(DEFAULT_BACKPORT_REVIEW_TEAM);
}

if (reviewers.length > 0) {
await context.octokit.pulls.requestReviewers(
context.repo({
pull_number: targetPrNumber,
reviewers,
}),
);
}
};

export const backportImpl = async (
robot: Probot,
context: SimpleWebHookRepoContext,
Expand Down Expand Up @@ -561,24 +589,11 @@ export const backportImpl = async (
}),
);

const reviewers = [];
const hasWrite = await checkUserHasWriteAccess(context, pr.user.login);

// Optionally request a default review team for backports.
// If the PR author has write access, also request their review.
if (hasWrite) reviewers.push(pr.user.login);
if (DEFAULT_BACKPORT_REVIEW_TEAM) {
reviewers.push(DEFAULT_BACKPORT_REVIEW_TEAM);
}

if (reviewers.length > 0) {
await context.octokit.pulls.requestReviewers(
context.repo({
pull_number: newPr.number,
reviewers,
}),
);
}
await tagBackportReviewers({
context,
user: pr.user.login,
targetPrNumber: newPr.number,
});

log(
'backportImpl',
Expand Down

0 comments on commit 5d028ba

Please sign in to comment.