Skip to content

Feat/s3 large comments #6786

Feat/s3 large comments

Feat/s3 large comments #6786

Workflow file for this run

name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
# Queue rather than cancel: cancelling mid-run leaves a half-applied edit on the branch.
# `queue: max` keeps every pending request; the default (`single`) would cancel an
# already-pending run when a second @claude comment arrives, silently dropping it.
concurrency:
group: claude-${{ github.event.issue.number || github.event.pull_request.number }}
cancel-in-progress: false
queue: max
jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: "Install Node"
uses: actions/setup-node@v6
with:
node-version-file: front_end/.nvmrc
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v5
with:
path: front_end/node_modules
key: node-modules-${{ runner.os }}-${{ hashFiles('front_end/bun.lock', 'front_end/.nvmrc', 'front_end/package.json') }}
- name: "Install node_modules"
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: cd front_end && bun ci
# Backend toolchain, so Claude can run the ruff format/check steps CLAUDE.md
# requires after editing Python. Keep the uv version in sync with unit_tests.yml.
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: "0.11.x"
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: "Install Python dependencies"
run: uv sync --frozen
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
use_commit_signing: true
branch_name_template: '{{prefix}}{{entityType}}-{{entityNumber}}-{{description}}'
# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'
# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.claude.com/en/docs/claude-code/cli-reference for available options
claude_args: |
--model claude-opus-5
--allowedTools "Bash(bun ci:*),Bash(bun install:*),Bash(bun run:*),Bash(bun x:*),Bash(cd:*),Bash(uv run ruff format:*),Bash(uv run ruff check:*),Bash(uv run pytest:*),Bash(git fetch:*),Bash(git remote set-branches:*),Bash(git log:*),Bash(git blame:*),Bash(git diff:*),Bash(git show:*)"