name: Claude Code Review permissions: contents: read pull-requests: write on: pull_request: types: [opened, reopened, synchronize] workflow_dispatch: inputs: pr_number: description: 'Pull Request Number' required: true type: string jobs: code-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Previous steps remain the same until the post review comment... - name: Post review comment if: success() && steps.analysis.outputs.diff_size != '0' uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const { owner, repo } = context.repo; const review = JSON.parse(JSON.stringify(`${{ steps.analysis.outputs.review }}`)); const prNumber = ${{ steps.pr-number.outputs.number }}; await github.rest.issues.createComment({ owner, repo, issue_number: prNumber, body: "# Claude Code Review\n\n" + review.replace(/\\([\s\S])|(")/g, '\\$1$2') });