reviewers_add.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. module.exports = async ({ github, context }) => {
  2. const pr_data = await github.rest.pulls.get({
  3. owner: context.repo.owner,
  4. repo: context.repo.repo,
  5. pull_number: context.issue.number,
  6. });
  7. const labels = pr_data.data.labels.map((e) => e.name);
  8. const reviewers = new Set();
  9. if (labels.includes("build")) {
  10. reviewers.add("dundargoc");
  11. reviewers.add("jamessan");
  12. reviewers.add("justinmk");
  13. }
  14. if (labels.includes("ci")) {
  15. reviewers.add("dundargoc");
  16. reviewers.add("jamessan");
  17. reviewers.add("justinmk");
  18. }
  19. if (labels.includes("column")) {
  20. reviewers.add("lewis6991");
  21. }
  22. if (labels.includes("comment")) {
  23. reviewers.add("echasnovski");
  24. }
  25. if (labels.includes("defaults")) {
  26. reviewers.add("gpanders");
  27. }
  28. if (labels.includes("diagnostic")) {
  29. reviewers.add("gpanders");
  30. }
  31. if (labels.includes("diff")) {
  32. reviewers.add("lewis6991");
  33. }
  34. if (labels.includes("editorconfig")) {
  35. reviewers.add("gpanders");
  36. }
  37. if (labels.includes("marks")) {
  38. reviewers.add("bfredl");
  39. }
  40. if (labels.includes("filetype")) {
  41. reviewers.add("clason");
  42. }
  43. if (labels.includes("inccommand")) {
  44. reviewers.add("famiu");
  45. }
  46. if (labels.includes("lsp")) {
  47. reviewers.add("MariaSolOs");
  48. }
  49. if (labels.includes("netrw")) {
  50. reviewers.add("justinmk");
  51. }
  52. if (labels.includes("options")) {
  53. reviewers.add("famiu");
  54. }
  55. if (labels.includes("platform:nix")) {
  56. reviewers.add("teto");
  57. }
  58. if (labels.includes("project-management")) {
  59. reviewers.add("bfredl");
  60. reviewers.add("justinmk");
  61. }
  62. if (labels.includes("snippet")) {
  63. reviewers.add("MariaSolOs");
  64. }
  65. if (labels.includes("statusline")) {
  66. reviewers.add("famiu");
  67. }
  68. if (labels.includes("treesitter")) {
  69. reviewers.add("bfredl");
  70. reviewers.add("clason");
  71. reviewers.add("lewis6991");
  72. reviewers.add("wookayin");
  73. }
  74. if (labels.includes("tui")) {
  75. reviewers.add("gpanders");
  76. }
  77. if (labels.includes("typo")) {
  78. reviewers.add("dundargoc");
  79. }
  80. if (labels.includes("vim-patch")) {
  81. reviewers.add("zeertzjq");
  82. }
  83. // Remove person that opened the PR since they can't review themselves
  84. const pr_opener = pr_data.data.user.login;
  85. reviewers.delete(pr_opener);
  86. github.rest.pulls.requestReviewers({
  87. owner: context.repo.owner,
  88. repo: context.repo.repo,
  89. pull_number: context.issue.number,
  90. reviewers: Array.from(reviewers),
  91. });
  92. };