Skip to content

Instantly share code, notes, and snippets.

@swain
Last active August 9, 2022 19:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swain/627ab45e6eb00b9f656d28e45ee959fb to your computer and use it in GitHub Desktop.
Save swain/627ab45e6eb00b9f656d28e45ee959fb to your computer and use it in GitHub Desktop.
const requestReviewers = (repo: string, pull_number: number) => {
const BLACKLIST = [
'mdlavin',
'jagoda',
// others?
];
const { data: contributors } = await github.rest.repos.listContributors({
owner: 'lifeomic',
repo,
per_page: 20
});
let reviewer = '';
for (const user of contributors) {
if (BLACKLIST.includes(user.login) {
console.log(`Detected blacklisted contributor: ${user.login}`)
continue;
}
try {
await github.orgs.checkMembershipForUser({
org: 'lifeomic',
username: user.login
});
reviewer = user.login;
break;
} catch (e) {
// user is not in org
continue;
}
}
if (!reviewer) {
console.log('ERROR: Could not find reviewer');
return;
}
console.log(`Found reviewer: ${reviewer}`);
await github.pulls.requestReviewers({
owner: 'lifeomic',
repo,
pull_number,
reviewers: [reviewer]
});
await github.issues.createComment({
owner: 'lifeomic',
repo,
issue_number: pull_number,
body: [
`@${reviewer} I requested you for review because you are a top contributor.`,
'',
'Feel free to re-assign this PR if someone else may be better suited for review and/or manual intervention.',
'',
'Please direct any questions/concerns to [this Slack thread](JOSH_LINK_TO_SLACK_THREAD_HERE).'
].join('\n')
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment