File: open-bot.yml

package info (click to toggle)
node-webpack 5.75.0%2Bdfsg%2B~cs17.16.14-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 161,436 kB
  • sloc: javascript: 167,338; makefile: 15; sh: 6
file content (316 lines) | stat: -rw-r--r-- 8,434 bytes parent folder | download | duplicates (2)
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
bot: "webpack-bot"
rules:
  # Add ci-ok, ci-not-ok labels depending on travis status
  # comment to point the user to the results
  # comment in case of success
  - filters:
      open: true
      pull_request:
        mergeable: true
      status_1:
        context: "continuous-integration/travis-ci/pr"
      ensure_1:
        value: "{{status_1.state}}"
        equals: "success"
    actions:
      label:
        add: "PR: CI-ok"
        remove: "PR: CI-not-ok"
      comment:
        identifier: "ci-result"
        message: |-
          Thank you for your pull request! The most important CI builds succeeded, we’ll review the pull request soon.
  - filters:
      open: true
      pull_request:
        mergeable: true
      status_1:
        context: "continuous-integration/travis-ci/pr"
      any:
        ensure_1:
          value: "{{status_1.state}}"
          equals: "failure"
    actions:
      label:
        add: "PR: CI-not-ok"
        remove: "PR: CI-ok"
      set:
        id: report_ci
        value: yep

  # Report specific error message if jest tests fails
  - filters:
      ensure:
        value: "{{report_ci}}"
        equals: yep
      commit: true
      status:
        context: "continuous-integration/travis-ci/pr"
      travis_job:
        state: "failed"
        allow_failure: false
        config:
          env: JOB_PART=integration
      fetch: travis_job.log
      string_cleanup:
        id: logResult
        value: "{{{fetch}}}"
        remove:
          - "^[\\s\\S]+?npm run travis:\\$JOB_PART\n*"
          - "npm ERR!.*\n"
          - "\n*=============================================================================\n[\\s\\S]*"
    actions:
      comment:
        identifier: "ci-result"
        message: |-
          @{{commit.author.login}} Please review the following output log for errors:

          ``` text
          {{{logResult}}}
          ```

          See [complete report here]({{status.target_url}}).
      set:
        id: report_ci
        value: nope

  # Report specific error message if linting fails
  - filters:
      ensure:
        value: "{{report_ci}}"
        equals: yep
      commit: true
      status:
        context: "continuous-integration/travis-ci/pr"
      travis_job:
        state: "failed"
        config:
          env: JOB_PART=lint
      fetch: travis_job.log
      string_cleanup:
        id: logResult
        value: "{{{fetch}}}"
        remove:
          - "^[\\s\\S]+?npm run travis:\\$JOB_PART\n*"
          - "npm ERR!.*\n"
          - "\n*The command \"npm run travis:\\$JOB_PART\" exited [\\s\\S]*"
    actions:
      comment:
        identifier: "ci-result"
        message: |-
          @{{commit.author.login}} The tests look fine, but there are code style issue in your Pull Request. Please review the following:

          ``` text
          {{{logResult}}}
          ```

          See [complete report here]({{status.target_url}}).
      set:
        id: report_ci
        value: nope

  # Report a general error message
  - filters:
      ensure:
        value: "{{report_ci}}"
        equals: yep
      commit: true
      status_1:
        context: "continuous-integration/travis-ci/pr"
    actions:
      comment:
        identifier: "ci-result"
        message: |-
          @{{commit.author.login}} The most important CI builds failed. This way your PR can't be merged.

          Please take a look at the CI results from [travis]({{status_1.target_url}}) ({{status_1.state}}) and fix these issues.

  # add conflict label to pull requests with conflict
  # on conflict all result labels are removed
  - filters:
      open: true
      pull_request:
        mergeable: false
    actions:
      label:
        add: "PR: conflict"
        remove:
          - "PR: tests-needed"
          - "PR: CI-ok"
          - "PR: CI-not-ok"
  - filters:
      open: true
      pull_request:
        mergeable: true
    actions:
      label:
        remove: "PR: conflict"

  # add unreviewed, reviewed, review-outdated labels
  # comment to ping reviewer
  # comment on new PR
  - filters:
      open: true
      in_order:
        commit: true
        review:
          state: APPROVED|CHANGES_REQUESTED
      ensure:
        value: "{{review.state}}"
        equals: APPROVED
    actions:
      label:
        add: "PR: reviewed-approved"
        remove:
          - "PR: review-outdated"
          - "PR: unreviewed"
          - "PR: reviewed"
  - filters:
      open: true
      in_order:
        commit: true
        review:
          state: APPROVED|CHANGES_REQUESTED
      ensure:
        value: "{{review.state}}"
        equals: CHANGES_REQUESTED
    actions:
      label:
        add: "PR: reviewed-changes-requested"
        remove:
          - "PR: review-outdated"
          - "PR: unreviewed"
          - "PR: reviewed"
  - filters:
      open: true
      in_order:
        review:
          state: APPROVED|CHANGES_REQUESTED
        commit: true
      not:
        label: "review-outdated"
      ensure:
        value: "{{commit.author.login}}"
        notEquals: "{{review.user.login}}"
    actions:
      label:
        add: "PR: review-outdated"
        remove:
          - "PR: reviewed-approved"
          - "PR: reviewed-changes-requested"
          - "PR: unreviewed"
          - "PR: reviewed"
      comment:
        identifier: "review-outdated"
        message: |-
          @{{commit.author.login}} Thanks for your update.

          I labeled the Pull Request so reviewers will review it again.

          @{{review.user.login}} Please review the new changes.
  - filters:
      open: true
      commit: true
      not:
        review:
          state: APPROVED|CHANGES_REQUESTED
    actions:
      label: "PR: unreviewed"

  # add non-master label to pull request to other branch
  - filters:
      open: true
      age:
        minimum: 1d
        maximum: 1w
      pull_request:
        head_ref: "^master$"
      permission: "read|none"
    actions:
      comment:
        identifier: "head-master"
        edit: true
        message: |-
          Hi @{{pull_request.user.login}}.

          Just a little hint from a friendly bot about the best practice when submitting pull requests:

          > Don't submit pull request from your own `master` branch. It's recommended to create a feature branch for the PR.

          *You don't have to change it for this PR, just make sure to follow this hint the next time you submit a PR.*

  # Move issue task
  - filters:
      open: true
      comment: "\\s*@webpack-bot\\s+move\\s+(?:to\\s+)?([a-z0-9_\\-\\.]+/[a-z0-9_\\-\\.]+)\\s*([\\s\\S]*)$"
      not:
        comment_1:
          matching: "moved\\-by\\-bot"
          author: "."
      permission:
        user: "{{comment.actor.login}}"
    actions:
      new_issue:
        target: "{{{comment_match.[1]}}}"
        body: |-
          {{{issue.body}}}

          ---

          This issue was moved from {{owner}}/{{repo}}#{{issue.number}} by @{{comment.actor.login}}. Original issue was by @{{issue.user.login}}.

          {{{comment_match.[2]}}}
      comment:
        identifier: moved-by-bot
        message: |-
          I've moved it to {{comment_match.[1]}}.
      close: true

  # mark inactive issues with inactive label
  # close them when no activity after warning
  - filters:
      issue: true
      open: true
      not:
        label: inactive
      ensure:
        value: "{{issue.reactions.[+1]}}"
        range: "< 10"
      last_action_age: 26w # half a year
    actions:
      comment:
        identifier: inactive-warning
        message: |-
          **This issue had no activity for at least half a year.**

          It's subject to automatic issue closing if there is no activity in the next 15 days.
      label: inactive
  - filters:
      open: true
      label: inactive
      last_action_age:
        maximum: 26w # half a year
    actions:
      label:
        remove:
          - inactive
  - filters:
      open: true
      label: inactive
      last_action_age:
        minimum: 15d
        includeBotActions: true
    actions:
      close: true
      comment:
        identifier: inactive-close
        message: |-
          Issue was closed because of inactivity.

          If you think this is still a valid issue, please file a new issue with additional information.

  # Check issues every week
  - filters:
      open: true
    actions:
      schedule: 1d