Skip to content

Conversation

@matanshavit
Copy link

@matanshavit matanshavit commented Oct 29, 2025

Implements Bun as a new language option for pre-commit hooks, enabling hooks to run using the Bun JavaScript runtime and package manager.

  • Add bun.py language implementation with binary download/install
  • Support system-installed Bun or automatic version download
  • Add comprehensive tests including version handling and hook execution
  • Register bun in all_languages.py
  • Include test repository fixture for integration tests

Addresses #3089

Implements Bun as a new language option for pre-commit hooks, enabling
hooks to run using the Bun JavaScript runtime and package manager.

- Add bun.py language implementation with binary download/install
- Support system-installed Bun or automatic version download
- Add comprehensive tests including version handling and hook execution
- Register bun in all_languages.py
- Include test repository fixture for integration tests
Adds the oven-sh/setup-bun@v2 action to install Bun when running
language tests for the Bun language support added previously.
Add comprehensive unit tests to cover all code paths in the Bun
language implementation:

- Platform detection tests for darwin, linux, windows, and unsupported
  platforms
- Version normalization tests for all format variations (default,
  plain numbers, v-prefix, bun-v-prefix)
- HTTP error handling tests for 404 and other error codes
- Binary extraction edge case tests for missing directories and
  missing executables
- System version installation path test to verify binary download
  is skipped when using system bun

Coverage increased from 87% to 100% with no lines or branches missing.
All tests use mocks to avoid requiring network calls or platform-specific
behavior, ensuring fast and reliable test execution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants