Files
claude-code-action/.forgejo/workflows/claude.yml
T
Vlad MocanuandClaude Opus 4.6 b4bc36810d fix: let pull_request_review_comment events through unconditionally
Forgejo's pull_request_review_comment event does not populate
github.event.comment.body in the workflow context (it's always
empty), so the contains() check never matches. The action code
does its own trigger phrase validation, so it's safe to let these
events through based on event name alone.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 23:49:19 +02:00

95 lines
3.3 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:
# Temporary debug job to inspect Forgejo event payloads (PRD #6 E2E testing)
debug-event:
runs-on: grunt
steps:
- name: Dump event context
run: |
echo "=== Event Context ==="
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.action: ${{ github.event.action }}"
echo ""
echo "=== Comment fields ==="
echo "github.event.comment.body: ${{ github.event.comment.body }}"
echo "github.event.comment.id: ${{ github.event.comment.id }}"
echo ""
echo "=== Review fields ==="
echo "github.event.review.body: ${{ github.event.review.body }}"
echo "github.event.review.id: ${{ github.event.review.id }}"
echo ""
echo "=== GITHUB_EVENT_NAME env: $GITHUB_EVENT_NAME ==="
echo "=== GITHUB_EVENT_PATH: $GITHUB_EVENT_PATH ==="
echo ""
echo "=== Event Payload ==="
if [ -f "$GITHUB_EVENT_PATH" ]; then
cat "$GITHUB_EVENT_PATH"
else
echo "GITHUB_EVENT_PATH file not found!"
env | grep -i event || true
fi
claude:
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' && (
github.event.action == 'labeled' ||
github.event.action == 'assigned' ||
contains(github.event.issue.body, '@claude') ||
contains(github.event.issue.title, '@claude')
))
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 ""
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