@@ -410,6 +410,9 @@ def get_review_action_with_delta(
410410 ) -> str :
411411 """Determine GitHub review action considering the delta.
412412
413+ LGTM-with-comments: REQUEST_CHANGES only for critical findings. When there are
414+ only warnings, suggestions, or nitpicks, returns COMMENT so the author isn't blocked.
415+
413416 Args:
414417 review: Consolidated review
415418 delta: Review delta
@@ -418,25 +421,25 @@ def get_review_action_with_delta(
418421 Returns:
419422 GitHub review action
420423 """
421- # If all issues are resolved, approve (if allowed)
422424 if delta .all_issues_resolved and allow_approve :
423425 return "APPROVE"
424426
425- # If there are critical issues (new or open), request changes
426- # But only if allow_approve is True (i.e., not in GitHub Actions)
427- # GitHub Actions can't approve, and REQUEST_CHANGES blocks merging
427+ # Block merge only when there are critical findings (not warnings/suggestions/nitpicks)
428428 has_critical = any (
429429 f .severity .value == "critical" for f in delta .new_findings + delta .open_findings
430430 )
431431 if has_critical and allow_approve :
432432 return "REQUEST_CHANGES"
433433
434- # In GitHub Actions or no critical issues, just comment
434+ # No critical: COMMENT (includes only nits/suggestions/warnings — don't block author)
435435 return "COMMENT"
436436
437437 def get_review_action (self , review : ConsolidatedReview , allow_approve : bool = True ) -> str :
438438 """Determine the GitHub review action based on findings.
439439
440+ LGTM-with-comments: REQUEST_CHANGES only for critical findings. When there are
441+ only warnings, suggestions, or nitpicks, returns COMMENT so the author isn't blocked.
442+
440443 Args:
441444 review: Consolidated review
442445 allow_approve: Whether to allow APPROVE/REQUEST_CHANGES actions
@@ -445,14 +448,12 @@ def get_review_action(self, review: ConsolidatedReview, allow_approve: bool = Tr
445448 Returns:
446449 GitHub review action: "APPROVE", "REQUEST_CHANGES", or "COMMENT"
447450 """
448- # REQUEST_CHANGES blocks merging - only use when allow_approve is True
449- # (i.e., running locally with proper permissions)
451+ if not review .findings and allow_approve :
452+ return "APPROVE"
453+ # Block merge only on critical; warnings/suggestions/nitpicks → COMMENT
450454 if review .has_critical_issues and allow_approve :
451455 return "REQUEST_CHANGES"
452- elif not review .findings and allow_approve :
453- return "APPROVE"
454- else :
455- return "COMMENT"
456+ return "COMMENT"
456457
457458
458459def format_review_as_json (review : ConsolidatedReview ) -> dict :
0 commit comments