mirror of
https://github.com/ivuorinen/f2b.git
synced 2026-03-07 08:58:03 +00:00
* fix: repair Renovate config and convert Makefile to go run (#117) - Remove non-existent `github>renovatebot/presets:golang` preset that broke Renovate PR creation - Replace deprecated `fileMatch` with `managerFilePatterns` in customManagers - Rewrite regex to match new Makefile pattern (renovate comment above version variable assignment) - Fix `matchFileNames` glob pattern (`*.mk` -> `**/*.mk`) - Convert all tool invocations from `go install` + global binary to `go run tool@version` for reproducible builds - Convert npm global tools to `npx --yes` invocations - Remove `dev-deps` and `check-deps` targets (tools auto-download) - Add mdformat pre-commit hook with GFM support and config - Add `fmt-md` Makefile target for manual markdown formatting - Update local golangci-lint pre-commit hook to use `go run` - Apply golangci-lint v2.10.1 auto-fixes (fmt.Fprintf optimization) - Add nolint:gosec annotations for legitimate exec.Command usage - Exclude .serena/ from mdformat and megalinter - Add markdown indent_size=unset in .editorconfig for CommonMark compat * chore(deps): update GitHub Actions to latest versions - anthropics/claude-code-action: v1.0.34 -> v1.0.64 - actions/setup-go: v6.2.0 -> v6.3.0 - actions/upload-artifact: v6.0.0 -> v7.0.0 - goreleaser/goreleaser-action: v6.4.0 -> v7.0.0 - docker/login-action: v3.6.0 -> v3.7.0 - ivuorinen/actions: v2026.01.21 -> v2026.02.24 * fix: address code review feedback - Fix issue template YAML frontmatter (replace underscore separators with proper --- delimiters); exclude templates from mdformat - Replace string(rune(n)) with strconv.Itoa(n) in test files to produce deterministic numeric directory names instead of Unicode characters - Remove stale `make dev-deps` reference in README, replace with `make dev-setup` - Extract ban/unban format strings into shared.MetricsFmtBanOperations and shared.MetricsFmtUnbanOperations constants - Replace hardcoded coverage percentages in README with evergreen phrasing * fix: address round 2 code review feedback for PR #120 - Fix corrupted path traversal example in docs/security.md - Fix Renovate .mk regex to match nested paths (.*\.mk$) - Update checkmake pre-commit hook to v0.3.2 to match Makefile - Add sync.WaitGroup to unsynchronized goroutines in security tests - Fix fmt-md target to use pre-commit run mdformat - Pin markdownlint-cli2 to v0.21.0 in lint-md target - Standardize //nolint:gosec to // #nosec annotations for gosec CLI * fix(ci): install PyYAML dependency for PR lint workflow The pr-lint workflow uses ivuorinen/actions/pr-lint which internally calls validate-inputs running a Python script that imports yaml. Python was set up but PyYAML was never installed, causing ModuleNotFoundError at runtime. * fix: address round 3 code review feedback for PR #120 - Wrap Windows-style path traversal example in backtick code span so backslashes render literally in docs/security.md - Add Renovate-managed MARKDOWNLINT_CLI2_VERSION variable in Makefile to match the pattern used by all other tool versions
89 lines
3.2 KiB
YAML
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@ba7fa4bcf054319261202aef93d71a89112a8d00 # v1.0.64
|
|
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
|