Files
f2b/.github/workflows/claude.yml
Ismo Vuorinen a668c4563e chore(deps): update github actions and pre-commit hooks (#118)
* chore(deps): update github actions and pre-commit hooks

* chore(pre-commit): replace dnephin/pre-commit-golang with local hook

The dnephin/pre-commit-golang repository has been sunset. Replace it
with a local hook that runs golangci-lint directly using the system
language. This removes the external dependency while maintaining
identical linting behavior via .golangci.yml configuration.

* fix: golangci-lint installation

* chore: update actions, update golangci in makefile

* chore: add goenv bin to path

* chore: tweaks to lint tool installation

* chore: actually modify pr-lint action

* fix(ci): tweaks to linting, permissions

* chore(ci): align golangci-lint version to v2.7.2

* chore(ci): update github actions to latest versions

* fix(ci): add install-mode for golangci-lint v2.7.2

* fix(security): use go install for golangci-lint
2026-01-24 22:05:00 +02: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:
contents: read
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@f64219702d7454cf29fe32a74104be6ed43dc637 # v1.0.34
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