@@ -91,12 +91,18 @@ function getInputs() {
91
91
throw new Error("paths input is required for non-PR events");
92
92
}
93
93
}
94
+ const rawSuggestionLimit = core.getInput("suggestion-limit", {
95
+ required: false,
96
+ });
94
97
return {
95
98
paths,
96
99
githubToken: core.getInput("github-token", { required: true }),
97
100
suggestions: core.getBooleanInput("suggestions", {
98
101
required: true,
99
102
}),
103
+ suggestionsLimit: rawSuggestionLimit && rawSuggestionLimit !== ""
104
+ ? parseInt(rawSuggestionLimit, 10)
105
+ : null,
100
106
showPatch: core.getBooleanInput("show-patch", {
101
107
required: true,
102
108
}),
@@ -242,18 +248,24 @@ async function run() {
242
248
core.info("EOM");
243
249
core.info(" ");
244
250
}
251
+ let suggestionsSkipped = false;
245
252
if (inputs.suggestions && success) {
246
253
const resolved = await (0, review_comments_1.clearPriorSuggestions)(client, pr);
247
254
if (differences) {
248
255
const suggestions = (0, suggest_1.suggest)(pr.files, resolved, patch);
249
256
let n = 0;
250
257
const ps = suggestions.map((s) => {
251
- if (s.skipReason) {
258
+ const limitSkipReason = inputs.suggestionsLimit && n >= inputs.suggestionsLimit
259
+ ? "limit reached"
260
+ : null;
261
+ const skipReason = s.skipReason ?? limitSkipReason;
262
+ if (skipReason) {
252
263
const line = s.startLine !== s.endLine
253
264
? `${s.startLine}-${s.endLine}`
254
265
: `${s.startLine}`;
255
266
const location = `${s.path}:${line}`;
256
- core.warning(`[${location}]: Skipping suggestion: ${s.skipReason}`);
267
+ core.warning(`[${location}]: Skipping suggestion: ${skipReason}`);
268
+ suggestionsSkipped = true;
257
269
return Promise.resolve();
258
270
}
259
271
else {
@@ -273,6 +285,7 @@ async function run() {
273
285
restyledHead: `restyled/${pr.headRef}`,
274
286
restyledTitle: `Restyled ${pr.title}`,
275
287
restyledBody: pullRequestDescription(pr.number),
288
+ suggestionsSkipped,
276
289
});
277
290
if (ec !== 0) {
278
291
core.setFailed(`Restyler exited non-zero: ${ec}`);
@@ -425,6 +438,7 @@ function setOutputs(outputs) {
425
438
core.setOutput("restyled-head", outputs.restyledHead);
426
439
core.setOutput("restyled-title", outputs.restyledTitle);
427
440
core.setOutput("restyled-body", outputs.restyledBody);
441
+ core.setOutput("suggestions-skipped", outputs.suggestionsSkipped);
428
442
}
429
443
430
444
0 commit comments