backport
Version:
A CLI tool that automates the process of backporting commits
32 lines • 1.44 kB
JavaScript
import { uniq, flatten } from 'lodash-es';
import { filterNil } from '../../../utils/filter-empty.js';
import { logger } from '../../logger.js';
import { ora } from '../../ora.js';
import { createOctokitClient, retryOctokitRequest } from './octokit-client.js';
export async function getReviewersFromPullRequests({ options, pullNumbers, }) {
const { githubApiBaseUrlV3, repoName, repoOwner, githubToken, interactive, authenticatedUsername, } = options;
const text = `Retrieving original reviewers`;
const spinner = ora(interactive, text).start();
const octokit = createOctokitClient({ githubToken, githubApiBaseUrlV3 });
try {
const promises = pullNumbers.map(async (pr) => {
const reviews = await retryOctokitRequest(() => octokit.pulls.listReviews({
owner: repoOwner,
repo: repoName,
pull_number: pr,
}));
return reviews.data
.map((review) => review.user?.login)
.filter((username) => username !== authenticatedUsername)
.filter(filterNil);
});
const reviewers = uniq(flatten(await Promise.all(promises)));
spinner.stop();
return reviewers;
}
catch (error) {
logger.error('Retrieving reviewers failed', error);
spinner.fail(`Retrieving reviewers failed`);
}
}
//# sourceMappingURL=get-reviewers-from-pull-requests.js.map