diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index 2910e4f3..61298864 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -27,10 +27,44 @@ jobs: id-token: write actions: read steps: - - name: Checkout repository + - name: Get PR details + if: | + (github.event_name == 'issue_comment' && github.event.issue.pull_request) || + github.event_name == 'pull_request_review_comment' || + github.event_name == 'pull_request_review' + id: pr + uses: actions/github-script@v7 + with: + script: | + let prNumber; + if (context.eventName === 'issue_comment') { + prNumber = context.issue.number; + } else { + prNumber = context.payload.pull_request.number; + } + + const pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + + core.setOutput('sha', pr.data.head.sha); + core.setOutput('repo', pr.data.head.repo.full_name); + + - name: Checkout PR branch + if: steps.pr.outcome == 'success' uses: actions/checkout@v4 with: - fetch-depth: 1 + ref: ${{ steps.pr.outputs.sha }} + repository: ${{ steps.pr.outputs.repo }} + fetch-depth: 0 + + - name: Checkout repository + if: steps.pr.outcome != 'success' + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Run Claude Code id: claude