Skip to content

Commit d0f2fbb

Browse files
authored
Add additional liner edge cases (ZigEmbeddedGroup#794)
1 parent ce9d4a6 commit d0f2fbb

1 file changed

Lines changed: 40 additions & 16 deletions

File tree

.github/workflows/lint.yml

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -274,15 +274,27 @@ jobs:
274274
// Dismiss all existing bot reviews and resolve their conversations
275275
for (const review of botReviews) {
276276
if (review.state !== 'DISMISSED') {
277+
// Resolve threads first
277278
await resolveReviewThreads(review.id);
278-
await github.rest.pulls.dismissReview({
279-
owner: context.repo.owner,
280-
repo: context.repo.repo,
281-
pull_number: context.issue.number,
282-
review_id: review.id,
283-
message: 'All lint issues have been resolved'
284-
});
285-
console.log(`Dismissed review ${review.id} and resolved conversations`);
279+
280+
// Only dismiss reviews that can be dismissed (APPROVED or CHANGES_REQUESTED)
281+
// COMMENTED reviews cannot be dismissed via the API
282+
if (review.state === 'APPROVED' || review.state === 'CHANGES_REQUESTED') {
283+
try {
284+
await github.rest.pulls.dismissReview({
285+
owner: context.repo.owner,
286+
repo: context.repo.repo,
287+
pull_number: context.issue.number,
288+
review_id: review.id,
289+
message: 'All lint issues have been resolved'
290+
});
291+
console.log(`Dismissed ${review.state} review ${review.id} and resolved conversations`);
292+
} catch (error) {
293+
console.log(`Could not dismiss review ${review.id}: ${error.message}`);
294+
}
295+
} else {
296+
console.log(`Skipped dismissing ${review.state} review ${review.id} (only threads resolved)`);
297+
}
286298
}
287299
}
288300
@@ -310,15 +322,27 @@ jobs:
310322
// Dismiss ALL existing bot reviews and resolve their conversations
311323
for (const review of botReviews) {
312324
if (review.state !== 'DISMISSED') {
325+
// Resolve threads first
313326
await resolveReviewThreads(review.id);
314-
await github.rest.pulls.dismissReview({
315-
owner: context.repo.owner,
316-
repo: context.repo.repo,
317-
pull_number: context.issue.number,
318-
review_id: review.id,
319-
message: 'Updating with new lint results'
320-
});
321-
console.log(`Dismissed review ${review.id} and resolved conversations`);
327+
328+
// Only dismiss reviews that can be dismissed (APPROVED or CHANGES_REQUESTED)
329+
// COMMENTED reviews cannot be dismissed via the API
330+
if (review.state === 'APPROVED' || review.state === 'CHANGES_REQUESTED') {
331+
try {
332+
await github.rest.pulls.dismissReview({
333+
owner: context.repo.owner,
334+
repo: context.repo.repo,
335+
pull_number: context.issue.number,
336+
review_id: review.id,
337+
message: 'Updating with new lint results'
338+
});
339+
console.log(`Dismissed ${review.state} review ${review.id} and resolved conversations`);
340+
} catch (error) {
341+
console.log(`Could not dismiss review ${review.id}: ${error.message}`);
342+
}
343+
} else {
344+
console.log(`Skipped dismissing ${review.state} review ${review.id} (only threads resolved)`);
345+
}
322346
}
323347
}
324348

0 commit comments

Comments
 (0)