Commit Graph

103 Commits

Author SHA1 Message Date
Kazuki Yamada df881a7c57 fix(ci): Address PR review feedback
- Migrate the build-and-run job in ci.yml to `node --run build --
  --sourceMap --declaration` so the inline command matches the
  `node --run` style of the test job (claude review round 2 #1)
- Update the hi github-actions.md matrix example from `[22, 24]` to
  `[22, 24, 26]` so the doc mirrors the project's actual CI matrix
  (gemini-code-assist / coderabbitai inline comment)
- Bump the stale "(Node 20+)" baseline in reviewer-performance.md to
  "(Node 22+)" to track the new engines floor (claude review round 2
  minor)
2026-05-09 19:48:15 +09:00
Kazuki Yamada 042750cb4e chore(ci): Replace npm run with node --run in workflows
Now that the minimum supported Node.js version is 22, `node --run` is
available everywhere. It avoids the npm process-spawn overhead and
matches the style already used in package.json scripts.

Affects all GitHub Actions workflows that invoke npm scripts and the
website/server Dockerfile bundle step. `npm ci` is left as-is since it
is npm-specific.
2026-05-09 19:08:10 +09:00
Kazuki Yamada 9caf541368 chore(deps): Drop Node.js 20, add Node.js 26 support
Node.js 20 reaches end-of-life on 2026-04-30, so raise the minimum
supported version to 22 (the next active LTS) and add Node.js 26 to the
CI matrix as the current release line.

- Bump engines.node to >=22.0.0 in package.json and scripts/memory
- Update CI matrix to [22.x, 24.x, 26.x] (drop 20.x and 25.x; 25.x EOL 2026-06)
- Update test-action.yml matrix to [22, 24, 26]
- Drop the obsolete `node --run` workaround comment in ci.yml since
  `node --run` is supported on all matrix versions
- Update Node.js version mentions in English docs, llms-install.md,
  configShard, bug report template, and code samples in hi/vi
  github-actions guides

Dockerfile (node:22-slim) is intentionally left at the minimum supported
version so the published image confirms Repomix runs on the floor.
2026-05-09 18:49:37 +09:00
renovate[bot] 4482299cf7 chore(deps): update codecov/codecov-action action to v6 2026-04-18 05:41:17 +00:00
Kazuki Yamada 7116490789 ci: Enable Codecov Test Analytics and update badge token
Add JUnit XML reporting to the test-coverage job and upload results
via codecov/test-results-action. This enables Test Analytics features
(test run times, failure rates, flaky test detection, and PR comments
with failed test summaries).

Also update the README Codecov badge URL to include the graph token,
following Codecov's new recommended badge format.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 19:38:21 +09:00
Kazuki Yamada e8a1ce2c4f chore(ci): Split monolithic ci.yml into separate workflow files
Split the CI workflow into focused files with appropriate path filters:
- ci.yml: Core lint, test, and build (paths-ignore website/, browser/)
- ci-website.yml: Website client/server lint and bundle (paths: website/**)
- ci-browser.yml: Browser extension lint and test (paths: browser/**)
- ci-quality.yml: actionlint, zizmor, typos (broad paths-ignore)

This reduces unnecessary job execution by ~40 jobs when only a subset
of the codebase changes, and improves workflow readability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 22:33:19 +09:00
Kazuki Yamada 02a9368d3c chore(ci): Add path-based filtering to workflow triggers
Skip unnecessary CI runs when only documentation or unrelated files
change. Benchmarks, schema generation, CodeQL, and Docker builds now
trigger only on source code changes. CI, autofix, and pack-repository
use paths-ignore to skip docs-only changes. Docker workflow push/PR
path filters are unified.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 22:04:12 +09:00
renovate[bot] fcd8df2e81 chore(deps): update codecov/codecov-action action to v5.5.4 2026-04-04 05:08:33 +00:00
renovate[bot] e067d4ac32 chore(deps): update oven-sh/setup-bun action to v2.2.0 2026-03-28 05:29:43 +00:00
renovate[bot] e9c054020e chore(deps): update codecov/codecov-action action to v5.5.3 2026-03-28 02:12:03 +00:00
Kazuki Yamada 71581c13cd fix(core): Change prepack to prepare and use npm prune for dev deps removal
prepack does not reliably run when installing repomix as a git dependency,
causing the server Docker build to fail (lib/ directory missing).
Change to prepare which reliably runs for git dependency installation.

Also change npm ci --omit=dev to npm prune --omit=dev in Dockerfile and CI,
since npm prune does not trigger lifecycle scripts (avoiding prepare failure
when devDependencies are no longer available).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:34:22 +09:00
Kazuki Yamada bf93a13d2c Merge pull request #1265 from yamadashy/renovate/crate-ci-typos-1.x
chore(deps): update crate-ci/typos action to v1.44.0
2026-03-21 14:59:24 +09:00
renovate[bot] e9a8f736c5 chore(deps): update crate-ci/typos action to v1.44.0 2026-03-21 05:00:25 +00:00
renovate[bot] d79d841a55 chore(deps): update actions/setup-node action to v6.3.0 2026-03-21 04:54:04 +00:00
Kazuki Yamada 5ff6e8aec2 Merge pull request #1261 from yamadashy/renovate/zizmorcore-zizmor-action-0.x
chore(deps): update zizmorcore/zizmor-action action to v0.5.2
2026-03-21 12:57:26 +09:00
renovate[bot] 801343a9f6 chore(deps): update zizmorcore/zizmor-action action to v0.5.2 2026-03-21 03:56:18 +00:00
renovate[bot] b4209102fd chore(deps): update oven-sh/setup-bun action to v2.1.3 2026-03-21 02:51:21 +00:00
Claude 3e00d3f9e4 refactor(docker): Replace npm prune --omit=dev with npm ci --omit=dev
Now that `prepare` has been replaced with `prepack` (which only runs on
npm pack/publish), `npm ci --omit=dev` no longer triggers an unwanted
build. This allows a cleaner approach: install all deps, build, then
reinstall with only production dependencies via `npm ci --omit=dev`.

https://claude.ai/code/session_01WorTDgSv8c9jvVpa1YsSeo
2026-03-10 13:54:02 +00:00
yamadashy 749392cf2c fix(docker): Replace deprecated --production flag with --omit=dev
npm 10.x (shipped with Node 22) deprecates the --production flag.
Use --omit=dev instead for both Dockerfile and CI workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:25:02 +09:00
yamadashy 7c373e8855 refactor(ci): Use npm prune instead of npm ci for devDeps removal
Same change as Dockerfile — replace `npm ci --omit=dev --ignore-scripts`
with `npm prune --production` for consistency and efficiency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:22:52 +09:00
yamadashy ba16033f24 ci(workflow): Harden GitHub Actions security across all workflows
Fix all findings from actionlint and zizmor security linters:
- Add persist-credentials: false to all checkout steps across 14 workflows
- Fix template injection in repomix action by using env vars instead of ${{ inputs.* }}
- Pin Homebrew actions to SHA (50b8c2ab) instead of @main tag
- Add zizmor config to ignore artipacked for schema-update.yml (needs credentials for push)
- Add zizmor linter job and config path to ci.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:56:55 +09:00
yamadashy d2a4b90770 ci(workflow): Add zizmor security linter and rename actionlint job
- Rename lint-action to lint-actionlint for consistency
- Add lint-zizmor job using zizmorcore/zizmor-action (SHA-pinned)
- Add timeout-minutes to both jobs
- zizmor provides security-focused static analysis for GitHub Actions
  workflows, detecting issues like pull_request_target misuse,
  expression injection, and overly permissive permissions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:38:34 +09:00
yamadashy b9b2834449 fix(ci): Harden workflow permissions and restrict Claude trigger access
Add author_association check (OWNER/MEMBER/COLLABORATOR) to claude.yml
to prevent external users from triggering Claude via @claude mentions
in comments and issues. This mitigates prompt injection attack vectors
similar to the hackerbot-claw campaign targeting GitHub Actions.

Add explicit `permissions: contents: read` to ci.yml, benchmark.yml,
pack-repository.yml, and test-action.yml which previously relied on
default permissions, ensuring least-privilege principle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 02:16:15 +09:00
renovate[bot] 43c6f51a43 chore(deps): update rhysd/actionlint action to v1.7.11 2026-02-28 12:59:15 +00:00
Kazuki Yamada ef54f4aeee Merge pull request #1139 from yamadashy/renovate/oven-sh-setup-bun-2.x
chore(deps): update oven-sh/setup-bun action to v2.1.2
2026-02-07 23:11:43 +09:00
renovate[bot] ef02f53d6d chore(deps): update oven-sh/setup-bun action to v2.1.2 2026-02-07 05:55:26 +00:00
renovate[bot] fe25823259 chore(deps): update crate-ci/typos action to v1.42.3 2026-02-07 00:34:03 +00:00
renovate[bot] 6abd2c6234 chore(deps): update crate-ci/typos action to v1.42.1 2026-01-31 05:10:46 +00:00
renovate[bot] c96b1e39a2 chore(deps): update actions/checkout action to v6.0.2 2026-01-24 02:11:18 +00:00
renovate[bot] bb52368dd7 chore(deps): update oven-sh/setup-bun action to v2.1.0 2026-01-17 08:44:59 +00:00
renovate[bot] 2ebcf1a381 chore(deps): update crate-ci/typos action to v1.42.0 2026-01-17 05:01:36 +00:00
renovate[bot] 195821cf5d chore(deps): update rhysd/actionlint action to v1.7.10 2026-01-11 22:58:19 +09:00
Kazuki Yamada bf2d1141df ci(website-server): Add bundle check workflow
Add CI job to verify website server bundling works correctly.
This ensures the Rolldown + SWC bundle process doesn't break on PRs.
2026-01-04 12:39:54 +09:00
Kazuki Yamada 87b2918466 fix(ci): Use npm link for website server lint
Build and link local repomix package before running website server lint.
This ensures the latest exports are available during type checking.
2026-01-01 00:55:08 +09:00
Kazuki Yamada 5e194e10b2 fix(ci): Skip scripts when installing production dependencies
Add --ignore-scripts to npm ci --omit=dev to prevent prepare script
from running, which would fail due to missing devDependencies (rimraf).
2025-12-31 18:34:08 +09:00
renovate[bot] aa5ae37ae8 fix(deps): update all non-major dependencies 2025-12-30 13:52:35 +00:00
renovate[bot] 5ec8909e9a chore(deps): update actions/upload-artifact action to v6 2025-12-20 01:05:18 +00:00
renovate[bot] 805d427e47 fix(deps): update all non-major dependencies 2025-12-13 05:50:40 +00:00
renovate[bot] 92ef98329d fix(deps): update all non-major dependencies 2025-12-03 15:16:23 +00:00
renovate[bot] 056bfbdbbc chore(deps): update actions/checkout action to v6 2025-12-01 01:12:44 +00:00
renovate[bot] e5b5a204d4 fix(deps): update all non-major dependencies 2025-11-27 10:16:30 +00:00
renovate[bot] 18ef52acc1 fix(deps): update all non-major dependencies 2025-11-11 13:38:56 +00:00
Kazuki Yamada d600b81771 chore(ci): Add Node.js 25 to test matrix
Added Node.js 25.x to the CI test matrix to ensure compatibility with the latest Node.js version.

This change updates both the `test` and `build-and-run` jobs to include Node.js 25.x alongside the existing versions (20.x, 22.x, 24.x).
Each job will now run across 12 combinations (3 OS × 4 Node.js versions).
2025-11-08 21:31:53 +09:00
renovate[bot] f8a8e86982 chore(deps): update actions/upload-artifact action to v5 2025-11-03 01:42:34 +00:00
renovate[bot] 164b547c91 chore(deps): update actions/setup-node action to v6 2025-10-27 02:55:14 +00:00
renovate[bot] e1a8c6c4e2 fix(deps): update all non-major dependencies 2025-10-20 13:33:05 +00:00
renovate[bot] 1f9f243a75 fix(deps): update all non-major dependencies 2025-10-13 08:58:25 +00:00
renovate[bot] 372c8d7f00 fix(deps): update all non-major dependencies 2025-10-08 07:53:07 +00:00
Kazuki Yamada 066087ee40 chore(ci): update actions/setup-node to v5.0.0
Updated actions/setup-node from v4.4.0 to v5.0.0 across workflow files as part of the pinact migration for GitHub Actions SHA pinning.
2025-09-23 23:21:03 +09:00
Kazuki Yamada cd185a1ea3 chore(ci): replace ratchet with pinact for GitHub Actions SHA pinning
This replaces the ratchet tool with pinact for managing GitHub Actions SHA pinning across all workflow files. The changes include:

- Remove ratchet-update.yml and ratchet-verify.yml workflows
- Add new pinact.yml workflow for automated SHA pinning
- Update all workflow files to use pinact-style comments (# v1.2.3 instead of # ratchet:action@v1)
- Add .pinact.yaml configuration file with ignore rules for Homebrew actions and local actions
- Update package.json scripts to use pinact commands instead of ratchet

Pinact provides more reliable SHA pinning with better GitHub Actions integration.
2025-09-23 23:18:06 +09:00