Skip to content

Claude Code

Claude Code #644

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]
jobs:
check-team-member:
runs-on: ubuntu-latest
outputs:
is-team-member: ${{ steps.check.outputs.is-member }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 1
- name: Check if actor is team member
id: check
run: |
ACTOR="${{ github.actor }}"
if grep -q "@${ACTOR}" .github/teams.yml; then
echo "is-member=true" >> $GITHUB_OUTPUT
echo "✅ $ACTOR is a team member"
else
echo "is-member=false" >> $GITHUB_OUTPUT
echo "❌ $ACTOR is not a team member"
fi
claude:
needs: check-team-member
if: |
needs.check-team-member.outputs.is-team-member == 'true' &&
github.actor != 'github-actions[bot]' &&
(
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '/claude') && !contains(github.event.comment.body, '/claude /full-review')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '/claude') && !contains(github.event.comment.body, '/claude /full-review')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '/claude') && !contains(github.event.review.body, '/claude /full-review')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '/claude') || contains(github.event.issue.title, '/claude')))
)
runs-on: ubuntu-latest
timeout-minutes: 10
concurrency:
group: claude-${{ github.event.issue.number || github.event.pull_request.number || github.event.comment.id }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
track_progress: true
# 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: --allowed-tools "mcp__github_inline_comment__create_inline_comment,Bash(gh
issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh
pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*),Bash(bash scripts/format.sh:*)"