Forgejo's pull_request_comment payload does not populate github.event.comment.body or github.event.review.body in a way the workflow contains() expression can read, causing legitimate @claude reviews to be skipped (run 12084). Revert to unconditional pass at the workflow level. The @claude check is handled properly in trigger.ts which inspects the actual payload fields with fallback logic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
79 lines
3.0 KiB
YAML
79 lines
3.0 KiB
YAML
name: Claude Code (Forgejo)
|
|
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
pull_request_review_comment:
|
|
types: [created]
|
|
issues:
|
|
types: [opened, assigned, labeled]
|
|
pull_request_review:
|
|
types: [submitted]
|
|
|
|
concurrency:
|
|
group: claude-${{ github.event.issue.number || github.event.pull_request.number }}-${{ github.run_id }}
|
|
|
|
jobs:
|
|
claude:
|
|
# Forgejo workflow if: limitations (expression parser rejects '#' comments):
|
|
# - pull_request_review_comment / pull_request_comment: Forgejo collapses both
|
|
# review comments and full reviews into pull_request_comment. Cannot gate on
|
|
# @claude here — payload fields are empty (run 12084). Check in trigger.ts.
|
|
# - pull_request_review: Only fires on GitHub, dead code on Forgejo.
|
|
# - issues: Forgejo does not populate github.event.action (run 12061 skipped
|
|
# despite action being 'labeled'). Let all through; trigger.ts validates.
|
|
if: >-
|
|
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
(github.event_name == 'pull_request_review_comment' || github.event_name == 'pull_request_comment') ||
|
|
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
(github.event_name == 'issues')
|
|
runs-on: grunt
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://${{ secrets.READ_REPO_TOKEN }}@git.wxs.ro/xternal/checkout@v6.0.2
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: Run Claude Code
|
|
id: claude
|
|
uses: ./
|
|
with:
|
|
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
github_token: ${{ secrets.CLAUDE_BOT_TOKEN }}
|
|
bot_id: "48"
|
|
bot_name: "claude"
|
|
bot_email: "claude@wxs.ro"
|
|
platform: "forgejo"
|
|
assignee_trigger: "claude"
|
|
env:
|
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
|
|
- name: Debug on failure
|
|
if: failure()
|
|
run: |
|
|
echo "=== Debug Info ==="
|
|
echo "Platform: PLATFORM=$PLATFORM FORGEJO=$FORGEJO"
|
|
echo "Server URL: $GITHUB_SERVER_URL"
|
|
echo "API URL: $GITHUB_API_URL"
|
|
echo "Event: ${{ github.event_name }} / ${{ github.event.action }}"
|
|
echo "Actor: ${{ github.actor }}"
|
|
echo ""
|
|
echo "=== Event Payload ==="
|
|
echo "comment.body: ${{ github.event.comment.body }}"
|
|
echo "comment.id: ${{ github.event.comment.id }}"
|
|
echo "review.body: ${{ github.event.review.body }}"
|
|
echo "review.id: ${{ github.event.review.id }}"
|
|
echo ""
|
|
if [ -f "$GITHUB_EVENT_PATH" ]; then
|
|
echo "--- GITHUB_EVENT_PATH ---"
|
|
cat "$GITHUB_EVENT_PATH"
|
|
fi
|
|
echo ""
|
|
EXEC_FILE="${{ steps.claude.outputs.execution_file }}"
|
|
if [ -f "$EXEC_FILE" ]; then
|
|
echo "--- Execution file contents ---"
|
|
cat "$EXEC_FILE"
|
|
else
|
|
echo "No execution file found"
|
|
fi
|