Files
f2b/.github/workflows/claude.yml
Ismo Vuorinen 649727b91f chore(deps): update workflows, pre-commit repos (#46)
* chore(deps): update pre-commit and gh workflows

* chore(lint): pre-commit editorconfig-checker repo

* fix(deps): use correct checkmake repo
2025-08-14 15:05:50 +03:00

89 lines
3.2 KiB
YAML

---
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
permissions: read-all
jobs:
claude:
if: |
(
(github.event_name == 'issue_comment'
&& contains(github.event.comment.body, '@claude')
&& contains('OWNER,MEMBER,COLLABORATOR', github.event.comment.author_association)
) ||
(github.event_name == 'pull_request_review_comment'
&& contains(github.event.comment.body, '@claude')
&& contains('OWNER,MEMBER,COLLABORATOR', github.event.comment.author_association)
) ||
(github.event_name == 'pull_request_review'
&& contains(github.event.review.body, '@claude')
&& contains('OWNER,MEMBER,COLLABORATOR', github.event.review.author_association)
) ||
(github.event_name == 'issues'
&& (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))
&& contains('OWNER,MEMBER,COLLABORATOR', github.event.issue.author_association)
)
)
runs-on: ubuntu-latest
concurrency:
group: claude-${{ github.event.pull_request.number || github.event.issue.number || github.run_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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
# kics-scan ignore-line
uses: anthropics/claude-code-action@beta
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# This is an optional setting that allows Claude to read CI results on PRs
# (Already has the permission for the current scope)
# additional_permissions: |
# actions: read
# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"
# Optional: Customize the trigger phrase (default: @claude)
# trigger_phrase: "/claude"
# Optional: Trigger when specific user is assigned to an issue
# assignee_trigger: "claude-bot"
# Optional: Allow Claude to run specific commands
# allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"
# Optional: Add custom instructions for Claude to customize its behavior for your project
custom_instructions: |
Follow our coding standards and best practices
Ensure all new code has tests
Follow linting rules religiously
Use linting tools described in the project to check code you are about to commit
All linting errors should be considered blocking
Don't try to be smart, the code you write should be simple and understandable
# Optional: Custom environment variables for Claude
# claude_env: |
# NODE_ENV: test