Skip to content

feat(self-hosted-runner): revamp self-hosted-runner audit - #2350

Merged
woodruffw merged 7 commits into
zizmorcore:mainfrom
ubiratansoares:u/feat-improve-self-hosted-audit
Sep 11, 2026
Merged

woodruffw merged 7 commits into
zizmorcore:mainfrom
ubiratansoares:u/feat-improve-self-hosted-audit

Conversation

@ubiratansoares

@ubiratansoares ubiratansoares commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Pre-submission checks

Please check these boxes:

  • Mandatory: This PR corresponds to an issue (if not, please create
    one first).

  • Having read the AI policy, I hereby disclose the use of an LLM or other
    AI coding assistant in the creation of this PR. PRs will not be rejected
    for using AI tools, but will be rejected for undisclosed use or
    use that violates the policy.

AI disclosure

I wrote the code 100% by hand, but I did use Claude Opus to asking questions about the codebase and performing paired code reviews when creating this PR. I incorporated some of the suggestion I got from it.

Summary

This PR relates the following issues

and eventually superseeds #2140

It introduces a brand new internal modelling for Github Actions Runners, which improves the precison and capabilities of the self-hosted-runner audit. Amongst other things:

  • we can now configure the self-hosted-runner audit and precisely catch any runner labels the user wants to flag as self-hosted without a sentinel label (e.g. those deployed with new ARC)
  • the same mechanism can flag also runner groups the user wants to flag as related to Github Large Runners
  • we better handle expressions when runs-on points to them, either directly or within a matrix
  • we introduce a static list of well-known Github standard runners, including some of the recently deprecated ones. This helps preventing some false positives
  • we have a mechanism to flag with decent precision third-party runners, although we don't use it in any audit right now

Main differences compared with #2140

Last, but not least, we also update JsonSchema for zizmor audit rules, reflecting the new option we have.

Test Plan

We introduce some new scenarios in integration tests, especially those related to expressions. We also have an integration test covering the audit config. The focus was avoid regressions with the existing tests.

In addition, there is a new test checking that third-party runners won't be flagged as self hosted.

Eventually there is room to add unit tests for workflow/runners.rs module.

@woodruffw

Copy link
Copy Markdown
Member

Thank you @ubiratansoares! I'll try and review this today.

@woodruffw woodruffw left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @ubiratansoares! This looks pretty good to me overall, I did an initial pass and most just having naming/convention nitpicks 🙂

Comment thread crates/zizmor/src/models/workflow.rs Resolved
Comment thread crates/zizmor/src/config/mod.rs Resolved
@ubiratansoares

Copy link
Copy Markdown
Contributor Author

Thanks for the feedback @woodruffw ! Happy that this contribution looks good, I'll address your suggestions asap!

@ubiratansoares
ubiratansoares force-pushed the u/feat-improve-self-hosted-audit branch from 92aa0e3 to a5db36e Compare August 31, 2026 16:49
Comment thread docs/audits.md Resolved
@woodruffw

Copy link
Copy Markdown
Member

Thank you @ubiratansoares!

@woodruffw woodruffw added the enhancement New feature or request label Sep 11, 2026
@woodruffw
woodruffw force-pushed the u/feat-improve-self-hosted-audit branch from 45ef5ca to 5a127f2 Compare September 11, 2026 01:02
@woodruffw
woodruffw merged commit bb180c2 into zizmorcore:main Sep 11, 2026
14 checks passed
jdx added a commit to jdx/jactionlint that referenced this pull request Oct 13, 2026
…ps, and say when a pull request reaches the runner (#194)

## What

`self-hosted-runner` (pedantic profile, `info`) only matched the literal
`self-hosted` label.

- A label that `self-hosted-runner.labels` of `jactionlint.yaml` lists
(globs allowed, case-insensitive) now counts as self-hosted: the runners
of an ARC runner set have no `self-hosted` label
(zizmorcore/zizmor#2350).
- `runs-on: {group: ...}` counts too. A runner group can also hold
larger runners hosted by GitHub, so the message says "which holds
self-hosted runners or larger runners".
- When a pull request event (`pull_request`, `pull_request_target`,
`pull_request_review`, `pull_request_review_comment`, also through the
known callers of a reusable workflow) starts the workflow, the message
says that code of a fork can run on the runner (poutine
`pr_runs_on_self_hosted`).
- New options (one ID): `allow` (glob patterns of labels and groups of
ephemeral or trusted runners, not reported) and `pull-request-only`
(report only workflows that a pull request event can start).

**Not a default-profile finding.** I considered a default-profile
finding for a pull request reaching a self-hosted runner and decided
against it: the rule cannot know whether the repository is public (a
private repository running pull requests on its own runners is the
normal case) or whether the runner is ephemeral, so near-zero false
positives is not plausible. `self-hosted-runner: {level: warn,
pull-request-only: true}` is the way to turn it into a gate.

**Interaction with the runner labels of providers** (the other agent's
change in `rule_runner_label.go`): none. `self-hosted-runner` reads the
labels of the job itself and the config list; third-party provider
labels without `self-hosted` are still not reported, and
`rule_runner_label.go` is not touched. If a provider's labels get listed
in `self-hosted-runner.labels` by the user, the rule reports them, by
design.

## Items of #167

Part of #167 (section 3: self-hosted-runner precision).

## Testing

- `rule_self_hosted_runner_config_test.go` (labels, globs, case, groups,
expression group, pull request events, `allow`, `pull-request-only`,
reusable workflow callers) and the golden
`testdata/err/self_hosted_runner_configured.*`.
- `go build ./...`, `go vet ./...`, `go test -race ./...`, `hk check
--all` pass.

## Corpus

4246 workflow files of 379 well-known repositories, pedantic profile
(the rule is off elsewhere), `main` (1d997da) against this branch (no
repository of the corpus has a jactionlint configuration, so the
configured labels are not exercised there):

- 358 findings before, 384 after. All 358 stay; 26 are new, all
`runs-on: group:` of three repositories (huggingface/transformers: 22
jobs in groups such as `aws-general-8-plus`; scikit-learn:
`cuda-gpu-runner-group`; spectrocloud/librarium: `Doc Runners`). I could
not tell from the workflow files whether those groups hold self-hosted
or GitHub's larger runners, which is why the message says both.
- 221 of the findings now carry the pull request note (the message of
those changed, the position did not).

Not measured: whether the groups are self-hosted, the configured-label
path on a real repository, and the rate of public repositories among the
corpus jobs with the pull request note.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Expands a security-oriented lint rule’s match set and message text,
which can add or change pedantic-profile findings without affecting
workflow execution.
> 
> **Overview**
> The **`self-hosted-runner`** pedantic rule no longer relies only on a
literal `self-hosted` label. It also flags jobs that use labels from
**`self-hosted-runner.labels`** (glob, case-insensitive), including ARC
runner sets, and jobs with **`runs-on: {group: ...}`**.
> 
> When pull request–related triggers (including via known callers of
reusable workflows) can start the workflow, findings add a note that
fork PR code may run on that runner. **`allow`** skips trusted/ephemeral
label or group globs (matrix alternatives are handled separately from
fixed label lists), and **`pull-request-only`** limits reports to
PR-reachable workflows; unknown reusable-workflow callers are still
reported when that option is on.
> 
> Docs and zizmor parity text are updated for the broader behavior and
new options. Tests and golden fixtures cover labels, groups,
matrix/`allow` interaction, PR events, and reusable workflow callers.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
b1e0ade. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
jylenhof pushed a commit to jylenhof/mise-update-tool that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `aube`
- `editorconfig-checker`
- `ghalint`
- `jactionlint`
- `pinact`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator aube editorconfig-checker ghalint jactionlint pinact pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `jactionlint` | `2.1.0` → `2.2.0` | `2.1.0` → `2.2.0` |
| `rumdl` | `0.2.79` → `0.3.0` | `0.2.79` → `0.3.0` |
| `tombi` | `1.8.1` → `1.8.7` | `1.8.1` → `1.8.7` |
| `uv` | `0.13.0` → `0.13.1` | `0.13.0` → `0.13.1` |
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (5 tools)</summary>

<details>
<summary>jactionlint: `2.1.0` → `2.2.0` (jdx/jactionlint)</summary>

### v2.2.0

jactionlint 2.2.0 adds about thirty new rules and extends many existing ones, mostly for script injection, token permissions, pinning and runner limits. It also adds CLI modes for pull request checks (`--changed-since`), rule discovery (`--list-rules`, `--explain`, shell completions), fact export and timeout suggestions, and publishes wheels to PyPI. Several new rules are in the `default` or `correctness` profile, so a run that was clean on 2.1.0 can show new findings. See **Changed** before you upgrade.

## Highlights

- **More checks before a run fails:** shell syntax errors without shellcheck, JavaScript syntax errors in `actions/github-script`, job permissions too narrow for the actions in the job, `gh` without a token, `ubuntu-slim` limits, `github.event` property typos, and validation of GitHub's Actions lock file.
- **Deeper security analysis:** `untrusted-checkout`, `cache-poisoning`, `template-injection` and the secret rules follow more code paths. New pedantic and online rules cover command and argument injection, repojacking, release age, unpinned action dependencies and environments without required reviewers.
- **Better for CI and tooling:** report only findings on changed lines, select single rules, export the repository model as JSON, get JSON Schemas for config and output, and install with `pip`/`uvx`.

## Added

### New rules in the `default` and `correctness` profiles

- **`shell-syntax`** (default, error): reports syntax errors in `bash`/`sh` `run:` scripts, such as an unclosed quote or a missing `fi`/`done`, using a built-in parser. It runs only when shellcheck does not run, so the two never report the same error. (#273, @​jdx)
- **`insufficient-permissions`** (default, error): reports a job whose explicit `permissions:` miss a scope that one of its actions needs (`upload-sarif`, `deploy-pages`, OIDC logins, `gh release create`, `git push` and others, about 26 entries). `missing-permissions --fix` now uses the same table to write job… (truncated)

</details>
<details>
<summary>rumdl: `0.2.79` → `0.3.0` (rvben/rumdl)</summary>

### v0.3.0

### Changed

- **2.4–4.7× faster `rumdl fmt`** than 0.2.79 on frozen documentation
  snapshots: Cargo (99 files) 4.7×, MkDocs Material (85 files) 2.6×, and
  Ruff (16 files) 2.4×. Reusing parsed Markdown and shared source analysis
  reduces repeated work. Speedups compare median elapsed times from 31 paired
  runs after five warmups on Apple M6: ordinary Rust 1.96.0 release builds,
  default threads, warm filesystem cache, and `--no-config --no-cache --silent`
  (`--flavor=standard` for Cargo/Ruff, `--flavor=mkdocs` for MkDocs Material).
  Output includes the correctness fixes listed below and can differ from 0.2.79.
- Code block tools are supported and remain opt-in. Missing tags, missing
  active-mode tools and invocations with no tools checked are ignored by default.
  An omitted unknown-tag policy inherits `on-missing-language-definition`,
  preserving existing strict configurations. Valid internal cached checks count
  as checked; applicable external tools rerun to reflect changes in their own
  configuration and environment.
- `on-missing-language-definition = "warn"` now reports uncovered languages;
  previous releases treated it as `ignore`.
- Executable lookup remains system-only by default. Per-binary preferences can
  opt into nearest-first project lookup bounded by repository/configuration
  boundaries, including hoisted workspace installations.
- MD037 still reports spaces inside emphasis delimiters but no longer provides
  automatic fixes, including editor fixes. Repair the reported emphasis manually;
  inserting escapes or removing whitespace can change literal Markdown meaning.

### Added

- `fmt --preflight` and `check --fix --preflight` validate and plan the complete
  selected file batch before applying any writes, with atomic replacement per
  file after successful planning.
- Configurable coverage policies with block diagnostics and invocation-wide
  fail-fast behavior. Invalid tool definitions receive central configuration
  warnin… (truncated)

</details>
<details>
<summary>tombi: `1.8.1` → `1.8.7` (tombi-toml/tombi)</summary>

### v1.8.2

<!-- Release notes generated using configuration in .github/release.yml at v1.8.2 -->

## What's Changed
### 🛠️ Other Changes
* chore(deps): format Cargo.toml by @​ya7010 in tombi-toml/tombi#2291
* fix(schema-store): allow documents to share a schema $id by @​ya7010 in tombi-toml/tombi#2293
* refactor(schema-store): remove the ast-syntax feature by @​ya7010 in tombi-toml/tombi#2294

**Full Changelog**: tombi-toml/tombi@v1.8.1...v1.8.2

### v1.8.3

<!-- Release notes generated using configuration in .github/release.yml at v1.8.3 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): skip file watcher events inside VCS metadata directories by @​ya7010 in tombi-toml/tombi#2296
* refactor(lsp): migrate from tower-lsp to tower-lsp-server by @​ya7010 in tombi-toml/tombi#2297
* fix(validator): apply sub-schemas under keys rejected by the root schema by @​ya7010 in tombi-toml/tombi#2298

**Full Changelog**: tombi-toml/tombi@v1.8.2...v1.8.3

### v1.8.4

<!-- Release notes generated using configuration in .github/release.yml at v1.8.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(config): order schema catalog before format by @​ya7010 in tombi-toml/tombi#2299

**Full Changelog**: tombi-toml/tombi@v1.8.3...v1.8.4

### v1.8.5

<!-- Release notes generated using configuration in .github/release.yml at v1.8.5 -->

## What's Changed
### 🛠️ Other Changes
* update: tombi.toml sample by @​ya7010 in tombi-toml/tombi#2302
* chore: tombi.toml sample by @​ya7010 in tombi-toml/tombi#2303
* docs: embed configuration Full Structure from a checked TOML file by @​ya7010 in tombi-toml/tombi#2304
* fix(schema-store): honor environment proxies for schema fetches by @​cailloumajor in tombi-toml/tombi#2306
* fix(schema-store): refuse schema URLs targeting the proxy host by @​ya7010 in tombi-toml/tombi#2308
* test(schema-store): cover local resolution check for proxied destinations by @​ya7010 in tombi-toml/tombi#2307
* feat(schema-store): honor operating-system proxy settings for schema fetches by @​ya7010 in tombi-toml/tombi#2309

## New Contributors
* @​cailloumajor made their first contribution in tombi-toml/tombi#2306

**Full Changelog**: tombi-toml/tombi@v1.8.4...v1.8.5

### v1.8.6

<!-- Release notes generated using configuration in .github/release.yml at v1.8.6 -->

## What's Changed
### 🐝 Bug Fixes
* fix(docs): resolve embedded snippet during Pages build by @​ya7010 in tombi-toml/tombi#2310
### 📦 Dependencies
* fix(deps): update quinn-proto and rustls for OSV advisories by @​ya7010 in tombi-toml/tombi#2311
* fix(deps): update zip to 9.0.4 by @​ya7010 in tombi-toml/tombi#2317
### 🛠️ Other Changes
* refactor(lsp): collect folding spans in one AST traversal by @​ya7010 in tombi-toml/tombi#2312
* refactor: reuse AST groups during formatting and hover by @​ya7010 in tombi-toml/tombi#2313
* refactor(formatter): reuse root leading comments by @​ya7010 in tombi-toml/tombi#2314
* feat(lsp): highlight TOML region markers by @​ya7010 in tombi-toml/tombi#2316

**Full Changelog**: tombi-toml/tombi@v1.8.5...v1.8.6

### v1.8.7

<!-- Release notes generated using configuration in .github/release.yml at v1.8.7 -->

## What's Changed
### 🦅 New Features
* Add --cache-ttl CLI option by @​ya7010 in tombi-toml/tombi#2320
* feat(cache): add `tombi cache clean/dir` commands by @​ya7010 in tombi-toml/tombi#2321
### 🐝 Bug Fixes
* fix(direnv): skip flake when nix is unavailable by @​ya7010 in tombi-toml/tombi#2323

**Full Changelog**: tombi-toml/tombi@v1.8.6...v1.8.7

</details>
<details>
<summary>uv: `0.13.0` → `0.13.1` (astral-sh/uv)</summary>

### 0.13.1

## Release Notes

Released on 2026-10-14.

### Enhancements

- Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip install --strict`, consistent with resolution ([#22500](astral-sh/uv#22500))
- Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable ([#22463](astral-sh/uv#22463))
- Report missing trusted hashes in resolution errors ([#22241](astral-sh/uv#22241))

### Python

- Add CPython 3.16.0a1 ([#22527](astral-sh/uv#22527))

### Preview features

- Allow `uv tool upgrade` to upgrade installed tools when `tool-install-locks` is enabled ([#22498](astral-sh/uv#22498))
- Add preliminary support for parsing PEP 825 variant labels in wheel filenames with `wheel-variants` ([#22039](astral-sh/uv#22039))

### Performance

- Reduce uv's binary size ([#22429](astral-sh/uv#22429), [#22430](astral-sh/uv#22430), [#22432](astral-sh/uv#22432))
- Speed up Simple API parsing ([#22429](astral-sh/uv#22429))
- Reduce package metadata parsing overhead ([#22239](astral-sh/uv#22239))

### Bug fixes

- Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories ([#22495](astral-sh/uv#22495))
- Restore support for source distributions containing hard links or full-length tar user or group names ([#22516](astral-sh/uv#22516), [#22522](astral-sh/uv#22522))
- Preserve device files and FIFOs used as `uv pip compile` or `uv export` output destinations ([#22496](astral-sh/uv#22496))
- Fix `sys._base_executable` detection for environments created from symlinked interpreters ([#22520](https://github.com/astral-sh/uv/pul… (truncated)

</details>
<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses) audit now supports pre-commit config inputs ([#2437](zizmorcore/zizmor#2437))

- The [self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner) audit is now significantly more precise ([#2350](zizmorcore/zizmor#2350))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now considers the issue_comment trigger fundamentally dangerous ([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger ([#2397](zizmorcore/zizmor#2397))

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now produces more precise finding/diagnostic spans ([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of [pnpm/setup](https://github.com/pnpm/setup) ([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audit now produces more precise findings when the user's workflow contains an indirect matrix ([#2395](zizmorcore/zizmor#2395))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of GitHub's new cache-mode: setting, and will skip any findings that would occur when a job has an effective cache-mode: none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in [1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore comments/configurations would no longer apply to the [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`
jylenhof pushed a commit to jylenhof/gh-action-pulse that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `zizmor`

Command: `mise upgrade --bump --local zizmor`

<details>
<summary>Version changelog (zizmor)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses)
audit now supports pre-commit config inputs
([#2437](zizmorcore/zizmor#2437))

- The
[self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner)
audit is now significantly more precise
([#2350](zizmorcore/zizmor#2350))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now considers the issue_comment trigger fundamentally dangerous
([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger
([#2397](zizmorcore/zizmor#2397))

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now produces more precise finding/diagnostic spans
([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of [pnpm/setup](https://github.com/pnpm/setup)
([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images)
audit now produces more precise findings when the user's workflow
contains an indirect matrix
([#2395](zizmorcore/zizmor#2395))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of GitHub's new cache-mode: setting, and will skip
any findings that would occur when a job has an effective cache-mode:
none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in
[1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore
comments/configurations would no longer apply to the
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-update-tool that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `aube`
- `editorconfig-checker`
- `ghalint`
- `jactionlint`
- `pinact`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator aube
editorconfig-checker ghalint jactionlint pinact pipx:gh-action-pulse
prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `jactionlint` | `2.1.0` → `2.2.0` | `2.1.0` → `2.2.0` |
| `rumdl` | `0.2.79` → `0.3.0` | `0.2.79` → `0.3.0` |
| `tombi` | `1.8.1` → `1.8.7` | `1.8.1` → `1.8.7` |
| `uv` | `0.13.0` → `0.13.1` | `0.13.0` → `0.13.1` |
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (5 tools)</summary>

<details>
<summary>jactionlint: `2.1.0` → `2.2.0` (jdx/jactionlint)</summary>

### v2.2.0

jactionlint 2.2.0 adds about thirty new rules and extends many existing
ones, mostly for script injection, token permissions, pinning and runner
limits. It also adds CLI modes for pull request checks
(`--changed-since`), rule discovery (`--list-rules`, `--explain`, shell
completions), fact export and timeout suggestions, and publishes wheels
to PyPI. Several new rules are in the `default` or `correctness`
profile, so a run that was clean on 2.1.0 can show new findings. See
**Changed** before you upgrade.

## Highlights

- **More checks before a run fails:** shell syntax errors without
shellcheck, JavaScript syntax errors in `actions/github-script`, job
permissions too narrow for the actions in the job, `gh` without a token,
`ubuntu-slim` limits, `github.event` property typos, and validation of
GitHub's Actions lock file.
- **Deeper security analysis:** `untrusted-checkout`, `cache-poisoning`,
`template-injection` and the secret rules follow more code paths. New
pedantic and online rules cover command and argument injection,
repojacking, release age, unpinned action dependencies and environments
without required reviewers.
- **Better for CI and tooling:** report only findings on changed lines,
select single rules, export the repository model as JSON, get JSON
Schemas for config and output, and install with `pip`/`uvx`.

## Added

### New rules in the `default` and `correctness` profiles

- **`shell-syntax`** (default, error): reports syntax errors in
`bash`/`sh` `run:` scripts, such as an unclosed quote or a missing
`fi`/`done`, using a built-in parser. It runs only when shellcheck does
not run, so the two never report the same error. (#273, @​jdx)
- **`insufficient-permissions`** (default, error): reports a job whose
explicit `permissions:` miss a scope that one of its actions needs
(`upload-sarif`, `deploy-pages`, OIDC logins, `gh release create`, `git
push` and others, about 26 entries). `missing-permissions --fix` now
uses the same table to write job… (truncated)

</details>
<details>
<summary>rumdl: `0.2.79` → `0.3.0` (rvben/rumdl)</summary>

### v0.3.0

### Changed

- **2.4–4.7× faster `rumdl fmt`** than 0.2.79 on frozen documentation
  snapshots: Cargo (99 files) 4.7×, MkDocs Material (85 files) 2.6×, and
Ruff (16 files) 2.4×. Reusing parsed Markdown and shared source analysis
reduces repeated work. Speedups compare median elapsed times from 31
paired
runs after five warmups on Apple M6: ordinary Rust 1.96.0 release
builds,
default threads, warm filesystem cache, and `--no-config --no-cache
--silent`
(`--flavor=standard` for Cargo/Ruff, `--flavor=mkdocs` for MkDocs
Material).
Output includes the correctness fixes listed below and can differ from
0.2.79.
- Code block tools are supported and remain opt-in. Missing tags,
missing
active-mode tools and invocations with no tools checked are ignored by
default.
An omitted unknown-tag policy inherits `on-missing-language-definition`,
preserving existing strict configurations. Valid internal cached checks
count
as checked; applicable external tools rerun to reflect changes in their
own
  configuration and environment.
- `on-missing-language-definition = "warn"` now reports uncovered
languages;
  previous releases treated it as `ignore`.
- Executable lookup remains system-only by default. Per-binary
preferences can
opt into nearest-first project lookup bounded by
repository/configuration
  boundaries, including hoisted workspace installations.
- MD037 still reports spaces inside emphasis delimiters but no longer
provides
automatic fixes, including editor fixes. Repair the reported emphasis
manually;
inserting escapes or removing whitespace can change literal Markdown
meaning.

### Added

- `fmt --preflight` and `check --fix --preflight` validate and plan the
complete
selected file batch before applying any writes, with atomic replacement
per
  file after successful planning.
- Configurable coverage policies with block diagnostics and
invocation-wide
fail-fast behavior. Invalid tool definitions receive central
configuration
  warnin… (truncated)

</details>
<details>
<summary>tombi: `1.8.1` → `1.8.7` (tombi-toml/tombi)</summary>

### v1.8.2

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.2 -->

## What's Changed
### 🛠️ Other Changes
* chore(deps): format Cargo.toml by @​ya7010 in
tombi-toml/tombi#2291
* fix(schema-store): allow documents to share a schema $id by @​ya7010
in tombi-toml/tombi#2293
* refactor(schema-store): remove the ast-syntax feature by @​ya7010 in
tombi-toml/tombi#2294


**Full Changelog**:
tombi-toml/tombi@v1.8.1...v1.8.2

### v1.8.3

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.3 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): skip file watcher events inside VCS metadata directories by
@​ya7010 in tombi-toml/tombi#2296
* refactor(lsp): migrate from tower-lsp to tower-lsp-server by @​ya7010
in tombi-toml/tombi#2297
* fix(validator): apply sub-schemas under keys rejected by the root
schema by @​ya7010 in tombi-toml/tombi#2298


**Full Changelog**:
tombi-toml/tombi@v1.8.2...v1.8.3

### v1.8.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(config): order schema catalog before format by @​ya7010 in
tombi-toml/tombi#2299


**Full Changelog**:
tombi-toml/tombi@v1.8.3...v1.8.4

### v1.8.5

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.5 -->

## What's Changed
### 🛠️ Other Changes
* update: tombi.toml sample by @​ya7010 in
tombi-toml/tombi#2302
* chore: tombi.toml sample by @​ya7010 in
tombi-toml/tombi#2303
* docs: embed configuration Full Structure from a checked TOML file by
@​ya7010 in tombi-toml/tombi#2304
* fix(schema-store): honor environment proxies for schema fetches by
@​cailloumajor in tombi-toml/tombi#2306
* fix(schema-store): refuse schema URLs targeting the proxy host by
@​ya7010 in tombi-toml/tombi#2308
* test(schema-store): cover local resolution check for proxied
destinations by @​ya7010 in
tombi-toml/tombi#2307
* feat(schema-store): honor operating-system proxy settings for schema
fetches by @​ya7010 in tombi-toml/tombi#2309

## New Contributors
* @​cailloumajor made their first contribution in
tombi-toml/tombi#2306

**Full Changelog**:
tombi-toml/tombi@v1.8.4...v1.8.5

### v1.8.6

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.6 -->

## What's Changed
### 🐝 Bug Fixes
* fix(docs): resolve embedded snippet during Pages build by @​ya7010 in
tombi-toml/tombi#2310
### 📦 Dependencies
* fix(deps): update quinn-proto and rustls for OSV advisories by
@​ya7010 in tombi-toml/tombi#2311
* fix(deps): update zip to 9.0.4 by @​ya7010 in
tombi-toml/tombi#2317
### 🛠️ Other Changes
* refactor(lsp): collect folding spans in one AST traversal by @​ya7010
in tombi-toml/tombi#2312
* refactor: reuse AST groups during formatting and hover by @​ya7010 in
tombi-toml/tombi#2313
* refactor(formatter): reuse root leading comments by @​ya7010 in
tombi-toml/tombi#2314
* feat(lsp): highlight TOML region markers by @​ya7010 in
tombi-toml/tombi#2316


**Full Changelog**:
tombi-toml/tombi@v1.8.5...v1.8.6

### v1.8.7

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.7 -->

## What's Changed
### 🦅 New Features
* Add --cache-ttl CLI option by @​ya7010 in
tombi-toml/tombi#2320
* feat(cache): add `tombi cache clean/dir` commands by @​ya7010 in
tombi-toml/tombi#2321
### 🐝 Bug Fixes
* fix(direnv): skip flake when nix is unavailable by @​ya7010 in
tombi-toml/tombi#2323


**Full Changelog**:
tombi-toml/tombi@v1.8.6...v1.8.7

</details>
<details>
<summary>uv: `0.13.0` → `0.13.1` (astral-sh/uv)</summary>

### 0.13.1

## Release Notes

Released on 2026-10-14.

### Enhancements

- Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip
install --strict`, consistent with resolution
([#22500](astral-sh/uv#22500))
- Support Linux SPARC by falling back when filesystem cloning and
detailed cache accounting are unavailable
([#22463](astral-sh/uv#22463))
- Report missing trusted hashes in resolution errors
([#22241](astral-sh/uv#22241))

### Python

- Add CPython 3.16.0a1
([#22527](astral-sh/uv#22527))

### Preview features

- Allow `uv tool upgrade` to upgrade installed tools when
`tool-install-locks` is enabled
([#22498](astral-sh/uv#22498))
- Add preliminary support for parsing PEP 825 variant labels in wheel
filenames with `wheel-variants`
([#22039](astral-sh/uv#22039))

### Performance

- Reduce uv's binary size
([#22429](astral-sh/uv#22429),
[#22430](astral-sh/uv#22430),
[#22432](astral-sh/uv#22432))
- Speed up Simple API parsing
([#22429](astral-sh/uv#22429))
- Reduce package metadata parsing overhead
([#22239](astral-sh/uv#22239))

### Bug fixes

- Prevent tool and managed Python uninstalls from deleting unrelated
files beside their storage directories
([#22495](astral-sh/uv#22495))
- Restore support for source distributions containing hard links or
full-length tar user or group names
([#22516](astral-sh/uv#22516),
[#22522](astral-sh/uv#22522))
- Preserve device files and FIFOs used as `uv pip compile` or `uv
export` output destinations
([#22496](astral-sh/uv#22496))
- Fix `sys._base_executable` detection for environments created from
symlinked interpreters ([#22520](https://github.com/astral-sh/uv/pul…
(truncated)

</details>
<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses)
audit now supports pre-commit config inputs
([#2437](zizmorcore/zizmor#2437))

- The
[self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner)
audit is now significantly more precise
([#2350](zizmorcore/zizmor#2350))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now considers the issue_comment trigger fundamentally dangerous
([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger
([#2397](zizmorcore/zizmor#2397))

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now produces more precise finding/diagnostic spans
([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of [pnpm/setup](https://github.com/pnpm/setup)
([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images)
audit now produces more precise findings when the user's workflow
contains an indirect matrix
([#2395](zizmorcore/zizmor#2395))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of GitHub's new cache-mode: setting, and will skip
any findings that would occur when a job has an effective cache-mode:
none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in
[1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore
comments/configurations would no longer apply to the
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/github-actions-resources that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `editorconfig-checker`
- `ghalint`
- `jactionlint`
- `lychee`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator editorconfig-checker ghalint jactionlint lychee pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `jactionlint` | `2.1.0` → `2.2.0` | `2.1.0` → `2.2.0` |
| `rumdl` | `0.2.79` → `0.3.0` | `0.2.79` → `0.3.0` |
| `tombi` | `1.8.1` → `1.8.7` | `1.8.1` → `1.8.7` |
| `uv` | `0.13.0` → `0.13.1` | `0.13.0` → `0.13.1` |
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (5 tools)</summary>

<details>
<summary>jactionlint: `2.1.0` → `2.2.0` (jdx/jactionlint)</summary>

### v2.2.0

jactionlint 2.2.0 adds about thirty new rules and extends many existing ones, mostly for script injection, token permissions, pinning and runner limits. It also adds CLI modes for pull request checks (`--changed-since`), rule discovery (`--list-rules`, `--explain`, shell completions), fact export and timeout suggestions, and publishes wheels to PyPI. Several new rules are in the `default` or `correctness` profile, so a run that was clean on 2.1.0 can show new findings. See **Changed** before you upgrade.

## Highlights

- **More checks before a run fails:** shell syntax errors without shellcheck, JavaScript syntax errors in `actions/github-script`, job permissions too narrow for the actions in the job, `gh` without a token, `ubuntu-slim` limits, `github.event` property typos, and validation of GitHub's Actions lock file.
- **Deeper security analysis:** `untrusted-checkout`, `cache-poisoning`, `template-injection` and the secret rules follow more code paths. New pedantic and online rules cover command and argument injection, repojacking, release age, unpinned action dependencies and environments without required reviewers.
- **Better for CI and tooling:** report only findings on changed lines, select single rules, export the repository model as JSON, get JSON Schemas for config and output, and install with `pip`/`uvx`.

## Added

### New rules in the `default` and `correctness` profiles

- **`shell-syntax`** (default, error): reports syntax errors in `bash`/`sh` `run:` scripts, such as an unclosed quote or a missing `fi`/`done`, using a built-in parser. It runs only when shellcheck does not run, so the two never report the same error. (#273, @​jdx)
- **`insufficient-permissions`** (default, error): reports a job whose explicit `permissions:` miss a scope that one of its actions needs (`upload-sarif`, `deploy-pages`, OIDC logins, `gh release create`, `git push` and others, about 26 entries). `missing-permissions --fix` now uses the same table to write job… (truncated)

</details>
<details>
<summary>rumdl: `0.2.79` → `0.3.0` (rvben/rumdl)</summary>

### v0.3.0

### Changed

- **2.4–4.7× faster `rumdl fmt`** than 0.2.79 on frozen documentation
  snapshots: Cargo (99 files) 4.7×, MkDocs Material (85 files) 2.6×, and
  Ruff (16 files) 2.4×. Reusing parsed Markdown and shared source analysis
  reduces repeated work. Speedups compare median elapsed times from 31 paired
  runs after five warmups on Apple M6: ordinary Rust 1.96.0 release builds,
  default threads, warm filesystem cache, and `--no-config --no-cache --silent`
  (`--flavor=standard` for Cargo/Ruff, `--flavor=mkdocs` for MkDocs Material).
  Output includes the correctness fixes listed below and can differ from 0.2.79.
- Code block tools are supported and remain opt-in. Missing tags, missing
  active-mode tools and invocations with no tools checked are ignored by default.
  An omitted unknown-tag policy inherits `on-missing-language-definition`,
  preserving existing strict configurations. Valid internal cached checks count
  as checked; applicable external tools rerun to reflect changes in their own
  configuration and environment.
- `on-missing-language-definition = "warn"` now reports uncovered languages;
  previous releases treated it as `ignore`.
- Executable lookup remains system-only by default. Per-binary preferences can
  opt into nearest-first project lookup bounded by repository/configuration
  boundaries, including hoisted workspace installations.
- MD037 still reports spaces inside emphasis delimiters but no longer provides
  automatic fixes, including editor fixes. Repair the reported emphasis manually;
  inserting escapes or removing whitespace can change literal Markdown meaning.

### Added

- `fmt --preflight` and `check --fix --preflight` validate and plan the complete
  selected file batch before applying any writes, with atomic replacement per
  file after successful planning.
- Configurable coverage policies with block diagnostics and invocation-wide
  fail-fast behavior. Invalid tool definitions receive central configuration
  warnin… (truncated)

</details>
<details>
<summary>tombi: `1.8.1` → `1.8.7` (tombi-toml/tombi)</summary>

### v1.8.2

<!-- Release notes generated using configuration in .github/release.yml at v1.8.2 -->

## What's Changed
### 🛠️ Other Changes
* chore(deps): format Cargo.toml by @​ya7010 in tombi-toml/tombi#2291
* fix(schema-store): allow documents to share a schema $id by @​ya7010 in tombi-toml/tombi#2293
* refactor(schema-store): remove the ast-syntax feature by @​ya7010 in tombi-toml/tombi#2294

**Full Changelog**: tombi-toml/tombi@v1.8.1...v1.8.2

### v1.8.3

<!-- Release notes generated using configuration in .github/release.yml at v1.8.3 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): skip file watcher events inside VCS metadata directories by @​ya7010 in tombi-toml/tombi#2296
* refactor(lsp): migrate from tower-lsp to tower-lsp-server by @​ya7010 in tombi-toml/tombi#2297
* fix(validator): apply sub-schemas under keys rejected by the root schema by @​ya7010 in tombi-toml/tombi#2298

**Full Changelog**: tombi-toml/tombi@v1.8.2...v1.8.3

### v1.8.4

<!-- Release notes generated using configuration in .github/release.yml at v1.8.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(config): order schema catalog before format by @​ya7010 in tombi-toml/tombi#2299

**Full Changelog**: tombi-toml/tombi@v1.8.3...v1.8.4

### v1.8.5

<!-- Release notes generated using configuration in .github/release.yml at v1.8.5 -->

## What's Changed
### 🛠️ Other Changes
* update: tombi.toml sample by @​ya7010 in tombi-toml/tombi#2302
* chore: tombi.toml sample by @​ya7010 in tombi-toml/tombi#2303
* docs: embed configuration Full Structure from a checked TOML file by @​ya7010 in tombi-toml/tombi#2304
* fix(schema-store): honor environment proxies for schema fetches by @​cailloumajor in tombi-toml/tombi#2306
* fix(schema-store): refuse schema URLs targeting the proxy host by @​ya7010 in tombi-toml/tombi#2308
* test(schema-store): cover local resolution check for proxied destinations by @​ya7010 in tombi-toml/tombi#2307
* feat(schema-store): honor operating-system proxy settings for schema fetches by @​ya7010 in tombi-toml/tombi#2309

## New Contributors
* @​cailloumajor made their first contribution in tombi-toml/tombi#2306

**Full Changelog**: tombi-toml/tombi@v1.8.4...v1.8.5

### v1.8.6

<!-- Release notes generated using configuration in .github/release.yml at v1.8.6 -->

## What's Changed
### 🐝 Bug Fixes
* fix(docs): resolve embedded snippet during Pages build by @​ya7010 in tombi-toml/tombi#2310
### 📦 Dependencies
* fix(deps): update quinn-proto and rustls for OSV advisories by @​ya7010 in tombi-toml/tombi#2311
* fix(deps): update zip to 9.0.4 by @​ya7010 in tombi-toml/tombi#2317
### 🛠️ Other Changes
* refactor(lsp): collect folding spans in one AST traversal by @​ya7010 in tombi-toml/tombi#2312
* refactor: reuse AST groups during formatting and hover by @​ya7010 in tombi-toml/tombi#2313
* refactor(formatter): reuse root leading comments by @​ya7010 in tombi-toml/tombi#2314
* feat(lsp): highlight TOML region markers by @​ya7010 in tombi-toml/tombi#2316

**Full Changelog**: tombi-toml/tombi@v1.8.5...v1.8.6

### v1.8.7

<!-- Release notes generated using configuration in .github/release.yml at v1.8.7 -->

## What's Changed
### 🦅 New Features
* Add --cache-ttl CLI option by @​ya7010 in tombi-toml/tombi#2320
* feat(cache): add `tombi cache clean/dir` commands by @​ya7010 in tombi-toml/tombi#2321
### 🐝 Bug Fixes
* fix(direnv): skip flake when nix is unavailable by @​ya7010 in tombi-toml/tombi#2323

**Full Changelog**: tombi-toml/tombi@v1.8.6...v1.8.7

</details>
<details>
<summary>uv: `0.13.0` → `0.13.1` (astral-sh/uv)</summary>

### 0.13.1

## Release Notes

Released on 2026-10-14.

### Enhancements

- Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip install --strict`, consistent with resolution ([#22500](astral-sh/uv#22500))
- Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable ([#22463](astral-sh/uv#22463))
- Report missing trusted hashes in resolution errors ([#22241](astral-sh/uv#22241))

### Python

- Add CPython 3.16.0a1 ([#22527](astral-sh/uv#22527))

### Preview features

- Allow `uv tool upgrade` to upgrade installed tools when `tool-install-locks` is enabled ([#22498](astral-sh/uv#22498))
- Add preliminary support for parsing PEP 825 variant labels in wheel filenames with `wheel-variants` ([#22039](astral-sh/uv#22039))

### Performance

- Reduce uv's binary size ([#22429](astral-sh/uv#22429), [#22430](astral-sh/uv#22430), [#22432](astral-sh/uv#22432))
- Speed up Simple API parsing ([#22429](astral-sh/uv#22429))
- Reduce package metadata parsing overhead ([#22239](astral-sh/uv#22239))

### Bug fixes

- Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories ([#22495](astral-sh/uv#22495))
- Restore support for source distributions containing hard links or full-length tar user or group names ([#22516](astral-sh/uv#22516), [#22522](astral-sh/uv#22522))
- Preserve device files and FIFOs used as `uv pip compile` or `uv export` output destinations ([#22496](astral-sh/uv#22496))
- Fix `sys._base_executable` detection for environments created from symlinked interpreters ([#22520](https://github.com/astral-sh/uv/pul… (truncated)

</details>
<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses) audit now supports pre-commit config inputs ([#2437](zizmorcore/zizmor#2437))

- The [self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner) audit is now significantly more precise ([#2350](zizmorcore/zizmor#2350))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now considers the issue_comment trigger fundamentally dangerous ([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger ([#2397](zizmorcore/zizmor#2397))

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now produces more precise finding/diagnostic spans ([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of [pnpm/setup](https://github.com/pnpm/setup) ([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audit now produces more precise findings when the user's workflow contains an indirect matrix ([#2395](zizmorcore/zizmor#2395))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of GitHub's new cache-mode: setting, and will skip any findings that would occur when a job has an effective cache-mode: none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in [1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore comments/configurations would no longer apply to the [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`
jylenhof pushed a commit to jylenhof/mise-en-place-tips that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `zizmor`

Command: `mise upgrade --bump --local zizmor`

<details>
<summary>Version changelog (zizmor)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses) audit now supports pre-commit config inputs ([#2437](zizmorcore/zizmor#2437))

- The [self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner) audit is now significantly more precise ([#2350](zizmorcore/zizmor#2350))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now considers the issue_comment trigger fundamentally dangerous ([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger ([#2397](zizmorcore/zizmor#2397))

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now produces more precise finding/diagnostic spans ([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of [pnpm/setup](https://github.com/pnpm/setup) ([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audit now produces more precise findings when the user's workflow contains an indirect matrix ([#2395](zizmorcore/zizmor#2395))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of GitHub's new cache-mode: setting, and will skip any findings that would occur when a job has an effective cache-mode: none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in [1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore comments/configurations would no longer apply to the [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`
jylenhof pushed a commit to jylenhof/github-actions-resources that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `editorconfig-checker`
- `ghalint`
- `jactionlint`
- `lychee`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator
editorconfig-checker ghalint jactionlint lychee pipx:gh-action-pulse
prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `jactionlint` | `2.1.0` → `2.2.0` | `2.1.0` → `2.2.0` |
| `rumdl` | `0.2.79` → `0.3.0` | `0.2.79` → `0.3.0` |
| `tombi` | `1.8.1` → `1.8.7` | `1.8.1` → `1.8.7` |
| `uv` | `0.13.0` → `0.13.1` | `0.13.0` → `0.13.1` |
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (5 tools)</summary>

<details>
<summary>jactionlint: `2.1.0` → `2.2.0` (jdx/jactionlint)</summary>

### v2.2.0

jactionlint 2.2.0 adds about thirty new rules and extends many existing
ones, mostly for script injection, token permissions, pinning and runner
limits. It also adds CLI modes for pull request checks
(`--changed-since`), rule discovery (`--list-rules`, `--explain`, shell
completions), fact export and timeout suggestions, and publishes wheels
to PyPI. Several new rules are in the `default` or `correctness`
profile, so a run that was clean on 2.1.0 can show new findings. See
**Changed** before you upgrade.

## Highlights

- **More checks before a run fails:** shell syntax errors without
shellcheck, JavaScript syntax errors in `actions/github-script`, job
permissions too narrow for the actions in the job, `gh` without a token,
`ubuntu-slim` limits, `github.event` property typos, and validation of
GitHub's Actions lock file.
- **Deeper security analysis:** `untrusted-checkout`, `cache-poisoning`,
`template-injection` and the secret rules follow more code paths. New
pedantic and online rules cover command and argument injection,
repojacking, release age, unpinned action dependencies and environments
without required reviewers.
- **Better for CI and tooling:** report only findings on changed lines,
select single rules, export the repository model as JSON, get JSON
Schemas for config and output, and install with `pip`/`uvx`.

## Added

### New rules in the `default` and `correctness` profiles

- **`shell-syntax`** (default, error): reports syntax errors in
`bash`/`sh` `run:` scripts, such as an unclosed quote or a missing
`fi`/`done`, using a built-in parser. It runs only when shellcheck does
not run, so the two never report the same error. (#273, @​jdx)
- **`insufficient-permissions`** (default, error): reports a job whose
explicit `permissions:` miss a scope that one of its actions needs
(`upload-sarif`, `deploy-pages`, OIDC logins, `gh release create`, `git
push` and others, about 26 entries). `missing-permissions --fix` now
uses the same table to write job… (truncated)

</details>
<details>
<summary>rumdl: `0.2.79` → `0.3.0` (rvben/rumdl)</summary>

### v0.3.0

### Changed

- **2.4–4.7× faster `rumdl fmt`** than 0.2.79 on frozen documentation
  snapshots: Cargo (99 files) 4.7×, MkDocs Material (85 files) 2.6×, and
Ruff (16 files) 2.4×. Reusing parsed Markdown and shared source analysis
reduces repeated work. Speedups compare median elapsed times from 31
paired
runs after five warmups on Apple M6: ordinary Rust 1.96.0 release
builds,
default threads, warm filesystem cache, and `--no-config --no-cache
--silent`
(`--flavor=standard` for Cargo/Ruff, `--flavor=mkdocs` for MkDocs
Material).
Output includes the correctness fixes listed below and can differ from
0.2.79.
- Code block tools are supported and remain opt-in. Missing tags,
missing
active-mode tools and invocations with no tools checked are ignored by
default.
An omitted unknown-tag policy inherits `on-missing-language-definition`,
preserving existing strict configurations. Valid internal cached checks
count
as checked; applicable external tools rerun to reflect changes in their
own
  configuration and environment.
- `on-missing-language-definition = "warn"` now reports uncovered
languages;
  previous releases treated it as `ignore`.
- Executable lookup remains system-only by default. Per-binary
preferences can
opt into nearest-first project lookup bounded by
repository/configuration
  boundaries, including hoisted workspace installations.
- MD037 still reports spaces inside emphasis delimiters but no longer
provides
automatic fixes, including editor fixes. Repair the reported emphasis
manually;
inserting escapes or removing whitespace can change literal Markdown
meaning.

### Added

- `fmt --preflight` and `check --fix --preflight` validate and plan the
complete
selected file batch before applying any writes, with atomic replacement
per
  file after successful planning.
- Configurable coverage policies with block diagnostics and
invocation-wide
fail-fast behavior. Invalid tool definitions receive central
configuration
  warnin… (truncated)

</details>
<details>
<summary>tombi: `1.8.1` → `1.8.7` (tombi-toml/tombi)</summary>

### v1.8.2

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.2 -->

## What's Changed
### 🛠️ Other Changes
* chore(deps): format Cargo.toml by @​ya7010 in
tombi-toml/tombi#2291
* fix(schema-store): allow documents to share a schema $id by @​ya7010
in tombi-toml/tombi#2293
* refactor(schema-store): remove the ast-syntax feature by @​ya7010 in
tombi-toml/tombi#2294


**Full Changelog**:
tombi-toml/tombi@v1.8.1...v1.8.2

### v1.8.3

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.3 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): skip file watcher events inside VCS metadata directories by
@​ya7010 in tombi-toml/tombi#2296
* refactor(lsp): migrate from tower-lsp to tower-lsp-server by @​ya7010
in tombi-toml/tombi#2297
* fix(validator): apply sub-schemas under keys rejected by the root
schema by @​ya7010 in tombi-toml/tombi#2298


**Full Changelog**:
tombi-toml/tombi@v1.8.2...v1.8.3

### v1.8.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(config): order schema catalog before format by @​ya7010 in
tombi-toml/tombi#2299


**Full Changelog**:
tombi-toml/tombi@v1.8.3...v1.8.4

### v1.8.5

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.5 -->

## What's Changed
### 🛠️ Other Changes
* update: tombi.toml sample by @​ya7010 in
tombi-toml/tombi#2302
* chore: tombi.toml sample by @​ya7010 in
tombi-toml/tombi#2303
* docs: embed configuration Full Structure from a checked TOML file by
@​ya7010 in tombi-toml/tombi#2304
* fix(schema-store): honor environment proxies for schema fetches by
@​cailloumajor in tombi-toml/tombi#2306
* fix(schema-store): refuse schema URLs targeting the proxy host by
@​ya7010 in tombi-toml/tombi#2308
* test(schema-store): cover local resolution check for proxied
destinations by @​ya7010 in
tombi-toml/tombi#2307
* feat(schema-store): honor operating-system proxy settings for schema
fetches by @​ya7010 in tombi-toml/tombi#2309

## New Contributors
* @​cailloumajor made their first contribution in
tombi-toml/tombi#2306

**Full Changelog**:
tombi-toml/tombi@v1.8.4...v1.8.5

### v1.8.6

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.6 -->

## What's Changed
### 🐝 Bug Fixes
* fix(docs): resolve embedded snippet during Pages build by @​ya7010 in
tombi-toml/tombi#2310
### 📦 Dependencies
* fix(deps): update quinn-proto and rustls for OSV advisories by
@​ya7010 in tombi-toml/tombi#2311
* fix(deps): update zip to 9.0.4 by @​ya7010 in
tombi-toml/tombi#2317
### 🛠️ Other Changes
* refactor(lsp): collect folding spans in one AST traversal by @​ya7010
in tombi-toml/tombi#2312
* refactor: reuse AST groups during formatting and hover by @​ya7010 in
tombi-toml/tombi#2313
* refactor(formatter): reuse root leading comments by @​ya7010 in
tombi-toml/tombi#2314
* feat(lsp): highlight TOML region markers by @​ya7010 in
tombi-toml/tombi#2316


**Full Changelog**:
tombi-toml/tombi@v1.8.5...v1.8.6

### v1.8.7

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.7 -->

## What's Changed
### 🦅 New Features
* Add --cache-ttl CLI option by @​ya7010 in
tombi-toml/tombi#2320
* feat(cache): add `tombi cache clean/dir` commands by @​ya7010 in
tombi-toml/tombi#2321
### 🐝 Bug Fixes
* fix(direnv): skip flake when nix is unavailable by @​ya7010 in
tombi-toml/tombi#2323


**Full Changelog**:
tombi-toml/tombi@v1.8.6...v1.8.7

</details>
<details>
<summary>uv: `0.13.0` → `0.13.1` (astral-sh/uv)</summary>

### 0.13.1

## Release Notes

Released on 2026-10-14.

### Enhancements

- Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip
install --strict`, consistent with resolution
([#22500](astral-sh/uv#22500))
- Support Linux SPARC by falling back when filesystem cloning and
detailed cache accounting are unavailable
([#22463](astral-sh/uv#22463))
- Report missing trusted hashes in resolution errors
([#22241](astral-sh/uv#22241))

### Python

- Add CPython 3.16.0a1
([#22527](astral-sh/uv#22527))

### Preview features

- Allow `uv tool upgrade` to upgrade installed tools when
`tool-install-locks` is enabled
([#22498](astral-sh/uv#22498))
- Add preliminary support for parsing PEP 825 variant labels in wheel
filenames with `wheel-variants`
([#22039](astral-sh/uv#22039))

### Performance

- Reduce uv's binary size
([#22429](astral-sh/uv#22429),
[#22430](astral-sh/uv#22430),
[#22432](astral-sh/uv#22432))
- Speed up Simple API parsing
([#22429](astral-sh/uv#22429))
- Reduce package metadata parsing overhead
([#22239](astral-sh/uv#22239))

### Bug fixes

- Prevent tool and managed Python uninstalls from deleting unrelated
files beside their storage directories
([#22495](astral-sh/uv#22495))
- Restore support for source distributions containing hard links or
full-length tar user or group names
([#22516](astral-sh/uv#22516),
[#22522](astral-sh/uv#22522))
- Preserve device files and FIFOs used as `uv pip compile` or `uv
export` output destinations
([#22496](astral-sh/uv#22496))
- Fix `sys._base_executable` detection for environments created from
symlinked interpreters ([#22520](https://github.com/astral-sh/uv/pul…
(truncated)

</details>
<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses)
audit now supports pre-commit config inputs
([#2437](zizmorcore/zizmor#2437))

- The
[self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner)
audit is now significantly more precise
([#2350](zizmorcore/zizmor#2350))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now considers the issue_comment trigger fundamentally dangerous
([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger
([#2397](zizmorcore/zizmor#2397))

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now produces more precise finding/diagnostic spans
([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of [pnpm/setup](https://github.com/pnpm/setup)
([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images)
audit now produces more precise findings when the user's workflow
contains an indirect matrix
([#2395](zizmorcore/zizmor#2395))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of GitHub's new cache-mode: setting, and will skip
any findings that would occur when a job has an effective cache-mode:
none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in
[1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore
comments/configurations would no longer apply to the
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-en-place-tips that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `zizmor`

Command: `mise upgrade --bump --local zizmor`

<details>
<summary>Version changelog (zizmor)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses)
audit now supports pre-commit config inputs
([#2437](zizmorcore/zizmor#2437))

- The
[self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner)
audit is now significantly more precise
([#2350](zizmorcore/zizmor#2350))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now considers the issue_comment trigger fundamentally dangerous
([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger
([#2397](zizmorcore/zizmor#2397))

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now produces more precise finding/diagnostic spans
([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of [pnpm/setup](https://github.com/pnpm/setup)
([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images)
audit now produces more precise findings when the user's workflow
contains an indirect matrix
([#2395](zizmorcore/zizmor#2395))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of GitHub's new cache-mode: setting, and will skip
any findings that would occur when a job has an effective cache-mode:
none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in
[1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore
comments/configurations would no longer apply to the
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-en-place-resources that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `editorconfig-checker`
- `ghalint`
- `jactionlint`
- `lychee`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator editorconfig-checker ghalint jactionlint lychee pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `jactionlint` | `2.1.0` → `2.2.0` | `2.1.0` → `2.2.0` |
| `rumdl` | `0.2.79` → `0.3.0` | `0.2.79` → `0.3.0` |
| `tombi` | `1.8.1` → `1.8.7` | `1.8.1` → `1.8.7` |
| `uv` | `0.13.0` → `0.13.1` | `0.13.0` → `0.13.1` |
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (5 tools)</summary>

<details>
<summary>jactionlint: `2.1.0` → `2.2.0` (jdx/jactionlint)</summary>

### v2.2.0

jactionlint 2.2.0 adds about thirty new rules and extends many existing ones, mostly for script injection, token permissions, pinning and runner limits. It also adds CLI modes for pull request checks (`--changed-since`), rule discovery (`--list-rules`, `--explain`, shell completions), fact export and timeout suggestions, and publishes wheels to PyPI. Several new rules are in the `default` or `correctness` profile, so a run that was clean on 2.1.0 can show new findings. See **Changed** before you upgrade.

## Highlights

- **More checks before a run fails:** shell syntax errors without shellcheck, JavaScript syntax errors in `actions/github-script`, job permissions too narrow for the actions in the job, `gh` without a token, `ubuntu-slim` limits, `github.event` property typos, and validation of GitHub's Actions lock file.
- **Deeper security analysis:** `untrusted-checkout`, `cache-poisoning`, `template-injection` and the secret rules follow more code paths. New pedantic and online rules cover command and argument injection, repojacking, release age, unpinned action dependencies and environments without required reviewers.
- **Better for CI and tooling:** report only findings on changed lines, select single rules, export the repository model as JSON, get JSON Schemas for config and output, and install with `pip`/`uvx`.

## Added

### New rules in the `default` and `correctness` profiles

- **`shell-syntax`** (default, error): reports syntax errors in `bash`/`sh` `run:` scripts, such as an unclosed quote or a missing `fi`/`done`, using a built-in parser. It runs only when shellcheck does not run, so the two never report the same error. (#273, @​jdx)
- **`insufficient-permissions`** (default, error): reports a job whose explicit `permissions:` miss a scope that one of its actions needs (`upload-sarif`, `deploy-pages`, OIDC logins, `gh release create`, `git push` and others, about 26 entries). `missing-permissions --fix` now uses the same table to write job… (truncated)

</details>
<details>
<summary>rumdl: `0.2.79` → `0.3.0` (rvben/rumdl)</summary>

### v0.3.0

### Changed

- **2.4–4.7× faster `rumdl fmt`** than 0.2.79 on frozen documentation
  snapshots: Cargo (99 files) 4.7×, MkDocs Material (85 files) 2.6×, and
  Ruff (16 files) 2.4×. Reusing parsed Markdown and shared source analysis
  reduces repeated work. Speedups compare median elapsed times from 31 paired
  runs after five warmups on Apple M6: ordinary Rust 1.96.0 release builds,
  default threads, warm filesystem cache, and `--no-config --no-cache --silent`
  (`--flavor=standard` for Cargo/Ruff, `--flavor=mkdocs` for MkDocs Material).
  Output includes the correctness fixes listed below and can differ from 0.2.79.
- Code block tools are supported and remain opt-in. Missing tags, missing
  active-mode tools and invocations with no tools checked are ignored by default.
  An omitted unknown-tag policy inherits `on-missing-language-definition`,
  preserving existing strict configurations. Valid internal cached checks count
  as checked; applicable external tools rerun to reflect changes in their own
  configuration and environment.
- `on-missing-language-definition = "warn"` now reports uncovered languages;
  previous releases treated it as `ignore`.
- Executable lookup remains system-only by default. Per-binary preferences can
  opt into nearest-first project lookup bounded by repository/configuration
  boundaries, including hoisted workspace installations.
- MD037 still reports spaces inside emphasis delimiters but no longer provides
  automatic fixes, including editor fixes. Repair the reported emphasis manually;
  inserting escapes or removing whitespace can change literal Markdown meaning.

### Added

- `fmt --preflight` and `check --fix --preflight` validate and plan the complete
  selected file batch before applying any writes, with atomic replacement per
  file after successful planning.
- Configurable coverage policies with block diagnostics and invocation-wide
  fail-fast behavior. Invalid tool definitions receive central configuration
  warnin… (truncated)

</details>
<details>
<summary>tombi: `1.8.1` → `1.8.7` (tombi-toml/tombi)</summary>

### v1.8.2

<!-- Release notes generated using configuration in .github/release.yml at v1.8.2 -->

## What's Changed
### 🛠️ Other Changes
* chore(deps): format Cargo.toml by @​ya7010 in tombi-toml/tombi#2291
* fix(schema-store): allow documents to share a schema $id by @​ya7010 in tombi-toml/tombi#2293
* refactor(schema-store): remove the ast-syntax feature by @​ya7010 in tombi-toml/tombi#2294

**Full Changelog**: tombi-toml/tombi@v1.8.1...v1.8.2

### v1.8.3

<!-- Release notes generated using configuration in .github/release.yml at v1.8.3 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): skip file watcher events inside VCS metadata directories by @​ya7010 in tombi-toml/tombi#2296
* refactor(lsp): migrate from tower-lsp to tower-lsp-server by @​ya7010 in tombi-toml/tombi#2297
* fix(validator): apply sub-schemas under keys rejected by the root schema by @​ya7010 in tombi-toml/tombi#2298

**Full Changelog**: tombi-toml/tombi@v1.8.2...v1.8.3

### v1.8.4

<!-- Release notes generated using configuration in .github/release.yml at v1.8.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(config): order schema catalog before format by @​ya7010 in tombi-toml/tombi#2299

**Full Changelog**: tombi-toml/tombi@v1.8.3...v1.8.4

### v1.8.5

<!-- Release notes generated using configuration in .github/release.yml at v1.8.5 -->

## What's Changed
### 🛠️ Other Changes
* update: tombi.toml sample by @​ya7010 in tombi-toml/tombi#2302
* chore: tombi.toml sample by @​ya7010 in tombi-toml/tombi#2303
* docs: embed configuration Full Structure from a checked TOML file by @​ya7010 in tombi-toml/tombi#2304
* fix(schema-store): honor environment proxies for schema fetches by @​cailloumajor in tombi-toml/tombi#2306
* fix(schema-store): refuse schema URLs targeting the proxy host by @​ya7010 in tombi-toml/tombi#2308
* test(schema-store): cover local resolution check for proxied destinations by @​ya7010 in tombi-toml/tombi#2307
* feat(schema-store): honor operating-system proxy settings for schema fetches by @​ya7010 in tombi-toml/tombi#2309

## New Contributors
* @​cailloumajor made their first contribution in tombi-toml/tombi#2306

**Full Changelog**: tombi-toml/tombi@v1.8.4...v1.8.5

### v1.8.6

<!-- Release notes generated using configuration in .github/release.yml at v1.8.6 -->

## What's Changed
### 🐝 Bug Fixes
* fix(docs): resolve embedded snippet during Pages build by @​ya7010 in tombi-toml/tombi#2310
### 📦 Dependencies
* fix(deps): update quinn-proto and rustls for OSV advisories by @​ya7010 in tombi-toml/tombi#2311
* fix(deps): update zip to 9.0.4 by @​ya7010 in tombi-toml/tombi#2317
### 🛠️ Other Changes
* refactor(lsp): collect folding spans in one AST traversal by @​ya7010 in tombi-toml/tombi#2312
* refactor: reuse AST groups during formatting and hover by @​ya7010 in tombi-toml/tombi#2313
* refactor(formatter): reuse root leading comments by @​ya7010 in tombi-toml/tombi#2314
* feat(lsp): highlight TOML region markers by @​ya7010 in tombi-toml/tombi#2316

**Full Changelog**: tombi-toml/tombi@v1.8.5...v1.8.6

### v1.8.7

<!-- Release notes generated using configuration in .github/release.yml at v1.8.7 -->

## What's Changed
### 🦅 New Features
* Add --cache-ttl CLI option by @​ya7010 in tombi-toml/tombi#2320
* feat(cache): add `tombi cache clean/dir` commands by @​ya7010 in tombi-toml/tombi#2321
### 🐝 Bug Fixes
* fix(direnv): skip flake when nix is unavailable by @​ya7010 in tombi-toml/tombi#2323

**Full Changelog**: tombi-toml/tombi@v1.8.6...v1.8.7

</details>
<details>
<summary>uv: `0.13.0` → `0.13.1` (astral-sh/uv)</summary>

### 0.13.1

## Release Notes

Released on 2026-10-14.

### Enhancements

- Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip install --strict`, consistent with resolution ([#22500](astral-sh/uv#22500))
- Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable ([#22463](astral-sh/uv#22463))
- Report missing trusted hashes in resolution errors ([#22241](astral-sh/uv#22241))

### Python

- Add CPython 3.16.0a1 ([#22527](astral-sh/uv#22527))

### Preview features

- Allow `uv tool upgrade` to upgrade installed tools when `tool-install-locks` is enabled ([#22498](astral-sh/uv#22498))
- Add preliminary support for parsing PEP 825 variant labels in wheel filenames with `wheel-variants` ([#22039](astral-sh/uv#22039))

### Performance

- Reduce uv's binary size ([#22429](astral-sh/uv#22429), [#22430](astral-sh/uv#22430), [#22432](astral-sh/uv#22432))
- Speed up Simple API parsing ([#22429](astral-sh/uv#22429))
- Reduce package metadata parsing overhead ([#22239](astral-sh/uv#22239))

### Bug fixes

- Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories ([#22495](astral-sh/uv#22495))
- Restore support for source distributions containing hard links or full-length tar user or group names ([#22516](astral-sh/uv#22516), [#22522](astral-sh/uv#22522))
- Preserve device files and FIFOs used as `uv pip compile` or `uv export` output destinations ([#22496](astral-sh/uv#22496))
- Fix `sys._base_executable` detection for environments created from symlinked interpreters ([#22520](https://github.com/astral-sh/uv/pul… (truncated)

</details>
<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses) audit now supports pre-commit config inputs ([#2437](zizmorcore/zizmor#2437))

- The [self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner) audit is now significantly more precise ([#2350](zizmorcore/zizmor#2350))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now considers the issue_comment trigger fundamentally dangerous ([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger ([#2397](zizmorcore/zizmor#2397))

- The [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit now produces more precise finding/diagnostic spans ([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of [pnpm/setup](https://github.com/pnpm/setup) ([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audit now produces more precise findings when the user's workflow contains an indirect matrix ([#2395](zizmorcore/zizmor#2395))

    Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning) audit is now aware of GitHub's new cache-mode: setting, and will skip any findings that would occur when a job has an effective cache-mode: none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in [1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore comments/configurations would no longer apply to the [dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers) audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`
jylenhof pushed a commit to jylenhof/mise-en-place-resources that referenced this pull request Oct 24, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `editorconfig-checker`
- `ghalint`
- `jactionlint`
- `lychee`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator
editorconfig-checker ghalint jactionlint lychee pipx:gh-action-pulse
prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (5 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `jactionlint` | `2.1.0` → `2.2.0` | `2.1.0` → `2.2.0` |
| `rumdl` | `0.2.79` → `0.3.0` | `0.2.79` → `0.3.0` |
| `tombi` | `1.8.1` → `1.8.7` | `1.8.1` → `1.8.7` |
| `uv` | `0.13.0` → `0.13.1` | `0.13.0` → `0.13.1` |
| `zizmor` | `1.30.1` → `1.31.1` | `1.30.1` → `1.31.1` |

</details>

<details>
<summary>Release notes (5 tools)</summary>

<details>
<summary>jactionlint: `2.1.0` → `2.2.0` (jdx/jactionlint)</summary>

### v2.2.0

jactionlint 2.2.0 adds about thirty new rules and extends many existing
ones, mostly for script injection, token permissions, pinning and runner
limits. It also adds CLI modes for pull request checks
(`--changed-since`), rule discovery (`--list-rules`, `--explain`, shell
completions), fact export and timeout suggestions, and publishes wheels
to PyPI. Several new rules are in the `default` or `correctness`
profile, so a run that was clean on 2.1.0 can show new findings. See
**Changed** before you upgrade.

## Highlights

- **More checks before a run fails:** shell syntax errors without
shellcheck, JavaScript syntax errors in `actions/github-script`, job
permissions too narrow for the actions in the job, `gh` without a token,
`ubuntu-slim` limits, `github.event` property typos, and validation of
GitHub's Actions lock file.
- **Deeper security analysis:** `untrusted-checkout`, `cache-poisoning`,
`template-injection` and the secret rules follow more code paths. New
pedantic and online rules cover command and argument injection,
repojacking, release age, unpinned action dependencies and environments
without required reviewers.
- **Better for CI and tooling:** report only findings on changed lines,
select single rules, export the repository model as JSON, get JSON
Schemas for config and output, and install with `pip`/`uvx`.

## Added

### New rules in the `default` and `correctness` profiles

- **`shell-syntax`** (default, error): reports syntax errors in
`bash`/`sh` `run:` scripts, such as an unclosed quote or a missing
`fi`/`done`, using a built-in parser. It runs only when shellcheck does
not run, so the two never report the same error. (#273, @​jdx)
- **`insufficient-permissions`** (default, error): reports a job whose
explicit `permissions:` miss a scope that one of its actions needs
(`upload-sarif`, `deploy-pages`, OIDC logins, `gh release create`, `git
push` and others, about 26 entries). `missing-permissions --fix` now
uses the same table to write job… (truncated)

</details>
<details>
<summary>rumdl: `0.2.79` → `0.3.0` (rvben/rumdl)</summary>

### v0.3.0

### Changed

- **2.4–4.7× faster `rumdl fmt`** than 0.2.79 on frozen documentation
  snapshots: Cargo (99 files) 4.7×, MkDocs Material (85 files) 2.6×, and
Ruff (16 files) 2.4×. Reusing parsed Markdown and shared source analysis
reduces repeated work. Speedups compare median elapsed times from 31
paired
runs after five warmups on Apple M6: ordinary Rust 1.96.0 release
builds,
default threads, warm filesystem cache, and `--no-config --no-cache
--silent`
(`--flavor=standard` for Cargo/Ruff, `--flavor=mkdocs` for MkDocs
Material).
Output includes the correctness fixes listed below and can differ from
0.2.79.
- Code block tools are supported and remain opt-in. Missing tags,
missing
active-mode tools and invocations with no tools checked are ignored by
default.
An omitted unknown-tag policy inherits `on-missing-language-definition`,
preserving existing strict configurations. Valid internal cached checks
count
as checked; applicable external tools rerun to reflect changes in their
own
  configuration and environment.
- `on-missing-language-definition = "warn"` now reports uncovered
languages;
  previous releases treated it as `ignore`.
- Executable lookup remains system-only by default. Per-binary
preferences can
opt into nearest-first project lookup bounded by
repository/configuration
  boundaries, including hoisted workspace installations.
- MD037 still reports spaces inside emphasis delimiters but no longer
provides
automatic fixes, including editor fixes. Repair the reported emphasis
manually;
inserting escapes or removing whitespace can change literal Markdown
meaning.

### Added

- `fmt --preflight` and `check --fix --preflight` validate and plan the
complete
selected file batch before applying any writes, with atomic replacement
per
  file after successful planning.
- Configurable coverage policies with block diagnostics and
invocation-wide
fail-fast behavior. Invalid tool definitions receive central
configuration
  warnin… (truncated)

</details>
<details>
<summary>tombi: `1.8.1` → `1.8.7` (tombi-toml/tombi)</summary>

### v1.8.2

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.2 -->

## What's Changed
### 🛠️ Other Changes
* chore(deps): format Cargo.toml by @​ya7010 in
tombi-toml/tombi#2291
* fix(schema-store): allow documents to share a schema $id by @​ya7010
in tombi-toml/tombi#2293
* refactor(schema-store): remove the ast-syntax feature by @​ya7010 in
tombi-toml/tombi#2294


**Full Changelog**:
tombi-toml/tombi@v1.8.1...v1.8.2

### v1.8.3

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.3 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): skip file watcher events inside VCS metadata directories by
@​ya7010 in tombi-toml/tombi#2296
* refactor(lsp): migrate from tower-lsp to tower-lsp-server by @​ya7010
in tombi-toml/tombi#2297
* fix(validator): apply sub-schemas under keys rejected by the root
schema by @​ya7010 in tombi-toml/tombi#2298


**Full Changelog**:
tombi-toml/tombi@v1.8.2...v1.8.3

### v1.8.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(config): order schema catalog before format by @​ya7010 in
tombi-toml/tombi#2299


**Full Changelog**:
tombi-toml/tombi@v1.8.3...v1.8.4

### v1.8.5

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.5 -->

## What's Changed
### 🛠️ Other Changes
* update: tombi.toml sample by @​ya7010 in
tombi-toml/tombi#2302
* chore: tombi.toml sample by @​ya7010 in
tombi-toml/tombi#2303
* docs: embed configuration Full Structure from a checked TOML file by
@​ya7010 in tombi-toml/tombi#2304
* fix(schema-store): honor environment proxies for schema fetches by
@​cailloumajor in tombi-toml/tombi#2306
* fix(schema-store): refuse schema URLs targeting the proxy host by
@​ya7010 in tombi-toml/tombi#2308
* test(schema-store): cover local resolution check for proxied
destinations by @​ya7010 in
tombi-toml/tombi#2307
* feat(schema-store): honor operating-system proxy settings for schema
fetches by @​ya7010 in tombi-toml/tombi#2309

## New Contributors
* @​cailloumajor made their first contribution in
tombi-toml/tombi#2306

**Full Changelog**:
tombi-toml/tombi@v1.8.4...v1.8.5

### v1.8.6

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.6 -->

## What's Changed
### 🐝 Bug Fixes
* fix(docs): resolve embedded snippet during Pages build by @​ya7010 in
tombi-toml/tombi#2310
### 📦 Dependencies
* fix(deps): update quinn-proto and rustls for OSV advisories by
@​ya7010 in tombi-toml/tombi#2311
* fix(deps): update zip to 9.0.4 by @​ya7010 in
tombi-toml/tombi#2317
### 🛠️ Other Changes
* refactor(lsp): collect folding spans in one AST traversal by @​ya7010
in tombi-toml/tombi#2312
* refactor: reuse AST groups during formatting and hover by @​ya7010 in
tombi-toml/tombi#2313
* refactor(formatter): reuse root leading comments by @​ya7010 in
tombi-toml/tombi#2314
* feat(lsp): highlight TOML region markers by @​ya7010 in
tombi-toml/tombi#2316


**Full Changelog**:
tombi-toml/tombi@v1.8.5...v1.8.6

### v1.8.7

<!-- Release notes generated using configuration in .github/release.yml
at v1.8.7 -->

## What's Changed
### 🦅 New Features
* Add --cache-ttl CLI option by @​ya7010 in
tombi-toml/tombi#2320
* feat(cache): add `tombi cache clean/dir` commands by @​ya7010 in
tombi-toml/tombi#2321
### 🐝 Bug Fixes
* fix(direnv): skip flake when nix is unavailable by @​ya7010 in
tombi-toml/tombi#2323


**Full Changelog**:
tombi-toml/tombi@v1.8.6...v1.8.7

</details>
<details>
<summary>uv: `0.13.0` → `0.13.1` (astral-sh/uv)</summary>

### 0.13.1

## Release Notes

Released on 2026-10-14.

### Enhancements

- Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip
install --strict`, consistent with resolution
([#22500](astral-sh/uv#22500))
- Support Linux SPARC by falling back when filesystem cloning and
detailed cache accounting are unavailable
([#22463](astral-sh/uv#22463))
- Report missing trusted hashes in resolution errors
([#22241](astral-sh/uv#22241))

### Python

- Add CPython 3.16.0a1
([#22527](astral-sh/uv#22527))

### Preview features

- Allow `uv tool upgrade` to upgrade installed tools when
`tool-install-locks` is enabled
([#22498](astral-sh/uv#22498))
- Add preliminary support for parsing PEP 825 variant labels in wheel
filenames with `wheel-variants`
([#22039](astral-sh/uv#22039))

### Performance

- Reduce uv's binary size
([#22429](astral-sh/uv#22429),
[#22430](astral-sh/uv#22430),
[#22432](astral-sh/uv#22432))
- Speed up Simple API parsing
([#22429](astral-sh/uv#22429))
- Reduce package metadata parsing overhead
([#22239](astral-sh/uv#22239))

### Bug fixes

- Prevent tool and managed Python uninstalls from deleting unrelated
files beside their storage directories
([#22495](astral-sh/uv#22495))
- Restore support for source distributions containing hard links or
full-length tar user or group names
([#22516](astral-sh/uv#22516),
[#22522](astral-sh/uv#22522))
- Preserve device files and FIFOs used as `uv pip compile` or `uv
export` output destinations
([#22496](astral-sh/uv#22496))
- Fix `sys._base_executable` detection for environments created from
symlinked interpreters ([#22520](https://github.com/astral-sh/uv/pul…
(truncated)

</details>
<details>
<summary>zizmor: `1.30.1` → `1.31.1` (zizmorcore/zizmor)</summary>

### v1.31.0

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements)

- The [typosquat-uses](https://docs.zizmor.sh/audits/#typosquat-uses)
audit now supports pre-commit config inputs
([#2437](zizmorcore/zizmor#2437))

- The
[self-hosted-runner](https://docs.zizmor.sh/audits/#self-hosted-runner)
audit is now significantly more precise
([#2350](zizmorcore/zizmor#2350))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now considers the issue_comment trigger fundamentally dangerous
([#2396](zizmorcore/zizmor#2396))

- zizmor is now aware of the image_version workflow trigger
([#2397](zizmorcore/zizmor#2397))

- The
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit now produces more precise finding/diagnostic spans
([#2402](zizmorcore/zizmor#2402))

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of [pnpm/setup](https://github.com/pnpm/setup)
([#2409](zizmorcore/zizmor#2409))

- The [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images)
audit now produces more precise findings when the user's workflow
contains an indirect matrix
([#2395](zizmorcore/zizmor#2395))

Many thanks to [@​ubiratansoares](https://github.com/ubiratansoares) for
proposing and implementing this enhancement!

- The [cache-poisoning](https://docs.zizmor.sh/audits/#cache-poisoning)
audit is now aware of GitHub's new cache-mode: setting, and will skip
any findings that would occur when a job has an effective cache-mode:
none ([#2418](https://github.com/zizmorcore/zizmor/iss… (truncated)

### v1.31.1

[Sponsorship is appreciated!](https://github.com/sponsors/woodruffw/)

## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes)

- Fixed a regression in
[1.31.0](https://docs.zizmor.sh/release-notes/#1310) where some ignore
comments/configurations would no longer apply to the
[dangerous-triggers](https://docs.zizmor.sh/audits/#dangerous-triggers)
audit ([#2450](zizmorcore/zizmor#2450))

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants