diff --git a/.forgejo/workflows/claude.yml b/.forgejo/workflows/claude.yml index ea81a3d..4429059 100644 --- a/.forgejo/workflows/claude.yml +++ b/.forgejo/workflows/claude.yml @@ -7,6 +7,8 @@ on: types: [created] issues: types: [opened, assigned, labeled] + # Forgejo never fires pull_request_review — it sends pull_request_comment + # for both review comments AND full reviews. Kept for GitHub compatibility. pull_request_review: types: [submitted] @@ -24,7 +26,13 @@ jobs: # despite action being 'labeled'). Let all through; trigger.ts validates. if: >- (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || + # Forgejo collapses both pull_request_review_comment AND pull_request_review + # into pull_request_comment. We cannot gate on @claude here because Forgejo's + # webhook payload does not populate github.event.comment.body or + # github.event.review.body for these events (tested: run 12084 was skipped). + # The @claude check is handled in trigger.ts which reads the actual payload. (github.event_name == 'pull_request_review_comment' || github.event_name == 'pull_request_comment') || + # This condition only fires on GitHub (Forgejo never sends pull_request_review). (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || (github.event_name == 'issues') runs-on: grunt