1
0
mirror of https://github.com/j178/prek.git synced 2026-04-25 02:11:36 +02:00
Commit Graph

276 Commits

Author SHA1 Message Date
Jo 67930321fb Align shell prek-only docs note 2026-04-24 21:53:41 +08:00
Jo e875985099 Document unsupported shell languages 2026-04-24 20:31:41 +08:00
Jo 70397a4058 Validate shell support by language 2026-04-24 20:22:39 +08:00
Jo 2b5981c931 Add explicit shell execution for hook entries
Introduce a typed shell option so hooks can opt into multiline shell-source execution without changing the default direct argv behavior. Shell adapters write entry content to temporary scripts and pass hook args and filenames through shell-specific argument conventions like "".
2026-04-24 19:59:17 +08:00
Jo 58b39b29e6 Add auto-update --exit-code to exit with non-zero on updates (#2002)
## Summary

- add `prek auto-update --exit-code` to return status 1 when updates are
available
- keep `--check` as an alias for `--dry-run --exit-code`

Closes #2001
2026-04-24 14:48:17 +08:00
Jo 09f36b0550 Update project slogan (#2000)
Update the project slogan across docs, CLI, and package metadata.
2026-04-24 12:14:23 +08:00
Jo 68d94bd1ac Avoid mutable_key_type in ProjectUpdates (#1997) 2026-04-23 21:37:19 +08:00
Jo 13529d0fad Avoid cloning project in init_hooks (#1996) 2026-04-23 21:23:55 +08:00
Jo e78ee78947 Use stable repo keys without breaking cached clones (#1995)
Closes #1994
2026-04-23 21:12:23 +08:00
Jo 90b8b1b35c Skip shim warning when --script-version is missing (#1990)
For #1971
2026-04-22 17:24:53 +08:00
Jo ce79b8ca56 Make --hook-dir optional for hook-impl (#1989)
For #1971
2026-04-22 15:24:33 +08:00
Jo 6079531a5f Add auto-update --include-tag <pattern>/--exclude-tag <pattern> to filter tags (#1984)
Stacked on #1983.

Adds glob-based tag filters for `prek auto-update`:

- `--include-tag <pattern>` and `--exclude-tag <pattern>` apply to all
repositories.
- `--repo-include-tag <repo>=<pattern>` and `--repo-exclude-tag
<repo>=<pattern>` apply to a single repository.

Filters are applied before selecting the update candidate, with include
filters evaluated before exclude filters.

Closes #1972
Closes #174
2026-04-22 11:41:45 +08:00
Jo 37ef36f4a3 Add auto-update --exclude-repo <repo> to skip repos (#1983)
Adds `prek auto-update --exclude-repo <repo>` as an opt-out repository
filter.

The new flag can be repeated and is applied before repository fetches
are scheduled, so skipped repositories are not cloned or evaluated.

Closes #1972
2026-04-22 02:35:05 +08:00
Jo ba745f6f40 Prefer stable Rust toolchains (#1974)
Prefer stable Rust toolchains over newer nightly toolchains when
resolving system Rust for default requests. Nightly is still used when
it is the only matching candidate.

Closes #1970
2026-04-21 18:46:47 +08:00
Jo fba1c85b1f Keep finished hooks visible (#1967)
Closes #1953
2026-04-20 19:59:44 +08:00
Jo bce57a3415 Disallow rev for non-remote repos in schema (#1964)
Closes #1963
2026-04-20 18:34:39 +08:00
Jo afac10cf3a Split auto_update.rs into modules (#1962) 2026-04-20 17:09:35 +08:00
renovate[bot] e7c403eb46 Update dependency uv to v0.11.6 (#1954)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [uv](https://pypi.org/project/uv/)
([source](https://redirect.github.com/astral-sh/uv),
[changelog](https://redirect.github.com/astral-sh/uv/blob/main/CHANGELOG.md))
| `0.11.3` → `0.11.6` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/uv/0.11.6?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/uv/0.11.3/0.11.6?slim=true)
|

---

### Release Notes

<details>
<summary>astral-sh/uv (uv)</summary>

###
[`v0.11.6`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0116)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.11.5...0.11.6)

Released on 2026-04-09.

##### Bug fixes

- Do not remove files outside the venv on uninstall
([#&#8203;18942](https://redirect.github.com/astral-sh/uv/pull/18942))
- Validate and heal wheel `RECORD` during installation
([#&#8203;18943](https://redirect.github.com/astral-sh/uv/pull/18943))
- Avoid `uv cache clean` errors due to Win32 path normalization
([#&#8203;18856](https://redirect.github.com/astral-sh/uv/pull/18856))

###
[`v0.11.5`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0115)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.11.4...0.11.5)

Released on 2026-04-08.

##### Python

- Add CPython 3.13.13, 3.14.4, and 3.15.0a8
([#&#8203;18908](https://redirect.github.com/astral-sh/uv/pull/18908))

##### Enhancements

- Fix `build_system.requires` error message
([#&#8203;18911](https://redirect.github.com/astral-sh/uv/pull/18911))
- Remove trailing path separators in path normalization
([#&#8203;18915](https://redirect.github.com/astral-sh/uv/pull/18915))
- Improve error messages for unsupported or invalid TLS certificates
([#&#8203;18924](https://redirect.github.com/astral-sh/uv/pull/18924))

##### Preview features

- Add `exclude-newer` to `[[tool.uv.index]]`
([#&#8203;18839](https://redirect.github.com/astral-sh/uv/pull/18839))
- `uv audit`: add context/warnings for ignored vulnerabilities
([#&#8203;18905](https://redirect.github.com/astral-sh/uv/pull/18905))

##### Bug fixes

- Normalize persisted fork markers before lock equality checks
([#&#8203;18612](https://redirect.github.com/astral-sh/uv/pull/18612))
- Clear junction properly when uninstalling Python versions on Windows
([#&#8203;18815](https://redirect.github.com/astral-sh/uv/pull/18815))
- Report error cleanly instead of panicking on TLS certificate error
([#&#8203;18904](https://redirect.github.com/astral-sh/uv/pull/18904))

##### Documentation

- Remove the legacy `PIP_COMPATIBILITY.md` redirect file
([#&#8203;18928](https://redirect.github.com/astral-sh/uv/pull/18928))
- Fix `uv init example-bare --bare` examples
([#&#8203;18822](https://redirect.github.com/astral-sh/uv/pull/18822),
[#&#8203;18925](https://redirect.github.com/astral-sh/uv/pull/18925))

###
[`v0.11.4`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0114)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.11.3...0.11.4)

Released on 2026-04-07.

##### Python

- Add CPython 3.13.13, 3.14.4, and 3.15.0a8
([#&#8203;18908](https://redirect.github.com/astral-sh/uv/pull/18908))

##### Enhancements

- Add support for `--upgrade-group`
([#&#8203;18266](https://redirect.github.com/astral-sh/uv/pull/18266))
- Merge repeated archive URL hashes by version ID
([#&#8203;18841](https://redirect.github.com/astral-sh/uv/pull/18841))
- Require all direct URL hash algorithms to match
([#&#8203;18842](https://redirect.github.com/astral-sh/uv/pull/18842))

##### Bug fixes

- Avoid panics in environment finding via cycle detection
([#&#8203;18828](https://redirect.github.com/astral-sh/uv/pull/18828))
- Enforce direct URL hashes for `pyproject.toml` dependencies
([#&#8203;18786](https://redirect.github.com/astral-sh/uv/pull/18786))
- Error on `--locked` and `--frozen` when script lockfile is missing
([#&#8203;18832](https://redirect.github.com/astral-sh/uv/pull/18832))
- Fix `uv export` extra resolution for workspace member and conflicting
extras
([#&#8203;18888](https://redirect.github.com/astral-sh/uv/pull/18888))
- Include conflicts defined in virtual workspace root
([#&#8203;18886](https://redirect.github.com/astral-sh/uv/pull/18886))
- Recompute relative `exclude-newer` values during `uv tree --outdated`
([#&#8203;18899](https://redirect.github.com/astral-sh/uv/pull/18899))
- Respect `--exclude-newer` in `uv tool list --outdated`
([#&#8203;18861](https://redirect.github.com/astral-sh/uv/pull/18861))
- Sort by comparator to break specifier ties
([#&#8203;18850](https://redirect.github.com/astral-sh/uv/pull/18850))
- Store relative timestamps in tool receipts
([#&#8203;18901](https://redirect.github.com/astral-sh/uv/pull/18901))
- Track newly-activated extras when determining conflicts
([#&#8203;18852](https://redirect.github.com/astral-sh/uv/pull/18852))
- Patch `Cargo.lock` in `uv-build` source distributions
([#&#8203;18831](https://redirect.github.com/astral-sh/uv/pull/18831))

##### Documentation

- Clarify that `--exclude-newer` compares artifact upload times
([#&#8203;18830](https://redirect.github.com/astral-sh/uv/pull/18830))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/j178/prek).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-20 10:38:42 +08:00
Jo 34199b28ce Bump Rust toolchain to 1.95 and MSRV to 1.93 (#1948) 2026-04-18 16:24:39 +08:00
github-actions[bot] 0ccaa2e58a Sync latest identify tags (#1947) 2026-04-18 12:19:58 +08:00
Jo a780ba1c58 Preserve frozen comment spacing in auto-update (#1945)
Closes #1941
Closes #1944
2026-04-15 11:48:28 +08:00
Jo 173faf54c6 Hide up-to-date output in non-verbose mode (#1942)
## Summary
- hide `auto-update`'s `already up to date` output unless verbose mode
is enabled
- include the current rev in verbose `already up to date` messages
2026-04-14 16:55:44 +08:00
Jo 393d0ad41d Improve merge conflict marker detection (#1937)
## Summary

- make `check-merge-conflict` detect conflict blocks contextually
instead of flagging any bare `=======`
- add support for diff3 ancestor markers (`|||||||`)

Closes #1924 
Closes #1523
2026-04-14 10:59:51 +08:00
Jo 3a9b9fe4ac Ensure quotes are added for non-string revisions in auto-update (#1936)
Closes #1935

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-13 20:14:43 +08:00
Sadjow Leão dc98c4792d Honor repo and worktree core.hooksPath (#1892)
## Summary

This takes a smaller approach than #1673.

Instead of mutating Git config during install, it lets `prek` ask Git
for the effective hooks directory and:

- honors repo-local (`git config --local`) `core.hooksPath`
- honors worktree-local (`git config --worktree`) `core.hooksPath`
- continues to refuse global/system `core.hooksPath` by default
- aligns `prek uninstall` with the same behavior
- updates the CLI reference and FAQ to document the behavior

This keeps the existing safety boundary for externally configured hook
locations while making linked worktrees and repo-owned hook directories
work without extra wrapper logic.

## Testing

- `cargo test -p prek --test install`
- `PREK_GENERATE=1 cargo test --bin prek
cli::_gen::generate_cli_reference -- --exact`

## Context

Closes #1672
Closes #1673

---------

Co-authored-by: Jo <10510431+j178@users.noreply.github.com>
2026-04-13 17:11:44 +08:00
Jo 08c1f706ce Remove bracket from auto-update project header (#1933) 2026-04-13 12:45:14 +08:00
renovate[bot] f0bf283baf Update dependency uv to v0.11.3 (#1928)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [uv](https://pypi.org/project/uv/)
([source](https://redirect.github.com/astral-sh/uv),
[changelog](https://redirect.github.com/astral-sh/uv/blob/main/CHANGELOG.md))
| `0.11.2` → `0.11.3` |
![age](https://developer.mend.io/api/mc/badges/age/pypi/uv/0.11.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/uv/0.11.2/0.11.3?slim=true)
|

---

### Release Notes

<details>
<summary>astral-sh/uv (uv)</summary>

###
[`v0.11.3`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0113)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.11.2...0.11.3)

Released on 2026-04-01.

##### Enhancements

- Add progress bar for hashing phase in uv publish
([#&#8203;18752](https://redirect.github.com/astral-sh/uv/pull/18752))
- Add support for ROCm 7.2
([#&#8203;18730](https://redirect.github.com/astral-sh/uv/pull/18730))
- Emit abi3t tags for every abi3 version
([#&#8203;18777](https://redirect.github.com/astral-sh/uv/pull/18777))
- Expand `uv workspace metadata` with dependency information from the
lock
([#&#8203;18356](https://redirect.github.com/astral-sh/uv/pull/18356))
- Implement support for PEP 803
([#&#8203;18767](https://redirect.github.com/astral-sh/uv/pull/18767))
- Pretty-print platform in built wheel errors
([#&#8203;18738](https://redirect.github.com/astral-sh/uv/pull/18738))
- Publish installers to `/installers/uv/latest` on the mirror
([#&#8203;18725](https://redirect.github.com/astral-sh/uv/pull/18725))
- Show free-threaded Python in built-wheel errors
([#&#8203;18740](https://redirect.github.com/astral-sh/uv/pull/18740))

##### Preview features

- Add `--ignore` and `--ignore-until-fixed` to `uv audit`
([#&#8203;18737](https://redirect.github.com/astral-sh/uv/pull/18737))

##### Bug fixes

- Bump simple API cache
([#&#8203;18797](https://redirect.github.com/astral-sh/uv/pull/18797))
- Don't drop `blake2b` hashes
([#&#8203;18794](https://redirect.github.com/astral-sh/uv/pull/18794))
- Handle broken range request implementations
([#&#8203;18780](https://redirect.github.com/astral-sh/uv/pull/18780))
- Remove `powerpc64-unknown-linux-gnu` from release build targets
([#&#8203;18800](https://redirect.github.com/astral-sh/uv/pull/18800))
- Respect dependency metadata overrides in `uv pip check`
([#&#8203;18742](https://redirect.github.com/astral-sh/uv/pull/18742))
- Support debug CPython ABI tags in environment compatibility
([#&#8203;18739](https://redirect.github.com/astral-sh/uv/pull/18739))

##### Documentation

- Document `false` opt-out for `exclude-newer-package`
([#&#8203;18768](https://redirect.github.com/astral-sh/uv/pull/18768),
[#&#8203;18803](https://redirect.github.com/astral-sh/uv/pull/18803))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/j178/prek).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 10:45:09 +08:00
Jo 059f2728eb Display auto-update results by config entry (#1922) 2026-04-12 15:30:45 +08:00
Jo 7899b900cf Handle --no-lazy-fetch not available 2026-04-11 22:50:35 +08:00
Jo ff0769a7cc Handle impostor commits in auto-update 2026-04-11 22:50:35 +08:00
Jo f2cc974972 Show tag names in auto-update --freeze output (#1916)
Closes #1854 
Closes #1855
2026-04-08 17:08:53 +08:00
Jo 90046cee4f Check and sync frozen comments during auto-update (#1896)
## Summary

`auto-update` now validates existing `# frozen:` comments against the
commit pinned in `rev`.

If the frozen comment is stale:
- in normal update mode, `auto-update` updates it to a matching ref when
possible, or removes it if no ref points to the pinned commit
- in `--dry-run`, it only reports the mismatch and does not modify the
config file
- in `--check`, it behaves like `--dry-run` and exits with status 1 if
updates would be made

This keeps frozen comments consistent with pinned SHA revisions without
adding a separate command.

## Example
```console
❯ cargo run -- auto-update --check                                                                                                                                                                                                                                                                                        
warning: [https://github.com/crate-ci/typos] frozen ref `v1.0` does not match `1111111111111111111111111111111111111111`
  --> .pre-commit-config.yaml:18:63
   |
18 |     rev: '1111111111111111111111111111111111111111' # frozen: v1.0
   |                                                               ^^^^ `v1.0` could not be resolved
   |
   = note: pinned commit `1111111111111111111111111111111111111111` does not exist in the repo
```
Closes #1864
2026-04-08 16:24:56 +08:00
renovate[bot] 8b7451ff5f Update dependency uv to v0.11.2 2026-04-06 20:14:40 +08:00
Jo 184f0a506e Update prek slogon (#1900) 2026-04-06 18:16:14 +08:00
Jo 143bfe10b8 Disable ANSI sanitization in tracing log (#1888) 2026-04-02 14:01:24 +08:00
renovate[bot] 33a0ce727b Update dependency uv to v0.11.1 2026-04-02 09:05:18 +08:00
Jo dd2ab401c7 Canonicalize CWD and GIT_ROOT paths (#1878)
Closes #1850 
Closes #1875
2026-04-01 17:31:46 +08:00
Jo 0b6df1ff83 Clean stale patch files in cache gc (#1877)
Clean stale `*.patch` files during `prek cache gc`

Closes #1635
2026-04-01 16:22:37 +08:00
Jo f5f6682fd3 Restrict patch directory permissions (#1876)
For #1635
2026-04-01 16:02:40 +08:00
Jo 434db54b59 Refine dotnet SDK version handling and tests (#1870) 2026-03-30 22:41:07 +08:00
Thomas Carroll 5c426d2c74 Add language: dotnet support (#1783)
Hi, I thought I'd give a stab at dotnet support for prek. Not really an
amazing language for how it manages tools & its toolchain, so perhaps
some nastiness. Seems to work for `csharpier` at least for me.

There's some missing tests around the windows part of the code in the
coverage but I didn't want to get into messing with CI for windows
runners, maybe we can drop the powershell stuff if we make windows
people run in a bash type environment?

Not very versed in rust but hoping that even if stuff's bad there's a
bit of a start for someone better than I to have a stab at.

closes #48

---------

Co-authored-by: Thomas Carroll <thomas.carroll@kroll.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-30 22:41:07 +08:00
Jo 8a404671b6 Fix ruby auto_download test (#1872) 2026-03-30 22:25:08 +08:00
RicardoVercetti b13d37887b Add forbid-new-submodules as builtin hook (#1853)
for #1849

## Summary:
- Added the pre-commit `forbid_new_submodule` hook

## Usage:

```yaml
repos:
  - repo: builtin
    hooks:
      - id: forbid-new-submodules
```

---------

Co-authored-by: Jehoniah <aaram@appliedpaymentstech.com>
Co-authored-by: Jo <10510431+j178@users.noreply.github.com>
2026-03-25 17:59:39 +08:00
Jo 0b3df461cf Use a bitset for hook stages (#1860) 2026-03-24 19:36:31 +08:00
Jo bf09a45e64 Add prek run --no-fail-fast to override config file (#1859) 2026-03-24 17:57:22 +08:00
Jo 00e7be732e Clarify why check-illegal-windows-names stays builtin-only (#1857) 2026-03-23 15:27:52 +08:00
Felix Blom ba62c04078 Add pretty_format_json as builtin hook (#915)
## Description

Following the information provided in
[880](https://github.com/j178/prek/issues/880). This is an
implementation of the `pretty-format-json` hook.

The
[pretty-format-json](https://grep.app/search?f.path.pattern=.pre-commit-config.yaml&q=pretty-format-json)
has 1k grep.app hits. It's the final unimplemented hook used by
`airflow` as mentioned in [this
comment](https://github.com/j178/prek/issues/880#issuecomment-3405716137).

----

##  Notes

- **Preserve JSON Order**  
- Added the `preserve_order` feature to `serde_json`. This prevents
`serde` from automatically ordering JSON data, which is important for
comparisons with older implementations.
  - This change does not appear to affect other tests/features.  
- By default, `serde` uses a `BTreeMap` for `Object`. Enabling
`preserve_order` switches it to `IndexMap`.
  - This keeps the sorting logic within the `sort-keys` argument.

- **Git-Style Diff with `similar`**  
  - Added the `similar` library to perform git-style diff checks.  
  - Binary size increase is minimal.  
- Useful as a general utility and could be leveraged in other parts of
the project, maybe needed to be relocated?
- Added color highlighting to the diffs, improving readability compared
to original `pre-commit`.


```bash
cargo clean
cargo build --release 
```
- Master branch:  **8.49 MB**
- Feature branch: **8.55 MB**
- **+66,176 bytes** (**+0.74%**) increase from master to feature branch

_Q: why is my size so much smaller than both sizes mentioned
[here](https://github.com/j178/prek/pull/884#issuecomment-3406885242)?_

-----

### Performance

Ran these commands on the `airflow` repository:
```bash
# old
pre-commit run pretty-format-json --all-files --verbose
Format JSON files........................................................Passed
- hook id: pretty-format-json
- duration: 0.03s

# Old prek implementation (python)
prek run pretty-format-json --all-files --verbose
Format JSON files........................................................Passed
- hook id: pretty-format-json
- duration: 0.03s

# New implementation (rust)
prek run pretty-format-json --all-files --verbose
Format JSON files........................................................Passed
- hook id: pretty-format-json
- duration: 0.00s
```

## Output
Old pre-commit:
<img width="601" height="376" alt="image"
src="https://github.com/user-attachments/assets/f0553015-24cf-4d23-98e8-2759f912c9b3"
/>

New:
<img width="707" height="430" alt="image"
src="https://github.com/user-attachments/assets/fa7ce303-caa9-4139-9e77-6e58db5f0725"
/>

Where both would autofix to the same:
<img width="349" height="304" alt="image"
src="https://github.com/user-attachments/assets/67baf526-787b-4aa6-a0fe-7859a2a5fb8b"
/>

---------

Co-authored-by: Felix Blom <70511386+Felix-Blom@users.noreply.github.com>
Co-authored-by: Jo <10510431+j178@users.noreply.github.com>
2026-03-23 14:58:11 +08:00
Jo dbca90453a Fix workspace-relative added file paths (#1852)
Fix workspace relative path for `check-case-conflict` and
`check-added-large-files`

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-22 21:50:53 +08:00
Jo 24f2d627bf Add destroyed-symlinks builtin hook (#1851)
Closes #1848

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-22 21:19:50 +08:00
Jo fc529df132 Add check-shebang-scripts-are-executable builtin hook (#1847) 2026-03-22 00:59:38 +08:00