Skip to content

chore: add autofix.ci workflow#705

Merged
jdx merged 3 commits intomainfrom
add-autofix-ci
Feb 25, 2026
Merged

chore: add autofix.ci workflow#705
jdx merged 3 commits intomainfrom
add-autofix-ci

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Feb 25, 2026

Summary

  • Adds autofix.ci GitHub Actions workflow that automatically fixes linting/formatting issues in PRs
  • Runs mise run render ::: lint-fix to regenerate docs and apply hk fix --all --slow
  • Uses autofix-ci/action@v1.3.3 to commit fixes back to the PR branch
  • Skips bot PRs (renovate, mend)
  • Matches the pattern used in pitchfork and fnox

Test plan

  • actionlint passes
  • prettier passes
  • Verify autofix runs on a subsequent PR

🤖 Generated with Claude Code


Note

Low Risk
CI-only change that adds an automated fixer/committer workflow; main risk is unexpected auto-commits or longer PR CI times, with no production/runtime impact.

Overview
Adds a new .github/workflows/autofix.yml workflow that runs on pull_request to main and automatically applies repo fixes (via mise + bun i and mise run render ::: lint-fix) and commits them back to the PR using autofix-ci/action.

The job uses Rust caching, checks out submodules, enforces concurrency cancellation, and skips running for renovate[bot] and mend[bot] PRs.

Written by Cursor Bugbot for commit f05bdbe. This will update automatically on new commits. Configure here.

Automatically fix linting and formatting issues in PRs using
autofix-ci/action. Runs `mise run render ::: lint-fix` to regenerate
docs and apply `hk fix --all --slow`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

branches: [main]

permissions:
contents: read
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Autofix workflow lacks commit permissions

Medium Severity

autofix.yml sets permissions.contents to read, but autofix-ci/action needs write access to push fix commits back to the PR branch. This prevents the workflow from performing its core behavior, so it runs but cannot apply or publish autofixes.

Additional Locations (1)

Fix in Cursor Fix in Web

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Feb 25, 2026

Greptile Summary

Adds autofix.ci workflow to automatically fix linting and formatting issues in PRs

  • Runs mise run render ::: lint-fix to regenerate docs and apply fixes
  • Uses pinned action versions with commit SHAs for security
  • Skips bot PRs (renovate, mend)
  • Critical issue: Workflow will fail because autofix-ci/action needs contents: write and pull-requests: write permissions to commit fixes back to the PR, but currently only has contents: read

Confidence Score: 2/5

  • This PR will not work as intended due to incorrect permissions configuration
  • The workflow contains a critical logic error where the permissions are set to contents: read but the autofix-ci/action requires write access to push commits back to the PR. This will cause the workflow to fail when it tries to commit fixes. Once the permissions are corrected to contents: write and pull-requests: write, the workflow should function properly.
  • .github/workflows/autofix.yml requires immediate attention to fix permissions

Important Files Changed

Filename Overview
.github/workflows/autofix.yml New autofix workflow added but has critical permission issue - requires contents: write and pull-requests: write instead of contents: read

Last reviewed commit: f05bdbe

Copy link
Copy Markdown

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

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

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines +7 to +8
permissions:
contents: read
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The autofix-ci/action requires write permissions to push fixes back to the PR. This will fail with contents: read.

Suggested change
permissions:
contents: read
permissions:
contents: write
pull-requests: write

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Feb 25, 2026

Greptile Summary

Adds autofix.ci GitHub Actions workflow that automatically fixes linting/formatting issues in PRs targeting main. The workflow runs on pull requests (excluding bot PRs from renovate/mend), executes mise run render ::: lint-fix to regenerate docs and apply hk fix --all --slow, then commits fixes back to the PR branch using autofix-ci/action@v1.3.3.

Key changes:

  • New .github/workflows/autofix.yml workflow with 10min timeout, Rust caching, and concurrency control
  • mise.lock updated by the autofix bot itself (added communique tool), demonstrating the workflow is functional
  • Workflow uses pinned action SHAs for security and matches patterns used in other repos (pitchfork, fnox)

Note on permissions: Previous review thread mentioned contents: read permission issue. However, autofix-ci/action uses GitHub App authentication with its own credentials, not the workflow's GITHUB_TOKEN, so the contents: read permission is actually correct for this use case.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk - it's a CI-only change with no runtime impact
  • The workflow is a CI-only addition that matches established patterns from other repos. The autofix bot has already successfully run (evidenced by the mise.lock commit), validating the configuration works. The workflow uses pinned action SHAs, includes appropriate bot filtering, and has no impact on production code or runtime behavior.
  • No files require special attention

Important Files Changed

Filename Overview
.github/workflows/autofix.yml Adds autofix.ci workflow to auto-commit lint/format fixes on PRs; uses correct action patterns and bot filtering
mise.lock Auto-generated lockfile updated by autofix.ci bot to add communique tool dependency

Last reviewed commit: 24f6eb1

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Feb 25, 2026

Greptile Summary

Adds an autofix.ci GitHub Actions workflow that automatically applies linting and formatting fixes to pull requests. The workflow triggers on PRs to main, runs mise run render ::: lint-fix to regenerate documentation and apply hk fix --all --slow, then commits any changes back to the PR using the autofix-ci/action. It skips bot PRs (renovate, mend) and uses concurrency cancellation to avoid redundant runs.

The workflow has already run successfully (as evidenced by commits 85d2976 and 24f6eb1), proving the implementation works correctly. The mise.lock changes are auto-generated platform additions from running the workflow.

Note: The previous comment about contents: read causing failures is incorrect - autofix.ci uses a GitHub App with its own authentication token, so the workflow-level contents: read permission is appropriate and does not interfere with the action's ability to push commits.

Confidence Score: 5/5

  • This PR is safe to merge - it's a CI-only workflow addition with no production impact
  • The workflow adds automation for code quality without affecting runtime behavior. The implementation has already been proven to work (commits from autofix.ci bot exist in the PR). The permissions are correctly configured despite the previous comment's concern - autofix.ci uses its own GitHub App token. The workflow includes safety features like bot filtering and timeout limits.
  • No files require special attention

Important Files Changed

Filename Overview
.github/workflows/autofix.yml Adds GitHub Actions workflow to automatically fix linting/formatting issues on PRs using autofix.ci
mise.lock Auto-generated lockfile updated with additional platform targets for existing tools

Last reviewed commit: 85d2976

@jdx jdx merged commit dc8ff4a into main Feb 25, 2026
18 checks passed
@jdx jdx deleted the add-autofix-ci branch February 25, 2026 11:43
@jdx jdx mentioned this pull request Feb 25, 2026
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Mar 11, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [hk](https://github.com/jdx/hk) | minor | `1.36.0` → `1.38.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>jdx/hk (hk)</summary>

### [`v1.38.0`](https://github.com/jdx/hk/blob/HEAD/CHANGELOG.md#1380---2026-03-06)

[Compare Source](jdx/hk@v1.37.0...v1.38.0)

##### 🚀 Features

- **(hook)** add `fail_on_fix` option by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;725](jdx/hk#725)

##### 🐛 Bug Fixes

- **(builtins)** remove redundant check/check\_diff from builtins by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;726](jdx/hk#726)

##### 📦️ Dependency Updates

- update anthropics/claude-code-action digest to [`26ec041`](jdx/hk@26ec041) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;720](jdx/hk#720)
- update jdx/mise-action digest to [`e79ddf6`](jdx/hk@e79ddf6) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;721](jdx/hk#721)
- update actions-rust-lang/setup-rust-toolchain digest to [`a0b538f`](jdx/hk@a0b538f) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;719](jdx/hk#719)
- update rust crate tokio to v1.50.0 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;722](jdx/hk#722)

### [`v1.37.0`](https://github.com/jdx/hk/blob/HEAD/CHANGELOG.md#1370---2026-03-03)

[Compare Source](jdx/hk@v1.36.0...v1.37.0)

##### 🚀 Features

- **(hook)** add env support to hooks by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;709](jdx/hk#709)
- parse Go-style diffs by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;704](jdx/hk#704)

##### 🐛 Bug Fixes

- **(builtins)** strip extra trailing newlines in end-of-file-fixer by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;708](jdx/hk#708)
- **(docs)** correctly document what --all is about by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;715](jdx/hk#715)
- **(git)** exclude untracked files from unstaged\_files set by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;716](jdx/hk#716)
- **(hkrc)** config format and load order by [@&#8203;ivy](https://github.com/ivy) in [#&#8203;710](jdx/hk#710)
- **(release)** write release notes to file instead of capturing stdout by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;688](jdx/hk#688)
- **(release)** make release notes editorialization non-blocking by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;690](jdx/hk#690)
- **(step)** gate check\_diff forced check\_first on Fix mode only by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;717](jdx/hk#717)

##### 📚 Documentation

- **(shanty)** add audio player with sea shanty recording by [@&#8203;jdx](https://github.com/jdx) in [67a25ad](jdx/hk@67a25ad)
- document config file search paths by [@&#8203;ivy](https://github.com/ivy) in [#&#8203;701](jdx/hk#701)
- require AI disclosure on GitHub comments by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;703](jdx/hk#703)

##### 🔍 Other Changes

- replace gen-release-notes script with communique by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;700](jdx/hk#700)
- add autofix.ci workflow by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;705](jdx/hk#705)

##### 📦️ Dependency Updates

- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;686](jdx/hk#686)
- update taiki-e/upload-rust-binary-action digest to [`f391289`](jdx/hk@f391289) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;692](jdx/hk#692)
- update anthropics/claude-code-action digest to [`c22f7c3`](jdx/hk@c22f7c3) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;691](jdx/hk#691)
- update rust crate libc to v0.2.181 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;694](jdx/hk#694)
- update rust crate clap to v4.5.58 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;693](jdx/hk#693)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;695](jdx/hk#695)
- update anthropics/claude-code-action digest to [`edd85d6`](jdx/hk@edd85d6) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;698](jdx/hk#698)
- update rust crate clap to v4.5.60 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;699](jdx/hk#699)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;702](jdx/hk#702)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;711](jdx/hk#711)

##### New Contributors

- [@&#8203;ivy](https://github.com/ivy) made their first contribution in [#&#8203;710](jdx/hk#710)
- [@&#8203;nkakouros](https://github.com/nkakouros) made their first contribution in [#&#8203;715](jdx/hk#715)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

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

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

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

---

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

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40OS4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant