aboutsummaryrefslogtreecommitdiff
path: root/.github/scripts/reviews.js
blob: 6e9a82935343a38818d6956b8019254bdd21f2e2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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()
  if (labels.includes('api')) {
    reviewers.add("bfredl")
    reviewers.add("gpanders")
    reviewers.add("muniter")
  }

  if (labels.includes('build')) {
    reviewers.add("jamessan")
  }

  if (labels.includes('ci')) {
    reviewers.add("jamessan")
  }

  if (labels.includes('column')) {
    reviewers.add("lewis6991")
  }

  if (labels.includes('diagnostic')) {
    reviewers.add("gpanders")
  }

  if (labels.includes('diff')) {
    reviewers.add("lewis6991")
  }

  if (labels.includes('dependencies')) {
    reviewers.add("jamessan")
  }

  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")
  }

  if (labels.includes('gui')) {
    reviewers.add("glacambre")
    reviewers.add("smolck")
  }

  if (labels.includes('lsp')) {
    reviewers.add("mfussenegger")
  }

  if (labels.includes('treesitter')) {
    reviewers.add("bfredl")
    reviewers.add("vigoux")
  }

  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)
  });
}