-
-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathaction.yaml
More file actions
369 lines (348 loc) · 12.8 KB
/
action.yaml
File metadata and controls
369 lines (348 loc) · 12.8 KB
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
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
name: anti-slop
description: A GitHub action that detects and automatically closes low-quality and AI slop PRs.
author: peaklabs-dev
branding:
icon: slash
color: orange
inputs:
# Repo Auth Token
github-token:
description: GitHub token used to authenticate API requests.
required: true
default: ${{ github.token }}
# General Settings
max-failures:
description: Number of check failures needed before failure actions are triggered.
required: false
default: "4"
# PR Branch Checks
allowed-target-branches:
description: Newline-separated target branch patterns to allow. Empty allows all branches.
required: false
default: ""
blocked-target-branches:
description: Newline-separated target branch patterns to block.
required: false
default: ""
allowed-source-branches:
description: Newline-separated source branch patterns to allow. Empty allows all branches.
required: false
default: ""
blocked-source-branches:
description: Newline-separated source branch patterns to block.
required: false
default: |
main
master
# PR Size Checks
max-changed-files:
description: Maximum number of changed files allowed in the PR. 0 disables this check.
required: false
default: "50"
max-changed-lines:
description: Maximum number of changed lines (additions + deletions) allowed in the PR. 0 disables this check.
required: false
default: "10000"
# PR Quality Checks
max-negative-reactions:
description: Maximum number of negative reactions (thumbs down + confused) allowed on the PR. 0 disables this check.
required: false
default: "0"
require-maintainer-can-modify:
description: Require the PR to allow maintainers to push to the source branch.
required: false
default: "true"
# PR Title Checks
require-conventional-title:
description: Require PR titles to follow Conventional Commits format (e.g. 'feat:', 'fix:', 'feat(scope):').
required: false
default: "false"
# PR Description Checks
require-description:
description: Require a non-empty PR description.
required: false
default: "true"
max-description-length:
description: Maximum character length for the PR description. 0 disables this check.
required: false
default: "2500"
max-emoji-count:
description: Maximum number of emojis allowed in the PR title and description. 0 disables this check.
required: false
default: "2"
max-code-references:
description: Maximum number of code references (file paths, function/method calls) allowed in the PR description. 0 disables this check.
required: false
default: "5"
require-linked-issue:
description: Require the PR to reference at least one issue in the PR description.
required: false
default: "false"
blocked-terms:
description: Newline-separated list of terms blocked from appearing in the PR description.
required: false
default: ""
blocked-issue-numbers:
description: Comma-separated list of issue numbers blocked from being referenced in the PR description.
required: false
default: ""
# PR Template Checks
require-pr-template:
description: Require the PR description to follow the repository PR template structure.
required: false
default: "false"
strict-pr-template-sections:
description: Comma-separated PR template section headings (without '#') classified as strict. All checkboxes must be present and checked. Only applies when require-pr-template is enabled.
required: false
default: ""
optional-pr-template-sections:
description: Comma-separated PR template section headings (without '#') classified as optional. Can be removed from the description without failing the check. Only applies when require-pr-template is enabled.
required: false
default: ""
max-additional-pr-template-sections:
description: Maximum number of additional sections not in the template that are allowed in the PR description. 0 disables this check.
required: false
default: "0"
# Commit Message Checks
max-commit-message-length:
description: Maximum character length for individual commit messages. 0 disables this check.
required: false
default: "500"
require-conventional-commits:
description: Require all commit messages to follow Conventional Commits format (e.g. 'feat:', 'fix:', 'feat(scope):').
required: false
default: "false"
require-commit-author-match:
description: Require every commit in the PR to be authored by the same GitHub user who opened the PR.
required: false
default: "true"
blocked-commit-authors:
description: Comma-separated list of blocked commit author usernames.
required: false
default: ""
# File Checks
allowed-file-extensions:
description: Comma-separated list of allowed file extensions (e.g. '.ts,.js') for changed files. Empty allows all.
required: false
default: ""
allowed-paths:
description: Newline-separated file or folder paths to allow for changed files. Entries ending with '/' match folders. Empty allows all.
required: false
default: ""
blocked-paths:
description: Newline-separated file or folder paths to block for changed files. Entries ending with '/' match folders.
required: false
default: |
README.md
SECURITY.md
LICENSE
CODE_OF_CONDUCT.md
require-final-newline:
description: Require all changed files to end with a newline character.
required: false
default: "true"
max-added-comments:
description: Maximum number of added comments in all changed files. 0 disables this check.
required: false
default: "10"
# User Checks
detect-spam-usernames:
description: Detect usernames that match common spam patterns.
required: false
default: "true"
min-account-age:
description: Minimum GitHub account age in days. 0 disables this check.
required: false
default: "30"
max-daily-forks:
description: Maximum number of repositories forked by the user in any 24-hour window. 0 disables this check.
required: false
default: "6"
require-public-profile:
description: Require the PR author to have a public GitHub profile.
required: false
default: "true"
min-profile-completeness:
description: Minimum number of profile signals (name, email, bio, etc.) the user must have to pass. 0 disables this check.
required: false
default: "4"
# Merge Checks
min-repo-merged-prs:
description: Minimum number of merged PRs in this repository from the author. 0 disables this check.
required: false
default: "0"
min-repo-merge-ratio:
description: Minimum merge/close PR ratio percentage in this repository. 0 disables this check.
required: false
default: "0"
min-global-merge-ratio:
description: Minimum merge/close PR ratio percentage across all repositories. 0 disables this check.
required: false
default: "30"
global-merge-ratio-exclude-own:
description: Exclude PRs to the author's own repositories from the global merge ratio calculation.
required: false
default: "false"
# Filters
# only-issue-types:
# description: Comma-separated list of issue types. Checks only run on issues with one of these types.
# required: false
# default: ""
# only-labels:
# description: Comma-separated list of labels. Checks only run when ALL listed labels are present.
# required: false
# default: ""
# only-pr-labels:
# description: Comma-separated list of labels on PRs. Checks only run when ALL listed labels are present.
# required: false
# default: ""
# only-issue-labels:
# description: Comma-separated list of labels on Issues. Checks only run when ALL listed labels are present.
# required: false
# default: ""
# any-of-labels:
# description: Comma-separated list of labels. Checks run when any listed label is present.
# required: false
# default: ""
# any-of-pr-labels:
# description: Comma-separated list of labels on PRs. Checks run when any listed label is present.
# required: false
# default: ""
# any-of-issue-labels:
# description: Comma-separated list of labels on Issues. Checks run when any listed label is present.
# required: false
# default: ""
# Exemptions
exempt-draft-prs:
description: Exempt draft PRs from all checks.
required: false
default: "false"
exempt-bots:
description: Newline-separated list of bot usernames exempt from all checks.
required: false
default: |
actions-user
autofix-ci[bot]
dependabot[bot]
renovate[bot]
github-actions[bot]
exempt-users:
description: Comma-separated list of GitHub usernames exempt from all checks.
required: false
default: ""
exempt-author-association:
description: Comma-separated list of GitHub author associations exempt from all checks.
required: false
default: "OWNER,MEMBER,COLLABORATOR"
# exempt-teams:
# description: Comma-separated list of GitHub team slugs whose members are exempt from all checks.
# required: false
# default: ""
exempt-label:
description: Label name that exempts PRs and Issues from all checks when it is present.
required: false
default: "exempt"
exempt-pr-label:
description: Label name that exempts PRs from all checks when it is present.
required: false
default: ""
# exempt-issue-label:
# description: Label name that exempts Issues from all checks when it is present.
# required: false
# default: ""
exempt-all-milestones:
description: Exempt all PRs and Issues that are assigned to any milestone.
required: false
default: "false"
exempt-all-pr-milestones:
description: Exempt all PRs that are assigned to any milestone.
required: false
default: "false"
# exempt-all-issue-milestones:
# description: Exempt all Issues that are assigned to any milestone.
# required: false
# default: "false"
exempt-milestones:
description: Comma-separated list of milestone titles. PRs and Issues assigned to any listed milestone are exempt.
required: false
default: ""
exempt-pr-milestones:
description: Comma-separated list of milestone titles. PRs assigned to any listed milestone are exempt.
required: false
default: ""
# exempt-issue-milestones:
# description: Comma-separated list of milestone titles. Issues assigned to any listed milestone are exempt.
# required: false
# default: ""
# PR Success Actions
success-add-pr-labels:
description: Comma-separated list of labels to add to the PR on success.
required: false
default: ""
# PR Failure Actions
failure-remove-pr-labels:
description: Comma-separated list of labels to remove from the PR on failure.
required: false
default: ""
failure-remove-all-pr-labels:
description: Remove all labels from the PR on failure.
required: false
default: "false"
failure-add-pr-labels:
description: Comma-separated list of labels to add to the PR on failure.
required: false
default: ""
failure-pr-message:
description: Comment posted on the PR when the maximum number of failures is reached. Empty posts no comment.
required: false
default: ""
close-pr:
description: Close the PR when the maximum number of failures is reached.
required: false
default: "true"
lock-pr:
description: Lock the PR conversation after closing.
required: false
default: "false"
# Issue Close Actions
# close-issue:
# description: Close the issue when the maximum number of failures is reached.
# required: false
# default: "true"
# close-issue-reason:
# description: Reason used when closing the issue (e.g. 'not_planned', 'completed').
# required: false
# default: "not_planned"
# lock-issue:
# description: Lock the issue conversation after closing.
# required: false
# default: "false"
# Issue Failure Actions
# failure-issue-message:
# description: Comment posted on the issue when the maximum number of failures is reached. Empty posts no comment.
# required: false
# default: ""
# failure-remove-issue-labels:
# description: Comma-separated list of labels to remove from the issue on failure.
# required: false
# default: ""
# failure-remove-all-issue-labels:
# description: Remove all labels from the issue on failure.
# required: false
# default: "false"
# failure-add-issue-labels:
# description: Comma-separated list of labels to add to the issue on failure.
# required: false
# default: ""
outputs:
total-checks:
description: Total number of checks that were run.
failed-checks:
description: Number of checks that failed.
passed-checks:
description: Number of checks that passed.
result:
description: "Overall result: 'passed', 'failed', or 'skipped'."
runs:
using: node24
main: dist/index.mjs