mirror of
https://github.com/neovim/neovim.git
synced 2026-02-04 19:42:21 +10:00
Using team reviewers when possible reduces the churn on the git history as we'll be able to add or remove reviewers without needing to change the workflow files. This requires using Github fine-grained personal access tokens with Pull Requests set to "Read and write" and Members to "Read-only".
105 lines
2.2 KiB
JavaScript
105 lines
2.2 KiB
JavaScript
module.exports = async ({github, context}) => {
|
|
const pr_data = await github.rest.pulls.get({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
pull_number: context.issue.number
|
|
})
|
|
const labels = pr_data.data.labels.map(e => e.name)
|
|
|
|
const reviewers = new Set()
|
|
const team_reviewers = new Array()
|
|
if (labels.includes('api')) {
|
|
reviewers.add("bfredl")
|
|
reviewers.add("muniter")
|
|
}
|
|
|
|
if (labels.includes('build')) {
|
|
reviewers.add("jamessan")
|
|
reviewers.add("justinmk")
|
|
}
|
|
|
|
if (labels.includes('ci')) {
|
|
team_reviewers.push('ci');
|
|
}
|
|
|
|
if (labels.includes('column')) {
|
|
reviewers.add("lewis6991")
|
|
}
|
|
|
|
if (labels.includes('dependencies')) {
|
|
reviewers.add("jamessan")
|
|
}
|
|
|
|
if (labels.includes('diagnostic')) {
|
|
reviewers.add("gpanders")
|
|
}
|
|
|
|
if (labels.includes('diff')) {
|
|
reviewers.add("lewis6991")
|
|
}
|
|
|
|
if (labels.includes('distribution')) {
|
|
reviewers.add("jamessan")
|
|
}
|
|
|
|
if (labels.includes('documentation')) {
|
|
reviewers.add("clason")
|
|
}
|
|
|
|
if (labels.includes('extmarks')) {
|
|
reviewers.add("bfredl")
|
|
}
|
|
|
|
if (labels.includes('filetype')) {
|
|
reviewers.add("clason")
|
|
reviewers.add("gpanders")
|
|
reviewers.add("smjonas")
|
|
}
|
|
|
|
if (labels.includes('lsp')) {
|
|
team_reviewers.push('lsp');
|
|
}
|
|
|
|
if (labels.includes('project-management')) {
|
|
reviewers.add("bfredl")
|
|
reviewers.add("justinmk")
|
|
}
|
|
|
|
if (labels.includes('refactor')) {
|
|
reviewers.add("bfredl")
|
|
}
|
|
|
|
if (labels.includes('test')) {
|
|
reviewers.add("justinmk")
|
|
}
|
|
|
|
if (labels.includes('treesitter')) {
|
|
team_reviewers.push('treesitter');
|
|
}
|
|
|
|
if (labels.includes('typo')) {
|
|
reviewers.add("dundargoc")
|
|
}
|
|
|
|
if (labels.includes('ui')) {
|
|
reviewers.add("bfredl")
|
|
}
|
|
|
|
if (labels.includes('vim-patch')) {
|
|
reviewers.add("seandewar")
|
|
reviewers.add("zeertzjq")
|
|
}
|
|
|
|
// Remove person that opened the PR since they can't review themselves
|
|
const pr_opener = pr_data.data.user.login
|
|
reviewers.delete(pr_opener)
|
|
|
|
github.rest.pulls.requestReviewers({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
pull_number: context.issue.number,
|
|
reviewers: Array.from(reviewers),
|
|
team_reviewers: team_reviewers
|
|
});
|
|
}
|