Skip to content

Initial pre-commit modeling - #2209

Merged
woodruffw merged 14 commits into
mainfrom
ww/pc
Jul 22, 2026
Merged

Initial pre-commit modeling#2209
woodruffw merged 14 commits into
mainfrom
ww/pc

Conversation

@woodruffw

Copy link
Copy Markdown
Member

See #1799 for context.

This does not add any audits yet; this is just to ensure we can model and inject pre-commit inputs into zizmor's machinery.

@woodruffw woodruffw added this to the 1.28.0 milestone Jul 20, 2026
@woodruffw woodruffw self-assigned this Jul 20, 2026
@woodruffw woodruffw added the enhancement New feature or request label Jul 20, 2026
Comment on lines +43 to +44
// TODO: `from_str_with_validation` here.
let inner = yaml_serde::from_str(&contents)?;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This would be easy enough to stub-in with SchemaStore like we do for other inputs.

https://www.schemastore.org/pre-commit-config.json

That'll be a follow-up PR.

impl PreCommitHooks {
pub(crate) fn from_string(contents: String, key: InputKey) -> Result<Self, CollectionError> {
// TODO: `from_str_with_validation` here.
let inner = yaml_serde::from_str(&contents)?;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@woodruffw
woodruffw marked this pull request as ready for review July 22, 2026 11:19
@woodruffw
woodruffw merged commit 40c3bcb into main Jul 22, 2026
14 checks passed
@woodruffw
woodruffw deleted the ww/pc branch July 22, 2026 11:47
jylenhof pushed a commit to jylenhof/gh-action-pulse that referenced this pull request Aug 4, 2026
Automated mise tool upgrades from local config.

Updated tools:
- `zizmor`

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

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

| Tool | Requested | Installed |
|------|-----------|-----------|
| `zizmor` | `1.28.0` → `1.29.0` | `1.28.0` → `1.29.0` |

</details>

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

<details>
<summary>zizmor: `1.28.0` → `1.29.0` (zizmorcore/zizmor)</summary>

### v1.29.0

## New Features 🌈[🔗](https://docs.zizmor.sh/release-notes/#new-features)

- zizmor now has **experimental** support for auditing pre-commit inputs, meaning both pre-commit configuration and hook definitions ([#2209](zizmorcore/zizmor#2209))

- New audit: [insecure-url-scheme](https://docs.zizmor.sh/audits/#insecure-url-scheme) detects usages of insecure (i.e. plaintext) protocols when making network requests. The initial version of this audit is limited to pre-commit inputs only ([#2228](zizmorcore/zizmor#2228))

- zizmor now supports GitHub's "self-repository" reference syntax for local actions, e.g. `uses: $/foo/bar` instead of a manual checkout and `uses: ./foo/bar` ([#2248](zizmorcore/zizmor#2248))

## Changes ⚠️[🔗](https://docs.zizmor.sh/release-notes/#changes)

- The [unpinned-uses](https://docs.zizmor.sh/audits/#unpinned-uses) and [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audits have been separated more cleanly: [unpinned-uses](https://docs.zizmor.sh/audits/#unpinned-uses) is now principally responsible for Git-style `uses:` clauses, whereas [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) is now responsible for `docker://`-style `uses:` clauses (in addition to already checking other image references) ([#2222](zizmorcore/zizmor#2222))

## Removals 🌅[🔗](https://docs.zizmor.sh/release-notes/#removals)

- `--collect=workflows-only` and `--collect=actions-only` have been fully removed. Use `--collect=workflows` and `--collect=actions` for the replacement behavior ([#2242](zizmorcore/zizmor#2242))

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

- Fixed a bug where zizmor would reject a valid workflow definition for containing a literal jobs.<job>.outputs.<name> value for being a non-string ([#2220](https://github.com/zizmorcore/zizmor/iss… (truncated)

</details>

</details>

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

Updated tools:
- `zizmor`

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

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

| Tool | Requested | Installed |
|------|-----------|-----------|
| `zizmor` | `1.28.0` → `1.29.0` | `1.28.0` → `1.29.0` |

</details>

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

<details>
<summary>zizmor: `1.28.0` → `1.29.0` (zizmorcore/zizmor)</summary>

### v1.29.0

## New Features 🌈[🔗](https://docs.zizmor.sh/release-notes/#new-features)

- zizmor now has **experimental** support for auditing pre-commit inputs, meaning both pre-commit configuration and hook definitions ([#2209](zizmorcore/zizmor#2209))

- New audit: [insecure-url-scheme](https://docs.zizmor.sh/audits/#insecure-url-scheme) detects usages of insecure (i.e. plaintext) protocols when making network requests. The initial version of this audit is limited to pre-commit inputs only ([#2228](zizmorcore/zizmor#2228))

- zizmor now supports GitHub's "self-repository" reference syntax for local actions, e.g. `uses: $/foo/bar` instead of a manual checkout and `uses: ./foo/bar` ([#2248](zizmorcore/zizmor#2248))

## Changes ⚠️[🔗](https://docs.zizmor.sh/release-notes/#changes)

- The [unpinned-uses](https://docs.zizmor.sh/audits/#unpinned-uses) and [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audits have been separated more cleanly: [unpinned-uses](https://docs.zizmor.sh/audits/#unpinned-uses) is now principally responsible for Git-style `uses:` clauses, whereas [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) is now responsible for `docker://`-style `uses:` clauses (in addition to already checking other image references) ([#2222](zizmorcore/zizmor#2222))

## Removals 🌅[🔗](https://docs.zizmor.sh/release-notes/#removals)

- `--collect=workflows-only` and `--collect=actions-only` have been fully removed. Use `--collect=workflows` and `--collect=actions` for the replacement behavior ([#2242](zizmorcore/zizmor#2242))

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

- Fixed a bug where zizmor would reject a valid workflow definition for containing a literal jobs.<job>.outputs.<name> value for being a non-string ([#2220](https://github.com/zizmorcore/zizmor/iss… (truncated)

</details>

</details>

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

Updated tools:
- `zizmor`

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

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

| Tool | Requested | Installed |
|------|-----------|-----------|
| `zizmor` | `1.28.0` → `1.29.0` | `1.28.0` → `1.29.0` |

</details>

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

<details>
<summary>zizmor: `1.28.0` → `1.29.0` (zizmorcore/zizmor)</summary>

### v1.29.0

## New Features 🌈[🔗](https://docs.zizmor.sh/release-notes/#new-features)

- zizmor now has **experimental** support for auditing pre-commit inputs, meaning both pre-commit configuration and hook definitions ([#2209](zizmorcore/zizmor#2209))

- New audit: [insecure-url-scheme](https://docs.zizmor.sh/audits/#insecure-url-scheme) detects usages of insecure (i.e. plaintext) protocols when making network requests. The initial version of this audit is limited to pre-commit inputs only ([#2228](zizmorcore/zizmor#2228))

- zizmor now supports GitHub's "self-repository" reference syntax for local actions, e.g. `uses: $/foo/bar` instead of a manual checkout and `uses: ./foo/bar` ([#2248](zizmorcore/zizmor#2248))

## Changes ⚠️[🔗](https://docs.zizmor.sh/release-notes/#changes)

- The [unpinned-uses](https://docs.zizmor.sh/audits/#unpinned-uses) and [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) audits have been separated more cleanly: [unpinned-uses](https://docs.zizmor.sh/audits/#unpinned-uses) is now principally responsible for Git-style `uses:` clauses, whereas [unpinned-images](https://docs.zizmor.sh/audits/#unpinned-images) is now responsible for `docker://`-style `uses:` clauses (in addition to already checking other image references) ([#2222](zizmorcore/zizmor#2222))

## Removals 🌅[🔗](https://docs.zizmor.sh/release-notes/#removals)

- `--collect=workflows-only` and `--collect=actions-only` have been fully removed. Use `--collect=workflows` and `--collect=actions` for the replacement behavior ([#2242](zizmorcore/zizmor#2242))

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

- Fixed a bug where zizmor would reject a valid workflow definition for containing a literal jobs.<job>.outputs.<name> value for being a non-string ([#2220](https://github.com/zizmorcore/zizmor/iss… (truncated)

</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.

1 participant