autofix v0.6.0
Autofix
Automatically fix all software bugs.
Examples
Automatically fix bugs in the current directory:
autofixPreview all the commands this would run, but don't actually do anything:
autofix --dryAutofix bugs, commit fixes into separate branches, push branches to a GitHub remote:
autofix --branches --push=myremoteAutofix bugs in a GitHub repository:
autofix https://github.com/nodejs/nodeAutofix bugs in a GitHub repository, commit fixes, and automatically send pull requests (requires hub):
autofix https://github.com/nodejs/node --pull-requestTry it online
Try it locally
If you have npm, you can run autofix via npx:
npx autofixCommand line options
autofix (DIRECTORY|REPOSITORY) [OPTIONS]DIRECTORY: Run autofix in a particular directory (defaults to.).REPOSITORY: Clone a Git repository, then run autofix in it.
OPTIONS:
--dry: Simulate without actually running any fix commands--branches: Commit fixes of different types into different branches (e.g.autofix-codespell)--tiers=0,1,2: Choose which types of bugs should be autofixed (see details about tiers below)--verbose: Log additional information to the console (e.g. for troubleshootingautofixbugs)--push=REMOTE: Push fixes to a given GitHub remote (e.g. your GitHub username)--pull-request: Automatically open pull requests with pushed commits (requires hub, implies--push=originif unspecified)--pull-request-description=FILENAME: Customize pull request descriptions by providing a markdown file (use with--pull-request)--branch-suffix=SUFFIX: Add a common suffix to generated branch names (i.e.autofix-codespell-SUFFIX)--signoff: Use Git's--signoff(or-s) feature when creating commits
Types of bugs that can be fixed
Tier 0 (default - no rework needed):
- Remove trailing whitespace (uses
git,xargsandsed) - Update pinned pyenv tool versions in Dockerfiles (requires
pyenv) - Update pinned nvm tool versions in Dockerfiles (requires
nvm) - Update pinned sdkman tool versions in Dockerfiles (requires sdkman)
- Update pinned rr versions in Dockerfiles
- Update some pinned Go module versions in Dockerfiles
- Update Git submodules
Tier 1 (some rework might be needed):
- Fix typos & spelling mistakes (requires codespell)
Tier 2 (experimental, use with caution):
- Fix C++ bugs with
clang-tidy(requires clang-tidy) - Fix Rust bugs with
clippy(requires rust-clippy)
Tier 3 (you probably don't want to run these):
- TODO
Custom fixers
You can also implement your own fixers (similar to the ones found in the ./fixers/ directory) and commit them to your repository under a .autofix/fixers/ directory. Autofix will automatically pick them up; run them on your codebase; and commit new fixes when relevant.
3 years ago
3 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago