diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 0000000000..05868aad45 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,17 @@ +# Claude reviews + +Repository owners and members can request a pull request review by commenting +`@claude`. The workflow uses `prompts/code-review.md` and posts the review as a +pull request comment. Add instructions after `@claude` to use interactive mode +with the triggering comment and conversation context instead. + +Reviews use Claude Sonnet 5.5 through the global cross-region Bedrock inference +profile from `us-west-2`. Configure the model with `ANTHROPIC_MODEL`; the workflow +disables extended thinking because Bedrock rejects replayed tool-call turns +without a leading thinking block. The workflow has a ten-minute job timeout. +The inference role must permit invocation of the profile and its destination +models. + +Comment-triggered workflows use the default branch's workflow definition. +End-to-end verification of workflow changes requires merging them before +requesting another review. diff --git a/.github/workflows/claude-pr.yml b/.github/workflows/claude-pr.yml index 09aee7110c..ff9790cda3 100644 --- a/.github/workflows/claude-pr.yml +++ b/.github/workflows/claude-pr.yml @@ -24,6 +24,7 @@ jobs: github.event.comment.author_association == 'MEMBER' ) runs-on: ubuntu-latest + timeout-minutes: 10 env: AWS_REGION: us-west-2 AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} @@ -80,31 +81,38 @@ jobs: echo "EOF" } >> "$GITHUB_OUTPUT" - - uses: anthropics/claude-code-action@69dec299f882fef0fff1652a1309b7e9771b9f98 + - uses: anthropics/claude-code-action@8d70a0dd265122bd65b8e09d3d959e65373ae2a1 # v1.0.260 if: steps.determine-prompt.outputs.use-code-review-prompt == 'true' env: + ANTHROPIC_MODEL: arn:aws:bedrock:us-west-2:168000258654:inference-profile/global.anthropic.claude-sonnet-5-5 AWS_REGION: us-west-2 AWS_ACCESS_KEY_ID: ${{ steps.inference-role.outputs.aws-access-key-id }} AWS_SECRET_ACCESS_KEY: ${{ steps.inference-role.outputs.aws-secret-access-key }} AWS_SESSION_TOKEN: ${{ steps.inference-role.outputs.aws-session-token }} + MAX_THINKING_TOKENS: '0' with: - timeout_minutes: '10' github_token: ${{ secrets.GITHUB_TOKEN }} use_bedrock: 'true' - anthropic_model: 'arn:aws:bedrock:us-west-2:168000258654:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0' - direct_prompt: ${{ steps.read-prompt.outputs.prompt-content }} + claude_args: --allowed-tools 'Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr comment:*)' + prompt: | + REPO: ${{ github.repository }} + PR NUMBER: ${{ github.event.issue.number || github.event.pull_request.number }} - - uses: anthropics/claude-code-action@69dec299f882fef0fff1652a1309b7e9771b9f98 + Read this pull request with `gh pr view ${{ github.event.issue.number || github.event.pull_request.number }} --repo ${{ github.repository }}` + and `gh pr diff ${{ github.event.issue.number || github.event.pull_request.number }} --repo ${{ github.repository }}`. + Post the final review to the same pull request with `gh pr comment ${{ github.event.issue.number || github.event.pull_request.number }} --repo ${{ github.repository }}`. + + ${{ steps.read-prompt.outputs.prompt-content }} + + - uses: anthropics/claude-code-action@8d70a0dd265122bd65b8e09d3d959e65373ae2a1 # v1.0.260 if: steps.determine-prompt.outputs.use-code-review-prompt == 'false' env: + ANTHROPIC_MODEL: arn:aws:bedrock:us-west-2:168000258654:inference-profile/global.anthropic.claude-sonnet-5-5 AWS_REGION: us-west-2 AWS_ACCESS_KEY_ID: ${{ steps.inference-role.outputs.aws-access-key-id }} AWS_SECRET_ACCESS_KEY: ${{ steps.inference-role.outputs.aws-secret-access-key }} AWS_SESSION_TOKEN: ${{ steps.inference-role.outputs.aws-session-token }} - COMMENT_BODY: ${{ github.event.comment.body }} + MAX_THINKING_TOKENS: '0' with: - timeout_minutes: '10' github_token: ${{ secrets.GITHUB_TOKEN }} use_bedrock: 'true' - anthropic_model: 'arn:aws:bedrock:us-west-2:168000258654:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0' - direct_prompt: $COMMENT_BODY diff --git a/.github/workflows/iyarc-prune.yml b/.github/workflows/iyarc-prune.yml index 651494983e..60fbd2d676 100644 --- a/.github/workflows/iyarc-prune.yml +++ b/.github/workflows/iyarc-prune.yml @@ -70,7 +70,7 @@ jobs: - name: Run Claude Code (Bedrock) id: claude - uses: anthropics/claude-code-action@459ad358ae43fea66bfefd0a1f8d840b4b9791fb # v1.0.194 + uses: anthropics/claude-code-action@8d70a0dd265122bd65b8e09d3d959e65373ae2a1 # v1.0.260 with: prompt: ${{ steps.agent.outputs.content }} use_commit_signing: 'true' @@ -79,7 +79,7 @@ jobs: use_bedrock: 'true' github_token: ${{ secrets.GITHUB_TOKEN }} env: - ANTHROPIC_MODEL: arn:aws:bedrock:us-west-2:168000258654:inference-profile/us.anthropic.claude-sonnet-5-5 + ANTHROPIC_MODEL: arn:aws:bedrock:us-west-2:168000258654:inference-profile/global.anthropic.claude-sonnet-5-5 # Bedrock: replaying a tool-call turn requires a leading thinking block; disable to avoid 400. MAX_THINKING_TOKENS: '0' AWS_REGION: us-west-2